Здравствуйте, AndrewVK, Вы писали:
IT>>Почему, например, расширение linq захардкоженное, прибитое гвоздями к C# и VB это хорошо, а набор макросов, делающий тоже самое — это плохо.
AVK>Потому что LINQ прописан в стандарте и его будет обязан знать каждый, претендующий на звание C# developer. И когда я уйду из одной команды и приду в другую, там будет все тот же самый LINQ.
Гапертон пока предпочитает молчать, может быть ты мне ответишь на этот вопрос? Чем принципиально отличается плоходокументированный макрос от плоходокументированного метода? Можно перефразировать в текущем контексте. Чем принципиально отличается необходимость разбираться в незнакомом коде, в котором используются незнакомые тебе классы от от кода, в котором используются незнакомые тебе макросы?
IT>>Индустрия банально не имеет макросов, поэтому извращается как может.
AVK>Спорно. Идее ситаксических макросов 200 лет в обед. Однако ж не прижились пока что.
Интересно, почему тогда народ с таким самозабвением извращается на плюсовых шаблонах? Не потому ли, что это хоть что-то, что появилось в мейнстриме за последние 20 лет. А все те идеи о которых ты говоришь были всего лишь идеями и никогда к мейнстриму даже близко не относились?
AVK>Это не проблема технических средств, это проблема организации процесса разработки.
Почему ты тогда считаешь, что его нельзя построить так, чтобы не было проблем с макросами?
AVK>У меня в текущем проекте масса pre-build и студийных кодогенераторов, однако за последние 4 года еще ни у кого не хватило ума править автогенеренный код, хотя уровень девелоперов был очень разный, вплоть до обезьянок.
А у моих ума хватило за полгода. Что теперь делать?
IT>>У run-time кодогенерации тоже есть свои козявки. Приходится использовать абстрактные классы, которые к тому же всегда должны быть публичные. Классы, которые не генерируются, но для которых что-то генерируется тоже должны обязательно быть публичными.
AVK>Это, мягко говоря, неправда. Skip visibility check еще никто не отменял.
Что неправда? То, что генератор, исходный класс и результирующий находятся в разных сборках? Ну так это я тебе как специалист говорю. Могу даже исходники показать.
... << RSDN@Home 1.2.0 alpha rev. 0>>