Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 1 sur 3 123 DernièreDernière
Affichage des résultats 1 à 20 sur 46
  1. #1
    Rédacteur/Modérateur
    Avatar de 3DArchi
    Inscrit en
    juin 2008
    Messages
    7 636
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 7 636
    Points : 11 672
    Points
    11 672

    Par défaut 2017 : un quinquennat pour une nouvelle version du C++ ?

    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 ?

  2. #2
    Expert Confirmé Sénior
    Avatar de kdmbella
    Homme Profil pro MBELLA EKOUME
    Développeur Web
    Inscrit en
    août 2010
    Messages
    740
    Détails du profil
    Informations personnelles :
    Nom : Homme MBELLA EKOUME
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : août 2010
    Messages : 740
    Points : 5 220
    Points
    5 220

    Par défaut

    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 Franklin
    L'humanité se divise en trois catégories : ceux qui ne peuvent pas bouger, ceux qui peuvent bouger, et ceux qui bougent : Benjamin Franklin
    Le hasard, c'est le déguisement que prend Dieu pour voyager incognito: Albert Einstein
    bon je m'arrête là au risque de me faire buter

  3. #3
    Inactif


    Homme Profil pro Guillaume Belz
    Biochimiste
    Inscrit en
    novembre 2008
    Messages
    5 321
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume Belz
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Biochimiste
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2008
    Messages : 5 321
    Points : 19 286
    Points
    19 286

    Par défaut

    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 ?

  4. #4
    Membre actif
    Profil pro Michel
    Inscrit en
    décembre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Nom : Michel
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : décembre 2008
    Messages : 82
    Points : 155
    Points
    155

    Par défaut

    Ce que j'attends le plus c'est SG2.

    Mais ce que beaucoup de monde aimerait vraiment voir c'est les concepts !

  5. #5
    Rédacteur
    Avatar de mitkl
    Homme Profil pro Timothée Bernard
    Étudiant
    Inscrit en
    février 2010
    Messages
    365
    Détails du profil
    Informations personnelles :
    Nom : Homme Timothée Bernard
    Âge : 22
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2010
    Messages : 365
    Points : 1 123
    Points
    1 123

    Par défaut

    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 !

  6. #6
    Inactif


    Homme Profil pro Guillaume Belz
    Biochimiste
    Inscrit en
    novembre 2008
    Messages
    5 321
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume Belz
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Biochimiste
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2008
    Messages : 5 321
    Points : 19 286
    Points
    19 286

    Par défaut

    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/

  7. #7
    Membre chevronné

    Inscrit en
    mai 2005
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : mai 2005
    Messages : 261
    Points : 609
    Points
    609

    Par défaut

    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.

  8. #8
    Membre à l'essai
    Inscrit en
    septembre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : septembre 2007
    Messages : 25
    Points : 22
    Points
    22

    Par défaut

    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.

  9. #9
    Expert Confirmé
    Avatar de Klaim
    Homme Profil pro Joel Lamotte
    Développeur de jeux vidéo
    Inscrit en
    août 2004
    Messages
    1 725
    Détails du profil
    Informations personnelles :
    Nom : Homme Joel Lamotte
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 1 725
    Points : 3 346
    Points
    3 346

    Par défaut

    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.

  10. #10
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro Loïc Joly
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    4 873
    Détails du profil
    Informations personnelles :
    Nom : Homme Loïc Joly
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 4 873
    Points : 10 717
    Points
    10 717

    Par défaut

    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.

  11. #11
    Débutant
    Inscrit en
    mai 2006
    Messages
    653
    Détails du profil
    Informations forums :
    Inscription : mai 2006
    Messages : 653
    Points : 167
    Points
    167

    Par défaut

    Il est possible avec un langage compilé d'avoir de la réflexion ?

  12. #12
    Expert Confirmé Sénior

    Inscrit en
    novembre 2005
    Messages
    5 094
    Détails du profil
    Informations forums :
    Inscription : novembre 2005
    Messages : 5 094
    Points : 5 956
    Points
    5 956

    Par défaut

    Citation Envoyé par guillaume07 Voir le message
    Il est possible avec un langage compilé d'avoir de la réflexion ?
    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.

  13. #13

    Homme Profil pro Tahiana Rakotoarisoa
    Formateur en informatique
    Inscrit en
    avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Nom : Homme Tahiana Rakotoarisoa
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2012
    Messages : 1
    Points : -1
    Points
    -1

    Par défaut Amélioration du parallélisme pour C++

    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 :
    1
    2
    3
    4
    5
    template<class t>
    class list { public :
       t info ;
       list suiv ;
    }*

  14. #14
    Membre émérite
    Inscrit en
    décembre 2008
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : décembre 2008
    Messages : 532
    Points : 802
    Points
    802

    Par défaut

    Citation Envoyé par rakotoarisoatahiana Voir le message
    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 :
    1
    2
    3
    4
    5
    template<class t>
    class list { public :
       t info ;
       list suiv ;
    }*
    _beginthread et tout ce qui se trouve dans process.h ne répondent à aucun standard C/C++. C'est un header mis à disposition par Microsoft, donc le comité n'a pas à mettre sont nez là-dedans.
    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> ?

  15. #15
    Inactif


    Homme Profil pro Guillaume Belz
    Biochimiste
    Inscrit en
    novembre 2008
    Messages
    5 321
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume Belz
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Biochimiste
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2008
    Messages : 5 321
    Points : 19 286
    Points
    19 286

    Par défaut

    Citation Envoyé par rakotoarisoatahiana Voir le message
    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 pouvoir passer un programme générique en tant que paramètre d'un autre programme.
    Connais-tu les threads avec le C++11 (FAQ Stroustrup), avec Boost ou avec Qt (QThread et QtConcurrent) ? Connais tu les différences de syntaxe, utilisabilité, performance, etc. entre ces approches ? (ce ne sont pas des questions pièges, je ne connais pas du tout les threads mode msn)

    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 Envoyé par rakotoarisoatahiana
    On devrait aussi avoir la même instruction _beginthread sur Windows ou Linux ou autre plate-forme.
    Tu parles de portabilité. Pourquoi avoir choisit les outils spécifique msn au lieu de bibliothèques plus portable ?

    Citation Envoyé par rakotoarisoatahiana
    On devrait avoir des pointeurs sur des classes, surtout pour les débutants.
    Ex : listes chaînées :
    Code :
    1
    2
    3
    4
    5
    template<class t>
    class list { public :
       t info ;
       list suiv ;
    }*
    Je ne connais pas du tout les pointeurs sur classes. C'est quoi la différence avec les pointeurs sur objet ?
    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)

  16. #16
    Membre expérimenté
    Inscrit en
    octobre 2004
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : octobre 2004
    Messages : 329
    Points : 528
    Points
    528

    Par défaut

    La programmation parallèle est clairement un challenge, je vote pour SG1 sans hésiter

  17. #17
    Membre du Club
    Homme Profil pro nico
    Second de cuisine
    Inscrit en
    avril 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Nom : Homme nico
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : avril 2005
    Messages : 175
    Points : 52
    Points
    52

    Par défaut

    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. !

  18. #18
    Inactif


    Homme Profil pro Guillaume Belz
    Biochimiste
    Inscrit en
    novembre 2008
    Messages
    5 321
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume Belz
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Biochimiste
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2008
    Messages : 5 321
    Points : 19 286
    Points
    19 286

    Par défaut L'évolution du langage C++ s'accélère, 10 groupes d'études et plusieurs nouvelles dates de sortie

    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.

    • le core working group (CWG) a la charge des corrections sur le langage (chapitres 1 à 16 de la norme) ;
    • l'evolution working group (EWG) travaille sur l'évolution du langage (travaux qui sont délégués aux study groups) ;
    • le library working group (LWG) s'occupe de le maintenance de la bibliothèque standard (chapitres 17 et suivants de la norme) ;
    • le library evolution working groupe (LEWG) est responsable de l'évolution de la bibliothèque standard (travaux qui sont délégués aux study groups).


    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 :
    • SG1 Concurrency : concurrence et parallélisme ;
    • SG2 Modules : utilisation de modules à la place du système d'en-têtes ;
    • SG3 File System : gestion des fichiers (basé sur Boost.Filesystem v3) ;
    • SG4 Networking : gestion du réseau, sockets et HTTP ;
    • SG5 Transactional Memory : mémoires transactionnelles (mémoire permettant de créer un ensemble indivisible d'écriture et lecture) ;
    • SG6 Numerics : analyse numérique, nombres réels fixes et flottants, fractions ;
    • SG7 Reflection : réflexion à la compilation ;
    • SG8 Concepts : ajout de contraintes sur les types ;
    • SG9 Ranges : alternative aux itérateurs ;
    • SG10 Feature Test : standardisation des tests.


    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

  19. #19
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2011
    Messages : 74
    Points : 371
    Points
    371

    Par défaut

    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é.

  20. #20
    Membre actif
    Profil pro Michel
    Inscrit en
    décembre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Nom : Michel
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : décembre 2008
    Messages : 82
    Points : 155
    Points
    155

    Par défaut

    Citation Envoyé par rakotoarisoatahiana Voir le message
    On devrait avoir des pointeurs sur des classes, surtout pour les débutants.
    Ex : listes chaînées :
    Code :
    1
    2
    3
    4
    5
    template<class t>
    class list { public :
       t info ;
       list suiv ;
    }*
    Je ne pense pas que ce soit envisageable simplement parce que ça entraine d'énormes refonte dans le langage.

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •