Здравствуйте, hardcase, Вы писали:
S>>Чтоб не спорить впустую — можешь привести реальный полезный пример расширения синтаксиса?
H>LINQ по сути — расширение синтаксиса.
Если бы

Это только вишенка на торте, снизу куча работы, навскидку:
+ expression trees (пилились местами с учётом будущего DLR) + компиляция + допиленный emit.
+ провайдеры ef/linq2sql, добавился вывод параметров для генериков и лямбд
+ кодогенерация для yield
+ linq for objects (тоже не совсем простая штука)
+ поддержка всей этой радости студией (по объёму работы было столько, что "живая" подсветка ошибок в итоге получилась почти нахаляву) и тыды и тп.
и без всего этого linq бесполезен целиком и полностью. Так что не, не катит за штуку, ради которой стоило бы тащить расширение синтаксиса в язык. Мы всё-таки на реальных пользователей, а не на компиляторописателей ориентируемся
H>Анонимные типы в Nemerle воспроизведены синтаксическим расширением.
Ну.. это классно конечно, но какой толк от этого в шарпе при наличии готовых анонимных типов?
В том-то и проблема, что для AOP есть безусловно понятные и полезные примеры. Для DSL — тоже. А для макросов всё заканчивается на пользе для авторов языка (тут всё бесспорно как бы) и на "ну... можно накрутить вот так, а ещё вот так". Причём для последнего ещё и выяснится, что сам товарищ предлагающий этот вариант не пробовал, т.е. ему он тоже не особо нужен
Это ни в коем случае не наезд, было бы реально интересно увидеть полезный на практике пример.