Это дискуссия, которая время от времени появляется в нашей команде. В то время как несколько быстро выучили функции С# 3.0, другие придерживаются классических методов.
Некоторые никогда не используют Linq, считают, что лямбда-выражения запутывают, а доход - "страшный". Иногда они едва ли могут понять код, написанный людьми, использующими все новые функции. Мы можем просто сказать, что они не владеют языком и должны его изучить.
Но как тяжело учиться на современном языке программирования?. Каждый может решить проблемы, у каждого есть много других проблем для решения каждый день, чем заботиться о более удобных способах его реализации. Обучение людей не бесплатно. С другой стороны, особенности языка могут сделать людей более продуктивными и более удобными для обслуживания.
Вероятно, неполный список функций С#
- классы, структуры, примитивные типы, массивы, бокс, интерфейсы, наследование (абстрактные, виртуальные, новые, запечатанные), свойства, nullables
- исключения
- дженериков
- многопоточность, блокировки
- отражение
- делегаты, события, анонимные делегаты
- итераторы
- лямбда-выражения
- методы расширения
- LINQ
Версия 4 скоро появится, включая множество дополнительных функций.
Лично мне нравится почти каждая функция С# и как короткий и приятный код, который я могу написать на этом языке. Но мне не нужно это изучать с нуля.
Мне интересно ваше мнение и ваш опыт обучения или обучения С#. Есть ли слишком много функций? По-прежнему остаются важные функции? Являются ли языковые функции более легким в использовании или сложнее изучать язык?
Пожалуйста: нет ответов типа "Язык А лучше, чем язык Б, потому что...".