Разработка трансляторов
zabivator — 26.01.2010 Как истинный Фома Неверующий я на практике (а не в теории) убедился в правоте dmzlj (второй номер "Практики функционального программирования) - на Питоне компиляторы писать неудобно, с тестами задолбаешься.Хотя ply просто шикарен, я лучшей интеграции yacc с языком ни разу не видел (кроме, разве что, ocamlyacc и parsec в Haskell).
Вот теперь делема - в Питоне нету типов, а для Ocaml нету jinja (и я не нашёл шаблонизаторов вообще, а делать генерацию исходного кода при помощи print зело очень неудобно, плавали-знаём).
Назрел рефакторинг кодогенератора (переделка уже сделанного транслятора, который не в ввели в production из-за отдельных его проблем - которые при рефакторинге надо решить; потому до сих плюсовая версия на плюсовых шаблонах (привёт линковка по 15 минут! Без шаблонов было 5-10 (: ) работает)
Сижу и думаю, что делать. Альтернативы:
* писать с большим количеством
* реализовать DTL (Django Template Language) для Ocaml
* сделать биндинг питоновской jinja (реализация DTL) в ocaml
* написать свой кодоген c преферансом и гимнастками
* не выпендриваться и обойтись print'ами (гемморой в поддержке).
Почему-то в айти так в каждом вопросе - везде блин вилы, либо в поддержке, либо в разработке, либо в отказоустойчивости, либо в читаемости.
Я думаю, на Страшном Суде судить будут Лучшие Программисты (коим я, к сожалению, не являюсь) - типа lionet, vitus_wagner , dmzlj
Адвокатом от production будет plumqqz, адвокатом от корректности thesz, адвокатом от читаемости Вирт, адвокатом от KISS - Гвидо Ван Россум.
Мне же, пока что, в очередной раз нужно найти мучительный компромисс, за который меня распнут на страшном суде.