Vers un C++ orienté débutant ?
Le langage évolue, son apprentissage doit évoluer aussi


Ce n'est plus une nouvelle, le C++ continue son évolution avec la publication de la nouvelle norme, le C++11. Quels étaient les objectifs de cette évolution ? Il y a en avait plusieurs, mais nous allons nous intéresser ici à un seul point : "rendre le C++ plus facile à apprendre et à enseigner" (B. Stroustrup).

Or, en pratique, force est de constater que le langage C++ rebute beaucoup de débutants. Certains n'arrivent pas à maîtriser les abstractions de haut niveau. D'autres bloquent sur les problèmes de gestion mémoire. Il y en même qui ont peur de la réputation du C++ et fuient avant de le tester.
On reproche régulièrement au C++ d'avoir une syntaxe trop complexe, de permettre d'avoir 10 solutions pour un problème, de proposer des mécanismes d'abstraction trop complexes ou au contraire de ne pas sécuriser les manipulations de la mémoire, de ne pas fournir assez de fonctionnalités dans le langage et d'avoir trop de bibliothèques externes.
On retrouve ainsi des débutants qui rencontrent encore et toujours les mêmes difficultés et refont les mêmes erreurs.

Est-il possible de changer la façon dont est abordé le C++ pour en faire le langage parfait pour les débutants ?


A votre avis, qu'est-ce qui doit évoluer dans l'enseignement du C++ ?
Le C++ est-il par nature un langage trop complexe à force de vouloir trop en faire ?
Les développeurs seniors ont-ils réussi à évoluer avec le langage et à transmettre les bonnes pratiques ?