C'est une discussion qui surgit de temps en temps dans notre équipe. Alors que certains ont rapidement appris les fonctionnalités de C# 3.0, d'autres s'en tiennent aux techniques classiques.
Certains n'utilisent jamais Linq, pensent que les expressions lambda sont déroutantes et que yield est "effrayant". Parfois, ils ont du mal à comprendre le code écrit par des personnes utilisant toutes les nouvelles fonctionnalités. Nous pouvons simplement dire qu'ils ne maîtrisent pas le langage et qu'ils devraient l'apprendre.
Mais à quel point l'apprentissage d'un langage de programmation moderne doit-il être difficile ? Tout le monde peut résoudre les problèmes, tout le monde a beaucoup d'autres problèmes à résoudre chaque jour que de se préoccuper de manières plus agréables de les mettre en œuvre. La formation des personnes n'est pas gratuite. D'un autre côté, les fonctionnalités du langage peuvent rendre les gens plus productifs et le code plus facile à maintenir.
Liste probablement incomplète des fonctionnalités de C#
- classes, structs, types primitifs, tableaux, boxing, interfaces, héritage (abstrait, virtuel, new, sealed), propriétés, nullables
- exceptions
- génériques
- filetage multiple, serrures
- réflexion
- délégués, événements, délégués anonymes
- itérateurs
- expressions lambda
- méthodes d'extension
- linq
La version 4 sera bientôt disponible et comprendra de nombreuses fonctionnalités supplémentaires.
Personnellement, j'aime presque toutes les fonctionnalités de C# et j'aime le code court et agréable que je peux écrire avec ce langage. Mais je n'ai pas besoin de l'apprendre à partir de zéro.
Je suis intéressé par votre opinion et votre expérience de l'apprentissage ou de l'enseignement du C#. Y a-t-il déjà trop de fonctionnalités ? Manque-t-il encore des fonctionnalités importantes ? Les fonctionnalités de la langue rendent-elles la langue plus facile à utiliser ou simplement plus difficile à apprendre ?
S'il vous plaît : Pas de réponses du type "La langue A est meilleure que la langue B parce que...".