2017 : un quinquennat pour une nouvelle version du C++ ? Possible
Selon Herb Sutter

Le , par 3DArchi

0PARTAGES

9  0 
Dans un billet daté d'hier, Herb Sutter confirme la mise en ordre de marche du groupe ISO WG21 travaillant sur la norme C++.

Cette réunion a été un succès, nous informe-t-il, avec des acteurs majeurs de l'industrie du logiciel (Microsoft, NVidia, Intel) prêts à intégrer des évolutions en avance de phase ! Ce qui confirme le retour en force du C++ dont on observe déjà les signes indicateurs depuis quelques temps.

Mais Herb nous prévient également que la nouvelle norme sera C++1y avec y==7. Il souligne cependant que l'objectif 2017 ne peut être atteint qu'en se concentrant sur une seule évolution majeure et ce malgré le nombre de propositions déjà avancées. Le premier tri ne devrait se faire qu'à la prochaine réunion en octobre.

Côté bibliothèques, le dynamisme devrait être plus important puisque des ajouts pourront avoir lieu entre deux normalisations. Bon espoir d'avoir prochainement quelque chose de natif pour gérer les fichiers (Boost.File System en standard ?) ou le réseau cite en exemple Herb Sutter.

Tout ceci se traduit par la mise en place de quatre groupes de travail chargés d'avancer dans certaines propositions :
  • SG1 : Concurrence et parallélisme
  • SG2 : Modules
  • SG3 : File System
  • SG4 : Réseau


Sources : Billet d’Herb Sutter, Comité de standardisation C++

Et vous ?

Puisqu'il ne faut en choisir qu'une, quelle devrait être l'évolution majeure de la prochaine session de normalisation ?

Cinq ans, est trop court ? Trop long ? Une bonne fréquence ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de kdmbella
Expert éminent https://www.developpez.com
Le 09/03/2012 à 12:58
A mon avis on doit ce concentrer sur le SG4 : Réseau; d'autre part 5ans ça me semble acceptable en terme de délais donc c'est une bonne fréquence, histoire d'avoir un retour massif des utilisateurs et ainsi de pouvoir plancher sur ce qui semble prioritaire en terme de demande de l'industrie.
0  0 
Avatar de gbdivers
Inactif https://www.developpez.com
Le 09/03/2012 à 15:06
Ma préférence va pour le SG1 (Concurrence et parallélisme) puis pour SG2 (Module). J'ai l'impression que ces points nécessite des modifications du langage plus important que les 2 autres. La gestion du réseau et les file system fonctionne très bien actuellement sans (trop de ?) hack code tordu pour les faire fonctionner dans le langage actuel.

Le délai de 5 ans ? C'est long si l'on considère que la programmation parallèle, c'est pour maintenant (et pour hier). J'ai l'impression que le C++ a pris du retard pour intégrer ces concepts. Heureusement que l'on ne manque pas de bibliothèques pour compenser cela.
C'est court lorsque l'on considère toutes les difficultés pour mettre en place une sémantique cohérente pour gérer ça.

C'est dommage que l'on n'a pas des cycles plus court pour ce qui est plus "évident". Par exemple les corrections de bugs et évolutions simples (anecdote : j'ai eu une discussion récemment sur le chat concernant les constructeurs de ifsream, qui prend que de char* et pas des string ; ce problème vient d'être corrigé dans la dernière norme alors qu'il a été identifié il y a au moins 10 ans, de mémoire). Idem pour les bibliothèques existantes, fonctionnelles et très utilisées (et donc très stables), qui pourraient être intégré dans la STL plus rapidement (comme par exemple file system, qui est bien implémentée dans Boost ; d'ailleurs, lorsque une bibliothèque passe de Boost à la STL, elles sont fortement modifiées ou elles sont prises presque telle quelle ?) Heureusement que les compilateurs n'attendent pas la publication officielle de la norme pour commencer à implémenter ces nouvelles fonctionnalités.

Pour terminer, on pourrait regretter (en ayant une vision simpliste ?) que le langage n'est pas un précurseur pour les nouvelles fonctionnalités ajoutées mais qu'il ne fait qu'intégrer, avec du retard, des fonctionnalités qui sont déjà dans beaucoup de langage. D'un autre côté, le choix fait (et assumé) des normalisateurs (normeurs ? bonhommes de la normes ? le comité de normalisation !) de se focaliser sur le langage et pas ses extensions fait qu'il permet justement d'ajouter des nouvelles fonctionnalités dans des bibliothèques plutôt que d'avoir un langage usine à gaz
A quand une meilleure prise en charge des concepts ? de la programmation fonctionnelles ?
3  0 
Avatar de barmic
Membre actif https://www.developpez.com
Le 09/03/2012 à 16:47
Ce que j'attends le plus c'est SG2.

Mais ce que beaucoup de monde aimerait vraiment voir c'est les concepts !
0  0 
Avatar de mitkl
Membre éprouvé https://www.developpez.com
Le 10/03/2012 à 11:36
Qu'est-ce qui se cache derrière le SG2 : Modules en fait ?
0  0 
Avatar de gbdivers
Inactif https://www.developpez.com
Le 10/03/2012 à 15:13
Citation Envoyé par mitkl Voir le message
Qu'est-ce qui se cache derrière le SG2 : Modules en fait ?
Tu as tout dans le draft du dernier WG21 : http://www.open-std.org/jtc1/sc22/wg...2012/n3347.pdf
Pour toutes la liste de propositions : http://www.open-std.org/jtc1/sc22/wg...s/papers/2012/
2  0 
Avatar de Niark13
Membre éclairé https://www.developpez.com
Le 12/03/2012 à 9:16
Bonjour,

Cinq ans me semble une bonne fréquence, cela permet l'inclusion de suffisamment de nouveautés sans trop attendre (l'accouchement de C++0x a été trop long).

Côté évolutions du langage, ma préférence irait à static_if et aux template constraints (si elles étaient retenues). Côté bibliothèque, les groupes SG4 et SG1 me semblent plus stratégiques que les deux autres.
0  0 
Avatar de alecool
Nouveau membre du Club https://www.developpez.com
Le 17/03/2012 à 16:10
Réseau et FileSystem sont déjà suffisamment accessibles par les bibliothèques. En revanche, Modules et parallélisme offrent plus de potentiel d'évolution des pratiques et des possibilités, et me semblent donc plus importantes.
0  0 
Avatar de Klaim
Membre expert https://www.developpez.com
Le 18/03/2012 à 5:46
5 ans me semble vraiment très long si c'est pour n'intégrer qu'une feature. Combien de feature ont été intégrées en 10 ans? Peut être trop, mais ce n'est même pas encore assez...

Ou alors il ne parle que de features majeures?

Personnellement, si les modules permettent de simplifier la mise en place de dépendances de programmes, ça m'arrangerai fortement. Je viens de passer plusieurs jours à simplement mettre en place tout un framework pour un projet. Celui ci est composé d'une vingtaine de bibliothèques qui sont toutes des dll/so, donc doivent exposer certains symboles. C'est une incroyable perte de temps d'avoir a mettre en place un header avec des macro d'export/import juste pour chaque projet!!!

N'importe quoi pour faciliter la mise en place de build systems aiderai, donc modules de préférence pour moi. Juste derrière: parallelisme, en particulier si ils nous fournissent un task-scheduler dans le genre de ceux de iTBB.
0  0 
Avatar de JolyLoic
Rédacteur/Modérateur https://www.developpez.com
Le 18/03/2012 à 11:20
On parle en effet de features majeures. En terme de taille, il faut voir comme exemple les modules, les concepts, la réflexion...

Pour l'aspect pas assez, je suis amplement d'accord. Et certaines features vont mettre plus de 5 ans à se faire. L'objectif est donc de s'organiser pour que la deadline de 5 ans n'empêche pas de commencer à travailler (et travailler efficacement, pas juste des réflexions preliminaires, mais du texte destiné à être normatif) sur la version d'après.
0  0 
Avatar de guillaume07
Débutant https://www.developpez.com
Le 22/03/2012 à 10:22
Il est possible avec un langage compilé d'avoir de la réflexion ?
0  0 
Responsable bénévole de la rubrique Qt : Thibaut Cuvelier -

Partenaire : Hébergement Web