Здравствуйте, Sinclair, Вы писали:
Кэр>>Спорно, но допустим. Как отсюда возьмется аудитория для Немерле? Ты пытаешься сказать, что препроцессорными директивами в плюсах какая-то видимая часть аудитории пытается создать новый язык?
S>Конечно! Наивно этого не видеть.
Наивно это пытаться тут увидеть
S>Посмотри на тот же ATL или MFC — там макрос на макросе и макросом погоняет. Там, где в Delphi наш общий знакомый просто встроил message maps в язык, расширив синтаксис, MFC реализовал "мини-расширение" синтаксиса плюсов при помощи макросов.
ATL и MFC никак не тянут на расширения языка народными массами. Это фреймворки, которые решают единственную задачу — предоставить свой функционал. В которые вложены огромные ресурсы. Я считаю, что эти два условия необходимы в данный момент, чтобы можно было заводить речь о кастомном синтаксисе, чтобы сделать использование библиотек еще получше за счет поддержки синтаксиса.
Просто потому что задача расширения синтаксиса языка общего назначения — это очень и очень большая ответственность. Самой возможности этот синтаксис расширять недостаточно. Должны быть люди, которые это могут делать, должны быть условия проекта, которые это позволяют и идеально должен быть инструментарий, который таки позволит эти усилия тиражировать хоть с какой-то частотой.
S>И так устроены практически все известные мне плюсовые фреймворки. Как только появляется нужда в DSL — хреначатся макросы BEGIN_SOMETHING_MAP(), END_SOMETHNG_MAP(), DEFINE_SOMETHING_HANDLER() — и поехали, вперёд и с пестней.
В плюсах это обусловленно невыносимым размером необходимого boilerplate кода. В C# мы не наблюдаем этой картины, хотя язык решает почти все те же задачи.
S>Да не переживай ты так. Вроде бы никто не заставляет тебя романтикой-то заниматься %)
Хых. Ты и правда думаешь, что я переживаю?