metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2011-07-19 09:25 am

Кодогенерация и метапрограммирование

Все-таки, несмотря на то, что функциональные языки (F#, в моем случае) очень удобны для кодогенерации - кодогенераторы получаются не очень адекватными.
Или огромные классы для описания AST целевых языков и сборка из них нужного кода, затем его pretty-printing или тупой вывод текста по шаблонам. В обоих случаях - код очень малочитабелен.
Для кодогенерации нужен какой-то специфический DSL, да еще с адаптацией под целевые языки.
В случае с метапрограммированием вроде его роль выполняет quasi-quotation, но там в итоге получается код только на том же языке на котором пишешь.

[identity profile] osdm.livejournal.com 2011-07-19 08:48 am (UTC)(link)
Как всегда, пришел theiced и все обкакал и как всегда без аргументов. Видимо, товарищи типа Мартина Фоулера, которым все нравится, слепые.

[identity profile] theiced.livejournal.com 2011-07-19 08:52 am (UTC)(link)
без аргументов? там не ублюдочный внешний вид? ублюдочный, как и у всех жабских уйней. там не жутчайший синтаксис от которого хочется блевать? нет? там код не в ричтексте? ась?

[identity profile] thedeemon.livejournal.com 2011-07-19 03:48 pm (UTC)(link)
Вроде, синтаксис такой, какой сам придумаешь.
А код не в ричтексте, а в вообще не в текстовом редакторе.

[identity profile] justy-tylor.livejournal.com 2011-07-19 11:19 am (UTC)(link)
Фаулер не разбирается в языках программирования. Функциональных не знает вообще, о чём напрямую пишет в своих книгах. Это не мешает ему быть основным популяризатором идеи DSL в Java-среде, но этим всё и ограничивается.

Кто тамошний - тем MPS (Xtext, Whole platform, "yet another language workbench on Java/Eclipse"...) понравится. А остальным и не нужно, свои сильные технологии есть.

[identity profile] theiced.livejournal.com 2011-07-19 11:31 am (UTC)(link)
вы вынуждаете меня вас срочно зафрендить ;)

[identity profile] metaclass.livejournal.com 2011-07-19 11:40 am (UTC)(link)
Ну Фаулер зарабатывает писанием книжек про паттерны, которые в функциональщине не нужны никак )
Неудивительно что ему она поперек горла.

[identity profile] theiced.livejournal.com 2011-07-19 11:49 am (UTC)(link)
аааа! вспомнил откуда я эту фамилию знаю!

[identity profile] theiced.livejournal.com 2011-07-19 12:00 pm (UTC)(link)
мнение козлопитона пишущего говнокнижечки для программистишек-через-точечку ни разу не интересует.