Re[11]: C# 7 - названия и прочее
От: Sinix  
Дата: 12.05.15 11:34
Оценка: :)
Здравствуйте, hardcase, Вы писали:

S>>Чтоб не спорить впустую — можешь привести реальный полезный пример расширения синтаксиса?


H>LINQ по сути — расширение синтаксиса.


Если бы Это только вишенка на торте, снизу куча работы, навскидку:
+ expression trees (пилились местами с учётом будущего DLR) + компиляция + допиленный emit.
+ провайдеры ef/linq2sql, добавился вывод параметров для генериков и лямбд
+ кодогенерация для yield
+ linq for objects (тоже не совсем простая штука)
+ поддержка всей этой радости студией (по объёму работы было столько, что "живая" подсветка ошибок в итоге получилась почти нахаляву) и тыды и тп.

и без всего этого linq бесполезен целиком и полностью. Так что не, не катит за штуку, ради которой стоило бы тащить расширение синтаксиса в язык. Мы всё-таки на реальных пользователей, а не на компиляторописателей ориентируемся


H>Анонимные типы в Nemerle воспроизведены синтаксическим расширением.


Ну.. это классно конечно, но какой толк от этого в шарпе при наличии готовых анонимных типов?

В том-то и проблема, что для AOP есть безусловно понятные и полезные примеры. Для DSL — тоже. А для макросов всё заканчивается на пользе для авторов языка (тут всё бесспорно как бы) и на "ну... можно накрутить вот так, а ещё вот так". Причём для последнего ещё и выяснится, что сам товарищ предлагающий этот вариант не пробовал, т.е. ему он тоже не особо нужен

Это ни в коем случае не наезд, было бы реально интересно увидеть полезный на практике пример.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.