Мой основной инструмент — Factor, конкатенативный язык со стековой моделью вычислений, и я выбрал его сознательно. Специализируюсь на задачах вне привычного набора технологий: собираю консольные утилиты, конвейеры преобразования данных, генераторы исходников и компактные средства автоматизации, где конкатенативный подход даёт максимум пользы. В таком стиле почти нет промежуточных переменных — значения текут через стек, а программа складывается из коротких слов, которые вызывают друг друга. Каждое определение остаётся маленьким и обозримым, а вынести кусок логики в отдельное слово можно почти без усилий, поэтому код легко перекраивать под новые требования.
Я ориентируюсь во всём семействе стековых и конкатенативных языков, а не только в одной среде. Владею форт-стилем, постфиксной записью, квотациями и комбинаторами, и с удовольствием проектирую маленькие предметные языки, в которых заказчик описывает свою логику несколькими понятными словами. Если готовая идея есть, а стройного способа её выразить нет, я превращаю предметную область в словарь терминов, подключаю его к работающей системе и отдаю результат, который читается и как код, и как спецификация. Не забываю про проверку: интерактивная консоль Factor и юнит-тесты дают наращивать решение шаг за шагом и держать его под контролем при любых правках.
Если перед вами узкая задача автоматизации, разбор формата, набросок интерпретатора или просто интерес — годится ли конкатенативная модель именно вам, — обращайтесь. Прямо скажу, где Factor будет уместен, а где лучше выбрать иное, опишу поставленное решение и оставлю код, понятный следующему разработчику.
— Консольные утилиты, скрипты и инструменты на Factor
— Решения в форт-стиле и постфиксной, стековой модели
— Компактные предметные и встроенные мини-языки
— Обработка данных, генерация кода и работа с текстом
— Переработка кода через квотации и комбинаторы
— Наброски интерпретаторов, парсеры и опыты в REPL
Я ориентируюсь во всём семействе стековых и конкатенативных языков, а не только в одной среде. Владею форт-стилем, постфиксной записью, квотациями и комбинаторами, и с удовольствием проектирую маленькие предметные языки, в которых заказчик описывает свою логику несколькими понятными словами. Если готовая идея есть, а стройного способа её выразить нет, я превращаю предметную область в словарь терминов, подключаю его к работающей системе и отдаю результат, который читается и как код, и как спецификация. Не забываю про проверку: интерактивная консоль Factor и юнит-тесты дают наращивать решение шаг за шагом и держать его под контролем при любых правках.
Если перед вами узкая задача автоматизации, разбор формата, набросок интерпретатора или просто интерес — годится ли конкатенативная модель именно вам, — обращайтесь. Прямо скажу, где Factor будет уместен, а где лучше выбрать иное, опишу поставленное решение и оставлю код, понятный следующему разработчику.
— Консольные утилиты, скрипты и инструменты на Factor
— Решения в форт-стиле и постфиксной, стековой модели
— Компактные предметные и встроенные мини-языки
— Обработка данных, генерация кода и работа с текстом
— Переработка кода через квотации и комбинаторы
— Наброски интерпретаторов, парсеры и опыты в REPL