Hacker News Digest

Тег: #domain-specific-language

Постов: 2

Knotty: A domain-specific language for knitting patterns (t0mpr1c3.github.io) 🔥 Горячее

Knotty — это предметно-ориентированный язык (DSL) для описания вязальных паттернов, реализованный в Racket. Он позволяет программировать схемы вязания, используя код вместо традиционных графических или текстовых инструкций. Основная идея заключается в автоматизации создания сложных узоров, что упрощает работу дизайнеров и энтузиастов.

Язык предоставляет модули для ввода-вывода данных, примеры кода и справочник, облегчая освоение и применение. Knotty демонстрирует, как нишевые DSL могут решать специализированные задачи, сочетая программирование с ремеслом.

by todsacerdoti • 25 сентября 2025 г. в 06:13 • 323 points

ОригиналHN

#racket#domain-specific-language#functional-programming#automation#diy

Комментарии (49)

  • Обсуждение исторических связей между программируемыми ткацкими станками (Жаккардовы машины) и современными компьютерами.
  • Восхищение проектом как примером элегантного и практичного инженерного решения, продолжающего исторические традиции.
  • Размышления о параллелях между вязанием и функциональным программированием, где физические ограничения сравниваются с системой типов.
  • Интерес к современным DIY-станкам для вязания и возможностям автоматизации создания узоров с помощью ИИ.
  • Шуточные комментарии об ожиданиях увидеть что-то другое (например, терминальный эмулятор) и отсылки к поп-культуре.

Комментарии (22)

  • GeoToy — это «Shadertoy для геометрии»: вместо цвета пикселя функция возвращает вершины, поэтому куб рисуется 36 вызовами, а не 921 600.
  • Похож на DSL для 3D-моделей; пример «temple» помогает быстрее понять синтаксис.
  • Материалы задаются не кодом, а через UI (три пиктограммы → «materials») и используют трипланарное отображение без UV.
  • Анимации пока нет, но пользователи просят добавить переменную вроде iTime из Shadertoy.
  • Проект вызывает ассоциации с Structure Synth и geometry-шейдерами, но последние считаются трудными для оптимизации.