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