Mouais. Je trouve pas de références facilement sur le sujet. -- "Delphi", "Pascal"... concernent d'autres choses dans le contexte du HPC. Il y a donc un webinar auquel il faut s'inscrire etc etc. Peu d'informations ou de benchs faciles d'accès donc. Ce ne donne pas envie de creuser. Surtout avec une licence payante.
Il faut voir qu'il y a déjà une différence de performances sensible entre deux compilateurs concurrents pour un même langage pour le HPC -- typiquement Intel met les moyens dans ses compilateurs (Fortran, C, et C++) pour vendre ses puces. L'industriel derrière Delphi met-il autant d'effort sur ce sujet de niche ? J'aimerai bien avoir des mesures plus concrètes que "essaies tu vas voir, c'est rapide" (c'est tout ce que j'ai trouvé sur un commentaire dans un blog)
Pour les chaînes, le C++ est revenu en arrière sur le COW car justement ce n'est pas aussi rapide que cela -- nous sommes dans des environnements multiprocesseurs, et il faut blinder les accès concurrents ce qui a malgré tout un prix dont on peut se passer à 99% du temps. Maintenant, si la chaîne est manipulée via une référence dans un GC, le surcoût du COW est peut-être gommé, je ne sais pas comment marche Delphi aujourd'hui. Est-ce qu'il a gardé le passage de paramètres de Pascal où tout est passé par valeur, sauf s'il y a un "var" qui dit "par référence"?
Quand vous parlez de "manipuler des objets", j'en déduis qu'il existe un type référence vers objet. C'est bien ça? J'en étais resté aux objets qui se manipulaient via des pointeurs (et tous les problèmes qui s'en suivent)
Ce qui me fait penser avec toutes ces histoires de "les choses évoluent". Avez-vous jeté un oeil aux C++CoreGuidelines ? À cette mouvance qui cherche à introduire des types opaques en C++ (des décennies après Ada, certes) ? Cette volonté d'éliminer les pointeurs bruts ? Et dans le cas de chaîne et tableau de disposer de types pour les unifier tous tout en sécurisant au maximum la manipulation de la mémoire (string_view, span...).
On en arrive au problème qu'il faut mettre à jour les développeurs ensuite pour qu'ils oublient les saletés qu'ils devaient faire auparavant, et c'est ça le plus compliqué.
Concernant les dépendances cycliques. J'en écrivais avec Turbo Pascal 5.5 (ou 5.0?). C'est parfaitement possible. Ce qui change vraiment, c'est la notion de module qui fait effectivement cruellement défaut. Des versions expérimentales sont en cours de réalisation/étude sur les 3 principaux compilateurs avec l'espoir de converger pour le C++20, tout en gardant une rétrocompatibilité avec le fonctionnement hérité du C...

Partager