C ++ 0x se réduit-il sous le poids des nouvelles fonctionnalités et du processus de normalisation?
Question
De Dr. Dobbs :
Les concepts devaient être au centre nouvelle fonctionnalité en C ++ 0x
Même après avoir coupé les "concepts", " la La prochaine norme C ++ peut être retardée. Malheureusement, il n’y aura pas de C ++ 0x (à moins que vous comptez les corrections mineures dans C ++ 03). Nous devons attendre C ++ 1x, et espère que 'x' sera un chiffre bas. Il y a de l'espoir car C ++ 1x est maintenant fonction complète (à l'exception du possibilité de quelques normes nationales corps insistant efficacement sur certains fonctionnalité présente dans la proposition formelle pour le standard). " Tous " cela reste est le travail massif de résolution questions techniques en suspens et commentaires.
J'étais à la pointe de la programmation C ++ sûre pour MT et MP vers 1997 - 2000. Nous devions faire beaucoup de choses nous-mêmes. Il est un peu choquant de constater que la norme n’a pas traité de la simultanéité au cours des neuf dernières années.
Alors, quel est le problème?
La solution
Stroustrup était l’un des électeurs à avoir finalement éliminé Concepts. Je ne vois pas C ++ réduire , je vois plutôt que le comité C ++ fait son travail. Les fonctionnalités à moitié cuites ne sont pas la solution pour un langage robuste comme le C ++. Un regard sur ce qui va se passer en C ++ 0x vous indique le contraire de ce que vous dites. Enfin, cela ne me dérange pas d'attendre de trouver quelque chose de bon pour toujours , au lieu de quelque chose de bon pendant un certain temps :)
Autres conseils
Non.
Je ne sais pas ce qui vous fait penser. L'article de Dr.Dobbs n'implique pas que c'est le cas.
C’est une grosse mise à jour, ce qui signifie beaucoup de travail pour peaufiner les spécifications de langue et corriger les erreurs. Ce n'est ni nouveau ni surprenant.
Et le processus de normalisation ISO prend du temps. Ce n'est pas nouveau non plus. L'article que vous avez posté dit justement que - il reste du travail à faire, mais le ciel ne s'effondre pas, c'est un travail assez basique et à faible risque qu'ils vont faire à partir de maintenant.
Il y a plusieurs raisons pour lesquelles cela a pris si longtemps:
Ce qui est évident, c’est qu’ils font beaucoup de changements et que quelques fonctionnalités ont été plus volumineuses que prévu et ont dû être supprimées. Cela va sans dire et est responsable des retards.
Le facteur moins évident, mais tout aussi important, est le fait qu'ils voulaient attendre longtemps depuis C ++ 98. Ils voulaient laisser le temps au langage de se stabiliser et de mûrir, d'acquérir une grande expérience d'utilisation des fonctionnalités du langage actuel et de donner aux compilateurs le temps de se mettre à niveau. Jusqu'à il y a quelques années, C ++ n'était tout simplement pas prêt à être mis à jour. Les gros compilateurs commerciaux étaient toujours en désordre et trop de gens n’étaient toujours pas à l'aise avec le design C ++ moderne.
C'est pourquoi des problèmes tels que le multithreading n'ont pas été abordés jusqu'à présent. Cela n’a pas été possible en C ++ 98 et ils ne voulaient pas apporter de modifications trop tôt.
Je ne sais pas quelle année ils espéraient initialement cibler, mais je doute que ce soit avant 2007 ou à peu près. Donc oui, la nouvelle norme a été retardée un peu, mais pas parce que le langage est "en train de",
.Non, ils sont juste conscients de leur responsabilité. De nombreuses personnes sont touchées par les décisions du comité standard.
D'une part, je suis reconnaissant qu'ils ne répètent pas le fiasco des exportations de modèles.
Par contre, le même genre de "responsabilité" aurait pu tuer tous les modèles avant qu'ils ne se produisent.
Je pense que C ++ 0x démontre que C ++ est un langage trop mature pour expérimenter encore avec des fonctionnalités. De nouvelles fonctionnalités de pointe sont déjà présentes dans d'autres langues où elles correspondent mieux à la philosophie sous-jacente.