erreurs catastrophiques : c'est à dire ? Si tu fais référence aux accès mémoires invalides, il est facile aujourd'hui d'écrire du code qui ne génère pas plus de segfault que de NULLPointerException.
temps de compilation : je ne rentre pas çà dans les lacunes très importantes ; de plus encore une fois pour avoir vu de l'environnement Java complexe, c'est pas forcément plus rapide ; aujourd'hui avec l'intégration de CLang et autres, c'est déjà plus confortable
le préprocesseur, vraiment ? trop vague ; sorry ; j'ai pas souvenir de préprocesseur qui soit meilleur ailleurs, quand il y a ; qu'est-ce qui te manque et qui existe ailleurs ?
le langage de templates qui est parmi les plus abscons, parce qu'il mélange les génériques et la métaprogrammation (ou alors je suis le seul à trouver les templates récursifs imbitables) ; je partage ton sentiment mais est-ce réellement un problème ? Le templating pose problème aux gens utilisant vraiment le template (les boss quoi), car pour les cas les plus simple j'ai le sentiment que c'est pas plus compliqué que Java pour la très grande des développeurs
les restrictions contre-intuitives (pourquoi on ne peut pas définir une classe template ailleurs que dans son header ?) souvent dues au préprocesseur ; peux-tu donner un exemple autre que le template ?
l'évolution rachitique (de l'aveu même de la dépêche, les gars n'ont pas réussi à définir une lib standard réseau ou fichiers en 10 ans) : bof ; la culture est tout simplement pas la même ; en C++ on a l'habitude chercher des lib/framework (Asio/Boost, Qt, etc) ; la question est plutôt qu'est-ce qui devrait être là aujourd'hui ?
la gestion mémoire qui accumule plusieurs couches au fil des années (pointeurs nus, références, puis pointeurs intelligents [unique_ptr/shared_ptr/etc.]) : ils répondent tous à des besoins différents, et je les utilise tous ; après si quelqu'un trouve cela compliqué, il n'a qu'à utiliser les smart pointer ; non ?
lib standard parfois surprenante (on a une distribution gaussienne, mais pas de vector::delete_at) : pas d'accord car c'est surtout une manière de coder pour l'exemple que tu donne, ensuite cela rejoint le point concernant l'évolution
rétro-compatibilité avec le C, mais pas vraiment non plus : pour quelqu'un codant en C++ c'est pas gênant ; je vois pas où est le problème
Oui le C++ permet de travailler à différents niveaux (plus ou moins proche de la machine), oui il faut choisir les outils que l'on va utiliser (aussi bien en terme de librairie que de fonctionnalité du langage). Mais si on désire un tout en un intégré on choisit juste autre chose, non ? Java est pas mal, Python aussi, et il y en a tant d'autres.
Après que l'on puisse faire mieux, je partage le sentiment, et il me semble qu'ils y travaillent (ils enlèvent même des trucs !!).
Je ne vois rien là dedans de catastrophique et j'ai pas sentiment que le C++ soit lacunaire (j'voudrais bien la Réflexion !). Je pense qu'à l'instar de Linux en tant qu'OS, le C++ n'a pas vocation à remplacer/dominer tous les autres langages.
[^] # Re: Donc pour résumer...
Posté par lem__mel . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 0.
Oui le C++ permet de travailler à différents niveaux (plus ou moins proche de la machine), oui il faut choisir les outils que l'on va utiliser (aussi bien en terme de librairie que de fonctionnalité du langage). Mais si on désire un tout en un intégré on choisit juste autre chose, non ? Java est pas mal, Python aussi, et il y en a tant d'autres.
Après que l'on puisse faire mieux, je partage le sentiment, et il me semble qu'ils y travaillent (ils enlèvent même des trucs !!).
Je ne vois rien là dedans de catastrophique et j'ai pas sentiment que le C++ soit lacunaire (j'voudrais bien la Réflexion !). Je pense qu'à l'instar de Linux en tant qu'OS, le C++ n'a pas vocation à remplacer/dominer tous les autres langages.