LINUX.ORG.RU

История изменений

Исправление dimgel, (текущая версия) :

Может я не прав. По-мне компиляция есть компиляция, выполнение есть выполнение.

Всё, что можно сделать в buildtime, – надо делать в buildtime. Чтобы облегчить/ускорить runtime.

Частные, но вполне полноценные и показательные примеры – статическая типизация и автоматическое тестирование. Вы ж не станете утверждать, что и то, и другое плохо?

Ещё пример из моей привычной области – лёгкие ORM на AST-макросах, транслирующие статически-типизированные DSL в SQL. Прекрасно, что не надо это делать в рантайме. (UPD: Ведь по большому счёту, это тоже этап компиляции. Да и банальная кодогенерация используется очень много где.)

Да полно на самом деле юз кейсов. Мета-программирование – такая же мощная парадигма, как и ООП и ФП, причём все три друг дружке ортогональны, т.е. могут использоваться совместно. Помнится, не успели МП в скалу завезти, как тут же оказалось, что с его помощью можно некоторые части компилятора улучшить.

Исходная версия dimgel, :

Может я не прав. По-мне компиляция есть компиляция, выполнение есть выполнение.

Всё, что можно сделать в buildtime, – надо делать в buildtime. Чтобы облегчить/ускорить runtime.

Частные, но вполне полноценные и показательные примеры – статическая типизация и автоматическое тестирование. Вы ж не станете утверждать, что и то, и другое плохо?

Ещё пример из моей привычной области – лёгкие ORM на AST-макросах, транслирующие статически-типизированные DSL в SQL. Прекрасно, что не надо это делать в рантайме.

Да полно на самом деле юз кейсов. Мета-программирование – такая же мощная парадигма, как и ООП и ФП, причём все три друг дружке ортогональны, т.е. могут использоваться совместно. Помнится, не успели МП в скалу завезти, как тут же оказалось, что с его помощью можно некоторые части компилятора улучшить.