une complexité terrifiante, avec un empilement de features parfois obscures, au point que la plupart des projets sérieux définissent explicitement ce qui est autorisé,
Je pense que c'est en effet le gros, gros point noir du C++. Le reste, c'est une question de choix et de compromis : la gestion des pointeurs nus, on peut ne pas aimer, mais c'est une raison qui fait parfois préférer C++ à d'autres langages.
Par contre, la complexité, ça exclut. Ce que font la plupart des projets, c'est de se limiter à un sous-ensemble du C++ (genre, pas de templates, pas d'exceptions, etc). Mais dans ce cas, on peut bien se demande pourquoi le langage évolue. On peut aussi avoir peur de ne pas réussir à recruter des gens réellement compétents en C++ (ça vaut aussi pour les projets libres).
Au rythme où les choses avancent, il va peut-être devenir impossible à un être humain de maitriser le C++ dans son entier, de connaitre les comportements indéfinis, ou de savoir à l'avance si un truc à base de templates va compiler.
[^] # Re: Donc pour résumer...
Posté par arnaudus . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 4.
Je pense que c'est en effet le gros, gros point noir du C++. Le reste, c'est une question de choix et de compromis : la gestion des pointeurs nus, on peut ne pas aimer, mais c'est une raison qui fait parfois préférer C++ à d'autres langages.
Par contre, la complexité, ça exclut. Ce que font la plupart des projets, c'est de se limiter à un sous-ensemble du C++ (genre, pas de templates, pas d'exceptions, etc). Mais dans ce cas, on peut bien se demande pourquoi le langage évolue. On peut aussi avoir peur de ne pas réussir à recruter des gens réellement compétents en C++ (ça vaut aussi pour les projets libres).
Au rythme où les choses avancent, il va peut-être devenir impossible à un être humain de maitriser le C++ dans son entier, de connaitre les comportements indéfinis, ou de savoir à l'avance si un truc à base de templates va compiler.