Здравствуйте, Quintanar, Вы писали:
Q>Меня Немерль не интересует. Мне обидно за макросы.
Ну и зачем они нужны в нормальном языке?
Меня интересуют не домыслы (с), а реальные аргументы. DSL во-первых прекрасно делается и без макросов, а во-вторых — сам по себе случай достаточно редкий и специальный. Приведи примеры, когда макросы реально необходимы, и драматическим образом улучшают читабельность и сокращают код. А потом обоснуй, почему это просто нельзя сделать частью языка раз и навсегда, и забыть о макросах.
Если тебе обидно за camlp4 — то зря.
Мы с мужиками обсудили и давно решили, что это для нас tool of choice для прототипирования компиляторов и создания своих DSL. Причина — возможность оформления кусков грамматики в виде синтаксических расширений, упрощающих эксперименты при создании своего собственного языка программирования (этого известные генераторы парсеров не дают), + ML позволит раза в 2 снизить затраты разработки на собственно компилятор, удобно на нем компиляторы писать. Заметь, о том, что camlp4 — макропроцессором называется, мы как-то не подумали.
Кстати, макросы — это старая новость. В 70-х годах были очень мощные и развитые макросистемы. Не прижились как-то. Применяли их и в промышленных масштабах — макроассемблер ЕС ЭВМ, например, можно назвать — очень популярное средство было тогда. Для PL/I была макросистема какая-то, которая могла все, или почти все. Так что опыт эксплуатации и написания программных систем с макросами у человечества был. И восторгов оно от этого особых не испытывало.