Les défauts qui me (je reconnais le biais induit par mon domaine de travail, l'embarqué industriel) gênent le plus sont, dans l'ordre:
1 - la difficulté de compilation du langage, qui a pour conséquences:1a) les petites différences entre comportements des compilateurs, d'où l'impossibilité de généraliser dans des grands projets les techniques avancées du C++ ou de Boost
1b) le manque de réactivité/qualité des outils IDE de traitement du code (exploration de classe, refactoring, etc.)
1c) les temps de compilation
2 - la coexistence des chaines destinées aux humains (Unicode) et aux API (char *) n'est pas bien gérée par la bibliothèque standard. On y arrive, mais c'est loin d'être aussi propre que dans d'autres environnements.
3 - les exceptions ne sont pas acceptés dans les projets industriels embarqués, et il faut admettre que c'est pour de bonnes raisons. Il faut vraiment que le standard explore d'autres possibilités. Malheureusement il faut aussi reconnaitre que les solutions industrielles alternatives sont très loin d'être unifiées.
4 - la méta-programmation trop complexe. Ce sont des béquilles indispensables pour boucher les trous du standard et les retards par rapport aux langages modernes. Mais outre ce que j'ai évoqué en 1a, j'ai constaté un manque de productivité net pour les programmeurs non-experts lorsqu'ils découvrent ces techniques. Je dois me battre sur les check-ins de certains pour interdire la recherche de l'élégance pour l'élégance, qui est parfois bénéfique dans la plupart des portions de code mais PAS dans la méta-programmation complexe.
Les faux défauts pour moi:
1 - le mauvais diagnostic des erreurs de méta programmation. C'est plus rigolo que gênant. Les stagiaires se la pètent à celui qui fera la plus grosse, mais dans la vraie vie ce n'est pas une source perceptible de perte de temps.
2 - les erreurs de pointeurs. Ça fait des années que nous n'avons pas eu de retour client sur ce genre de bug. Et pourtant, nous travaillons dans l'embarqué, on est loin d'avoir les Go de matelas des applications PC.
3 - la bibliothèque standard réduite ne gêne pas dans l'embarqué.
Partager