Developpez.com

Le Club des Développeurs et IT Pro

Quel nom pour la future norme C++ ? La baptiser devient problématique face aux retards qui s'accumulent

Le 2010-01-07 12:37:20, par Gordon Fowler, Expert éminent sénior
Depuis plusieurs années maintenant, un comité de normalisation ISO planche sur une nouvelle norme pour le langage C++.

Jusqu'à présent, le «nom de code» de cette nouvelle mouture devait être C++0X, le X ayant vocation à être remplacé par l'année de normalisation.

Une sortie en 2009 aurait par exemple été baptisée C++09.

L'objectif initial était de produire cette norme avant la fin de la décennie 2000. D'où le 0 avant le X. Or, nous sommes depuis quelques jours en 2010 et les travaux sont toujours en cours.

Il devient par conséquent logique de modifier le nom de code pour le faire coller à la dure réalité à laquelle l'évolution du C++ est confronté.

Certains prônent tout simplement C++1X pour une normalisation que l'on espère approuvée durant la décennie à venir.

D'autres, avec un humour très geek, proposent que l'on garde le nom de code C++0X, X devenant alors non plus l'année en format décimal mais l'année en format hexadécimal (base 16 donc).
Par exemple, C++0a désignerait une norme approuvé en 2010 (pour mémoire A en hexadécimal vaut 10 en décimal).

Cette proposition très geek fait aussi valoir qu'en en C++, X est le préfixe pour désigner des nombres en format hexadécimal (dans un code C++, on écrit 0x0A pour désigner 10).

Pour enfoncer le clou, les partisans de cette solutions rappellent que « ++ » est également l'opérateur d'incrémentation qui permet d'augmenter de 1 une variable. Et qu'il peut parfaitement se trouver à gauche de la valeur à incrémenter.

En clair, « ++0 » peut aussi se comprendre comme « 1 », « C++0X » lisant alors comme C (++0)X == C 1X.

Plus sérieusement, les incertitudes qui planent sur la date de réalisation effective de la nouvelle norme pourraient bien avoir des conséquences très négatives pour le langage.

Un des plus dommageable est l'absence de son intégration dans les nouvelles moutures des compilateurs les plus importants du marché, à commencer par Visual 2010 qui n'intégrera pas toutes les évolutions prévues... puisqu'il sortira, lui, bien avant la fin du processus de normalisation.
Le risque est de voir se reproduire le décalage observé entre Visual 6.0 et la première normalisation (de 1998) dont les conséquences se font encore sentir.

Coup d'arrêt majeur pour le C++ ou simple péripétie vite oubliée quand arrivera le C++0X... Pardon... le C++1X... Le C++7DA ?.. C++11111011010 ?

Bref, on s'est compris : le futur C++ quoi !

Lire aussi :

La Rubrique C++ (actu, forums, tutos) et le portail Langages de Développez.com

Le langage D est-il le successeur du C++ ?

Le pire bout de code que vous ayez vu : Qui l'a fait ? Pourquoi ? Pourquoi était-il si horrible ?
Pourquoi la communauté C++ s'intéresse-t-elle plus à la technique et ignore la conception ?

Les lacunes de l'enseignement du métier de développeur logiciel selon Bjarne Stroustrup, créateur du langage C++

Et vous ?

Quel nom souhaiteriez-vous voire donner à la future norme C++ ?
  Discussion forum
14 commentaires
  • teddyalbina
    Membre confirmé
    J'ai jeté un coup d'oeil à la partie multithreading de C++0x c'est un vrai bordel à écrire un horreur sans nom

    Tu m'étonnes que les types soient à la bourre la syntaxe est tellement bordélique qu'ils s'y perdent à chaque fois qu'ils veullent toucher un truc il faut déjà lire les 200 premières pages de spec histoire de se rappeler la syntaxe tordue pondu entre deux bouteilles de vinasse à pas chère

    Je sais je suis méchant mais vraiment c'est trop le boxon C++0x, il faut le remplacer par un langage moins crade tout en gardant la puissance.
  • Jack Sparrow
    Membre actif
    On a tellement eu l'habitude (enfin, question de parler) d'écrire ou de voir C++0X qu'on pourrait simplement garder C++0X.

    Ils sont bien optimistes ceux qui pensent que ce sera bon avant C++0F
  • 3DArchi
    Rédacteur
    Salut,
    Il est certain que cette norme se fait attendre. Beaucoup d'évolutions majeures sont prévues et devraient rendre le langage plus compréhensible pour les développeurs arrivant d'autres langages (comme Java ou C#), plus facile à apprendre et à utiliser mais aussi toujours plus expressif. La plus part des éditeurs payant de compilateur sont très parcimonieux sur ce qu'ils intègrent ou intégreront dans leur compilateur. Notons tout de même gcc qui propose déjà beaucoup des avancées dans les dernières versions de son compilateur.
  • ctxnop
    Membre expérimenté
    Envoyé par 3DArchi
    Notons tout de même gcc qui propose déjà beaucoup des avancées dans les dernières versions de son compilateur.
    La dernière fois que j'ai regardé GCC implémente le TR1 du C++0x (euh, finalement, on l'appel comment ? ), tout comme Visual Studio C++ 2008 SP1, et peut être même une ou deux version plus tot. Mais ni GCC ni Visual C++ n'implémentent le TR1 dans son intégralité.
  • bubulemaster
    Membre éclairé
    Et bien si c'est compliqué le C++0X reste plus qu'aux gens de migrer vers Pascal.

    Ok, je sors.

    Le langage D, ne peut pas remplacer le C++ car c'est du compilé avec de la gestion auto de la mémoire.
    Mais c'est une alternative très intéressante.
  • vintz72
    Membre averti
    Envoyé par Jack Sparrow
    On a tellement eu l'habitude (enfin, question de parler) d'écrire ou de voir C++0X qu'on pourrait simplement garder C++0X.
    On pourrait même simplifier en COX ! Ce serait plus simple et rapide à prononcer !
  • Jack Sparrow
    Membre actif
    Envoyé par vintz72
    On pourrait même simplifier en COX ! Ce serait plus simple et rapide à prononcer !
    Vivement sa 6ème révision.
  • 3DArchi
    Rédacteur
    Salut,
    Envoyé par ctxnop
    La dernière fois que j'ai regardé GCC implémente le TR1 du C++0x.
    Les dernières versions implémentent beaucoup plus que ça : Support C++0x.
  • Envoyé par Jack Sparrow
    Vivement sa 6ème révision.
  • TresNulDev
    Nouveau membre du Club
    Contrairement à ce qu'on a entendu partout et surtout dans les médias, la décennie 200x n'est pas finie; elle a commencé en 2001 (2000 marquant la fin de la décennie précédente et accessoirement du vingtième siècle et du deuxième millénaire) et se termine en 2010. Ca me rappelle l'histoire du fameux "millénium" en 1999 alors que la fin du millénaire avait lieu 1 an plus tard. J'avais bien rigolé! Tout ça pour dire que le nom C++0x est encore valable jusqu'au 31 décembre 2010 à 11h 59min 59sec 999 millièmes...