• # C'est moi ou c'est idiot ?

    Posté par (site web personnel) . En réponse au journal Google forke C++. Évalué à 10.

    Google utilise C++ en interne pour obtenir le maximum de performance de ses algorithmes et donc pour maximiser ses profits. Donc, toute amélioration de performance dans C++ est un gain en argent pour Google.

    L'ABI de C++ ne fait pas partie du standard mais il y a un consensus mou pour essayer de ne pas casser l'ABI de la bibliothèque standard.
    [...]
    Seulement, la stabilité de l'ABI a un coût : les mauvaises décisions d'implémentation restent. Raison pour laquelle std::regex par exemple est trèèèèès lent parce que ceux qui l'ont implémenté au départ ne savaient pas bien s'y prendre et ont gravé dans le marbre ces erreurs.
    [...]
    Et donc Google a décidé de sortir son propre langage : Carbon. Carbon est à C++ ce que TypeScript est à JavaScript et Kotlin à Java : c'est largement compatible, ça peut utiliser l'autre, mais ça vit à côté.

    C'est moi ou c'est idiot, comme démarche ? D'après ce que j'en ai compris, ça se résume tout de même à:

    1. on utilise C++ ;
    2. l'ABI de la bibliothèque standard, non normalisée mais conservée par simple tradition (à une époque Microsoft la pétaient régulièrement et ça ne se passait pas trop mal), a des conséquences néfastes pour les performances ;
    3. du coup comme on ne peut de la changer (en fait si), on crée un nouveau langage.

    Le passage du point 2 au point 3 me semble complètement foireux. Si l'API ou l'ABI de la bibliothèque standard ne plaît pas à Google, ils peuvent bien ne pas l'utiliser, en faire un fork, recoder la leur pas compatible en l'appelant autrement, bref ce ne sont pas les possibilités qui manquent. Si l'ABI des programmes compilés ne leur plaît pas, ils sont encore plus libres d'en changer.

    Bref, un nouveau langage, pourquoi pas, mais justifier ça en parlant des pénalités imposées par l'ABI de la bibliothèque standard, non normalisée, qu'on a pour tradition récente de ne pas changer, mais qui a été changée dans le passé, c'est plus que fallacieux, non ?