IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    9 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 9 075
    Points : 209 461
    Points
    209 461
    Par défaut Herb Sutter quitte Microsoft et déclare que C++ 26 est « la plus importante depuis C++11 »
    Herb Sutter, président de l'ISO C++, quitte Microsoft après 22 années de collaboration
    et déclare que la prochaine version de C++ 26 est « la plus importante depuis C++11 »

    Herb Sutter, l’un des leaders les plus influents de la communauté C++ et actuel président du comité ISO C++, quitte Microsoft après 22 années de collaboration. Au-delà de ce départ, Sutter a surpris la communauté en déclarant que C++ 26, la prochaine grande version du langage prévue pour 2026, serait la version « la plus impactante depuis C++11 ». Cette annonce a de quoi susciter l’enthousiasme et l’impatience, tant C++11 avait introduit des avancées majeures et modernisé le langage de manière significative.

    Herb Sutter : une carrière dédiée à l’évolution de C++

    Herb Sutter est un nom bien connu dans le monde du développement logiciel, en particulier pour sa contribution à l’évolution de C++. Ingénieur en chef chez Microsoft pendant plus de deux décennies, il a joué un rôle de premier plan dans la direction de l’implémentation et de la standardisation de C++ à l’échelle mondiale. Sutter a également influencé les grandes décisions techniques qui ont façonné C++ en tant que langage polyvalent, performant et moderne. Son influence a été déterminante dans les versions majeures, y compris C++11, C++14, C++17, C++20, et C++23.

    Herb Sutter, président du comité C++ de l'ISO, a quitté Microsoft après 22 ans d'activité, pour devenir technical fellow chez Citadel Securities, où il travaillera sur la stratégie technique et la formation. Il continuera à présider le comité ISO et affirme que 2024 a été une « année charnière » pour le langage.

    Sutter s'est exprimé lors de la conférence CppCon en septembre, où il a déclaré que « la norme C++ 26 ... est susceptible de changer la façon dont nous développons des logiciels » et qu'elle constitue le plus grand changement apporté au langage depuis C++ 11. La spécification de C++ 26 devrait être achevée à la mi-2026, comme son nom l'indique, bien que le déploiement des fonctionnalités mises en œuvre dans des compilateurs tels que Clang et GCC sera progressif ; certaines sont déjà présentes.

    Sutter a identifié quatre caractéristiques clés de C++ 26 qui, selon lui, « semblent en bonne voie ». Il s'agit :
    • d'améliorations apportées à std:execution (une bibliothèque standard pour les opérations asynchrones) pour améliorer la concurrence et le parallélisme
    • d'améliorations de la sécurité des types et de la mémoire, dans le but d'atteindre la parité avec d'autres langages modernes et plus sûrs.
    • la réflexion et la génération de code, décrites par Sutter comme « faisant partie de notre changement radical vers la programmation à la compilation » et « sans doute [la] fonctionnalité la plus impactante jamais ajoutée ».
    • des contrats, qui spécifient les interfaces de manière à ce que leur conformité puisse être vérifiée, y compris les préconditions, les postconditions et les affirmations d'état valide.

    La sécurité est un problème majeur dans la communauté C++, de nombreux experts en sécurité recommandant aux développeurs de passer à des langages tels que Rust afin d'éviter les bogues et les problèmes associés à des problèmes tels que l'utilisation hors limites de la mémoire et les comportements indéfinis. Lors de la conférence CppCon, Sutter a déclaré que la parité de sécurité ne signifiait pas la perfection, mais que les « cibles prioritaires » seraient abordées, notamment l'augmentation du nombre de bibliothèques sûres au sein de la norme, la suppression des comportements indéfinis liés à la sécurité, de nouvelles règles de sécurité statiques à la compilation et des contrôles de sécurité dynamiques.

    Dans un billet de blog publié cette semaine, Sutter a déclaré que la version précédente, C++ 11, avait introduit le C++ moderne avec des fonctionnalités telles que l'auto, les lambdas et les pointeurs intelligents sûrs. C++ 26 se caractérisera par « la sécurité par défaut et une prise en charge de premier ordre des bibliothèques génératives à la compilation basées sur la réflexion ».


    C++ 11 : une révolution qui a modernisé le langage

    Avant d’anticiper les changements que pourrait apporter C++26, il est important de revenir sur l’impact de C++11. Sorti en 2011, C++11 est considéré comme une révolution dans le monde C++. Cette version a introduit des fonctionnalités telles que les expressions lambda, les pointeurs intelligents (smart pointers), la gestion de la concurrence (multithreading), les initialisations uniformes, ainsi que les "move semantics" (transfert de ressources). Ces évolutions ont permis de simplifier le code, d’améliorer les performances et de rendre C++ plus attractif pour une nouvelle génération de développeurs.

    C++ 26 : une promesse d’impact équivalent à celui de C++11

    Selon Sutter, C++ 26 pourrait représenter un tournant similaire, voire plus profond que celui apporté par C++11. Bien que les détails précis restent encore confidentiels, certaines orientations sont déjà connues. La prochaine version devrait se concentrer sur plusieurs axes :
    • Simplicité et expressivité : Face à la complexité croissante du langage, le comité de standardisation envisage de simplifier la syntaxe et les concepts, rendant le langage plus accessible aux développeurs novices tout en préservant sa puissance.
    • Performances optimisées : C++ a toujours été un langage apprécié pour son efficacité et sa capacité à produire du code performant. C++26 devrait poursuivre cette tradition en intégrant de nouvelles optimisations qui répondent aux besoins des applications modernes, notamment celles qui demandent une grande puissance de calcul.
    • Interopérabilité et portabilité : L’essor des systèmes embarqués et des plateformes hétérogènes a conduit à une demande accrue pour un langage facilement adaptable. La standardisation du langage avec des API plus portables et des extensions facilitant l'interopérabilité pourrait être l’un des objectifs majeurs de cette version.
    • Sécurité et gestion de la mémoire : La gestion de la mémoire et la sécurité des applications sont des préoccupations croissantes. C++26 pourrait introduire des fonctionnalités pour réduire les risques d’erreurs mémoire tout en assurant une meilleure sécurité des applications.


    J'étais sincère lorsque j'ai dit, lors de ma présentation à la CppCon, que la prochaine décennie du C++ serait dominée par la réflexion et les améliorations de la sécurité, et que C++26 s'annonce comme la version la plus impactante depuis C++11, qui a ouvert une nouvelle ère pour le C++ ; c'est une période passionnante pour le C++ et j'ai l'intention de continuer à passer beaucoup de temps à contribuer à C++26 et au-delà.
    Nom : herbe.png
Affichages : 86736
Taille : 450,5 Ko

    Les réactions des développeurs

    Sutter fait preuve d'un enthousiasme contagieux à l'égard du langage. « Il y a tellement de possibilités avec la réflexion/génération ! J'attends avec impatience la standardisation complète et l'implémentation du compilateur », a déclaré un développeur en commentant la conférence.

    D'autres, en revanche, sont plus prudents et craignent que le langage ne devienne encore plus complexe : « Tout le langage est devenu si compliqué. Des efforts comme Cppfront aident, mais nous avons besoin d'un nouveau langage de programmation inspiré du C++ pour renaître de ses cendres », a déclaré un développeur, ajoutant : « et, non, ce n'est pas Rust”. Cppfront est un compilateur expérimental créé par Sutter pour tester de nouveaux concepts.

    Il est toujours plus facile d'ajouter des fonctionnalités à un langage que de les supprimer, en raison de la nécessité d'assurer la compatibilité avec le code existant.
    Sutter a travaillé sur Visual C++ chez Microsoft, un outil largement utilisé au sein de l'entreprise pour Windows et pour des applications clés telles qu'Office. Curieusement, compte tenu du rôle de Sutter au sein du comité ISO, Visual C++ a eu tendance à être lent dans la mise en œuvre de nouvelles fonctionnalités C++, par rapport à Clang et GCC.

    Ces dernières années, des voix éminentes au sein de Microsoft ont plaidé en faveur du passage à Rust pour des raisons de sécurité et de fiabilité, notamment le directeur technique d'Azure, Mark Russinovich.

    Le futur de C++ sans Sutter chez Microsoft

    Si Sutter quitte Microsoft, il reste néanmoins impliqué dans la communauté C++. Il continuera à jouer son rôle de président du comité ISO C++ et à guider le développement du langage, même en dehors du cadre de l’entreprise. Son départ laisse toutefois un vide chez Microsoft, où il a contribué à positionner C++ comme un langage clé de l’écosystème de développement, notamment pour les applications nécessitant un haut niveau de performance.

    La prochaine étape pour Sutter pourrait le voir se consacrer encore plus intensément à la standardisation et à la mise en place de directives pour l’évolution de C++. Il est également probable qu'il s’implique dans la formation et la documentation pour accompagner les développeurs vers une adoption rapide des nouvelles fonctionnalités de C++ 26.

    Nouvelles fonctionnalités du C++11

    Sources : vidéo dans le texte, Herb Sutter

    Et vous ?

    Quels changements ou améliorations espérez-vous voir dans C++ 26 ? Avez-vous des fonctionnalités spécifiques en tête qui pourraient améliorer votre expérience de développement ?

    Pensez-vous que C++ reste pertinent face à d’autres langages plus récents comme Rust ou Go ? Dans quel type de projets préférez-vous utiliser C++ par rapport à ces langages ?

    Le départ de Herb Sutter pourrait-il affecter la trajectoire de développement de C++ ? Croyez-vous qu’un changement dans la direction de Microsoft pourrait influencer les priorités du comité ISO C++ ?

    En quoi la simplification de C++ pourrait-elle vous aider dans votre travail ? Est-ce que la complexité actuelle de C++ vous pose des défis spécifiques ?

    Est-ce que vous considérez C++ comme le langage de choix pour les projets axés sur la performance ? Si oui, comment voyez-vous les nouvelles fonctionnalités de C++ 26 renforcer cette réputation ?

    Quel est, selon vous, le plus grand défi auquel C++ doit faire face aujourd'hui ? S’agit-il de la complexité, de la sécurité mémoire, de la concurrence avec d’autres langages, ou d’autre chose ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre régulier
    Homme Profil pro
    Chômeur inutile
    Inscrit en
    Juillet 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chômeur inutile
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 97
    Points : 99
    Points
    99
    Par défaut
    ***Il pourraient commencer par adopter le formatage par indentation et virer les points virgules

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2019
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2019
    Messages : 260
    Points : 1 215
    Points
    1 215
    Par défaut
    Citation Envoyé par Zeeraptor Voir le message
    ***Il pourraient commencer par adopter le formatage par indentation et virer les points virgules
    N'importe quoi !
    A part ça, je ne vois pas en quoi le c++ est complexe. Il n'y a que les débutants qui peuvent le trouver compliqué, ou au moins complexe. Mais c'est comme pour tous les langages: chaque fois, que je me remets à vouloir faire un petit script python, je trouve le langage compliqué, dès que je veut faire autre chose que du code basique, et le code devient vite illisible à cause du système d'indentation et du non-typage obligatoire.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 036
    Points : 5 480
    Points
    5 480
    Par défaut
    L'Herb est sans doute plus verte ailleurs !

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 374
    Points : 4 457
    Points
    4 457
    Par défaut
    Citation Envoyé par d_d_v Voir le message
    N'importe quoi !
    A part ça, je ne vois pas en quoi le c++ est complexe. Il n'y a que les débutants qui peuvent le trouver compliqué, ou au moins complexe. Mais c'est comme pour tous les langages: chaque fois, que je me remets à vouloir faire un petit script python, je trouve le langage compliqué, dès que je veut faire autre chose que du code basique, et le code devient vite illisible à cause du système d'indentation et du non-typage obligatoire.
    La gestion des bibliothèques est archaïque comparé aux systèmes modernes (Go, Rust avec Cargo, Python avec pip/poetry/uv, Java avec Maven, Android, ...). Pas de gestionnaire, ni de doc centralisée non plus. Je galère à chaque fois que je dois compiler un projet récupéré pour rassembler les bibliothèques sur mon système.
    Il y a très longtemps que je n'ai pas fait de C++ et je n'ai pas un bon souvenir de la partie pointeur.
    Quand quelqu'un a utilisé des notions avancées du langages, ça devient difficile à lire quand on ne l'utilise pas tous les jours.
    De ce que j'ai vu des sources C++, les développeurs commentent peu (mais je n'ai peut être pas eu de chance).
    ...

  6. #6
    Membre chevronné
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 866
    Points : 2 240
    Points
    2 240
    Par défaut
    Citation Envoyé par d_d_v Voir le message
    N'importe quoi !
    A part ça, je ne vois pas en quoi le c++ est complexe. Il n'y a que les débutants qui peuvent le trouver compliqué, ou au moins complexe. Mais c'est comme pour tous les langages: chaque fois, que je me remets à vouloir faire un petit script python, je trouve le langage compliqué, dès que je veut faire autre chose que du code basique, et le code devient vite illisible à cause du système d'indentation et du non-typage obligatoire.
    Les templates c'est effectivement super intuitifs, et les erreurs du compilateur aident vraiment pour comprendre ce qu'on a mal fait.

    Ou bien cas que j'aime beaucoup : c'est copy ou c'est move ?

  7. #7
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2019
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2019
    Messages : 260
    Points : 1 215
    Points
    1 215
    Par défaut
    Citation Envoyé par imperio Voir le message
    Les templates c'est effectivement super intuitifs, et les erreurs du compilateur aident vraiment pour comprendre ce qu'on a mal fait.

    Ou bien cas que j'aime beaucoup : c'est copy ou c'est move ?
    T'es au courant qu'on n'est pas obligé d'utiliser 100% des fonctionnalités d'un langage ?
    En général, les projets contiennent un peu de template, voire pas du tout, et une fois que la partie template est faite, plus personne n'y touche (ou le moins possible).
    On voit que t'y connais rien.
    La plupart des développeurs c++ que j'ai croisés détestent les templates, donc en général on évite.
    Tu aurais pu me sortir la fonctionnalité move, la syntaxe de parallélisation des fonctions STL, les exceptions, es expressions lambdas, mais non, tu me sors un truc que tout le monde déteste et évite.

  8. #8
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2019
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2019
    Messages : 260
    Points : 1 215
    Points
    1 215
    Par défaut
    Citation Envoyé par smarties Voir le message
    La gestion des bibliothèques est archaïque comparé aux systèmes modernes (Go, Rust avec Cargo, Python avec pip/poetry/uv, Java avec Maven, Android, ...). Pas de gestionnaire, ni de doc centralisée non plus. Je galère à chaque fois que je dois compiler un projet récupéré pour rassembler les bibliothèques sur mon système.
    Ouais, mais ça, c'est pas la partie langage, mais la partie de compilation/linkage.

    Citation Envoyé par smarties Voir le message
    Il y a très longtemps que je n'ai pas fait de C++ et je n'ai pas un bon souvenir de la partie pointeur.
    Donc, c'est bien ce que je pensais, vous êtes des débutants, évitez de parler d'un langage que vous ne maitrisez pas. Les pointeurs, c'est la base. Et d'ailleurs, quand on maîtrise, on alloue rarement via des new, on utilise des containers STL et/ou des pointeurs intelligents.

    Citation Envoyé par smarties Voir le message
    Quand quelqu'un a utilisé des notions avancées du langages, ça devient difficile à lire quand on ne l'utilise pas tous les jours.
    Bravo, quelle découverte :! C'est pareil quand je me remet à vouloir faire des scripts python: difficile à relire et à écrire quand on ne l'utilise pas tous les jours.
    Et c'est pareil pour n'importe quel autre langage, ou bien un domaine spécifique. Par exemple, ça fait un bout de temps que je n'ai pas fait d'UI en Qt, j'ai réessayé récemment, j'ai eu du mal.

Discussions similaires

  1. Réponses: 26
    Dernier message: 17/08/2023, 13h19
  2. Réponses: 0
    Dernier message: 16/08/2023, 06h43
  3. Réponses: 1
    Dernier message: 01/10/2016, 22h02
  4. Réponses: 4
    Dernier message: 15/12/2008, 23h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo