|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
![]() ![]() Inscription : juin 2008 Messages : 7 631 ![]() |
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 :
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 ?
|
|
|
90
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() MBELLA EKOUMEDéveloppeur Web Inscription : août 2010 Messages : 694 ![]() |
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.
__________________
Trois personnes peuvent garder un secret si deux d'entre elles sont mortes. :Benjamin FranklinL'humanité se divise en trois catégories : ceux qui ne peuvent pas bouger, ceux qui peuvent bouger, et ceux qui bougent : Benjamin FranklinLe hasard, c'est le déguisement que prend Dieu pour voyager incognito : Albert Einsteinbon je m'arrête là au risque de me faire buter
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 294 ![]() |
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 ?
__________________
Merci à toutes les bénévoles avec qui j'ai travaillé sur les rubriques C++, Qt et Jeux. Retrouvez mes anciennes publications sur GitHub et suivez mes futures publications sur Google+. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
30
|
|
|
#4 |
|
Membre régulier
![]() Michel Inscription : décembre 2008 Messages : 59 ![]() |
Ce que j'attends le plus c'est SG2.
Mais ce que beaucoup de monde aimerait vraiment voir c'est les concepts ! |
|
|
00
|
|
|
#5 |
![]() ![]() Timothée BernardÉtudiant Inscription : février 2010 Messages : 365 ![]() |
Qu'est-ce qui se cache derrière le SG2 : Modules en fait ?
__________________
Si vous ne savez toujours pas ce qu’est la récursivité, relisez cette phrase. Mon blog sur la programmation et l'informatique ! |
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 294 ![]() |
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/
__________________
Merci à toutes les bénévoles avec qui j'ai travaillé sur les rubriques C++, Qt et Jeux. Retrouvez mes anciennes publications sur GitHub et suivez mes futures publications sur Google+. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
20
|
|
|
#7 |
|
Membre éprouvé
![]() Inscription : mai 2005 Messages : 228 ![]() |
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. |
|
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Inscription : septembre 2007 Messages : 25 ![]() |
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.
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() ![]() Joel LamotteDéveloppeur de jeux vidéo Inscription : août 2004 Messages : 1 627 ![]() |
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. |
|
00
|
|
|
#10 |
![]() ![]() Loïc JolyDéveloppeur informatique Inscription : août 2004 Messages : 4 699 ![]() |
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. |
|
|
00
|
|
|
#11 |
|
Débutant
Inscription : mai 2006 Messages : 615 ![]() |
Il est possible avec un langage compilé d'avoir de la réflexion ?
|
|
|
00
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
Quel serait le probleme? En particulier si on limite la reflexion aux types pour lesquels le RTTI fonctionne pour le moment. Ce ne serait que completer type_info.
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|
|
00
|
|
|
#13 | ||
Tahiana RakotoarisoaFormateur en informatique Inscription : avril 2012 Messages : 1 ![]() |
En tant que formateur en C++, j'aimerais bien que la programmation parallèle soit bien structurée. Par exemple, _beginthread devrait avoir comme paramètre une INSTRUCTION et non pas un nom de programme, etc. Ce qui permettrait de l'utiliser dans une classe ou avec un programme générique (template). Ex: tri par tas en utilisant un thread par niveau.
On devrait aussi avoir la même instruction _beginthread sur Windows ou Linux ou autre plate-forme. On devrait pouvoir passer un programme générique en tant que paramètre d'un autre programme. On devrait avoir des pointeurs sur des classes, surtout pour les débutants. Ex : listes chaînées : Code :
|
||
|
|
04
|
|
|
#14 | |||
|
Membre chevronné
![]() ![]() Inscription : décembre 2008 Messages : 497 ![]() |
Citation:
Par contre, pour multithreader de manière portable et ergonomique il existe Boost.Thread de longue date, Boost étant une quasi-norme C++. Par ailleurs depuis C++11, la STL seule permet de faire du multithread via std::thread. Par contre je ne comprends pas le problème que pose ton exemple... list<T>* chainon = new list<T> ? |
|||
|
|
30
|
|
|
#15 | |||||
|
Expert Confirmé Sénior
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 294 ![]() |
Citation:
De plus, on parle bien dans cette discussion de la prochaine normes (C++17 ?), donc les modifications/ajouts qui doivent être fait au C++11. Ce que tu proposes n'est pas déjà pris en compte (totalement ou en partie) dans le C++11 ? Citation:
Citation:
Et pour les débutants, clairement, c'est non (pour moi, même sans savoir ce que c'est) : je déconseille très fortement l’utilisation des pointeurs par les débutants (alternatives : conteneurs à la place des tableaux dynamiques style C, références, pointeurs intelligents)
__________________
Merci à toutes les bénévoles avec qui j'ai travaillé sur les rubriques C++, Qt et Jeux. Retrouvez mes anciennes publications sur GitHub et suivez mes futures publications sur Google+. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|||||
|
30
|
|
|
#16 |
|
Membre expérimenté
![]() Inscription : octobre 2004 Messages : 329 ![]() |
La programmation parallèle est clairement un challenge, je vote pour SG1 sans hésiter
|
|
|
00
|
|
|
#17 |
|
Membre du Club
![]() |
Je ne comprend pas énormement les deux premiers SG. Mais je vote à 200% pour réseau et fichier !
Malgrè un bon fonctionnement des fonctions relatives aux sockets et aux fichiers/dossiers, je trouve ca vraiment dommage qu'elles ne sont pas portables, et surtout, qu'elle ne fonctionnent qu'avec des mini-hacks à gros renforts de C, de char*. SG3 & SG4. ! |
|
00
|
|
|
#18 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 294 ![]() |
L'évolution du langage C++ s'accélère
10 groupes d'études et plusieurs nouvelles dates de sortie pour les prochaines normes Depuis la première annonce l'année dernière, le comité à fait plein de petits bébés : la famille s'est agrandie et compte maintenant 10 SG (study group), 4 WG (working group) et un comité. ![]() Les working groups ont pour rôle de proposer les modifications à apporter à la norme, modifications qui seront approuvées, ou non, par le comité de normalisation.
Les study groups ont la charge d'étudier les évolutions du langage (SG 1, 2, 5, 7, 8 et 10) et de la bibliothèque (SG 3, 4, 6 et 9) sur des thèmes spécifiques et de proposer des modifications de la norme aux WG :
Au niveau du planning, le comité s'active, avec plus d'une centaine de propositions pour le congrès de Bristol (voir la discussion [ISOC++] Mailing pre-Bristol). En plus de la prochaine norme qui devrait sortir en 2017, le comité prévoit des Technical Specifications, pour les ajouts de fonctionnalités indépendantes, et une révision mineure de la norme en 2014. ![]() Quelles sont les fonctionnalités qui vous intéressent le plus ? Celles que vous auriez aimer avoir ? Que pensez-vous de l’accélération prise par le comité pour le langage et la bibliothèque standard ?Source : http://isocpp.org/std/the-committee
__________________
Merci à toutes les bénévoles avec qui j'ai travaillé sur les rubriques C++, Qt et Jeux. Retrouvez mes anciennes publications sur GitHub et suivez mes futures publications sur Google+. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
20
|
|
|
#19 |
|
Membre éclairé
![]() Étudiant Inscription : mars 2011 Messages : 65 ![]() |
Modules et concepts, c'est ce qui m'arrangerait le plus. Et c'est ce qui nécessite les plus gros changements en profondeur dans le langage.
Network et FileSystem sont bien représentés dans Boost, ce n'est pas la priorité. |
|
|
00
|
|
|
#20 | |||
|
Membre régulier
![]() Michel Inscription : décembre 2008 Messages : 59 ![]() |
Citation:
Pour ceux qui n'ont pas compris de quoi il s'agit les pointeurs de classe ça permet, par exemple de passer une classe en paramètre d'une méthode et celle-ci peut entre autre instancier des objets de cette classe. C'est à mon avis pas faisable à cause du fait que les classes templates sont du code généré et c'est un problème qui, en C++, s'adresse avec les templates justement. |
|||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com