À la lueur de cette réponse, j'ai un peu de mal à voir la différence avec le C++.
Si tu utilise un module de la libstdc++, tu es aussi sur de l'avoir. Evidemment, c'est moins large que python, mais bon globalement, le problème arrive tôt ou tard, et c'est assez chiant.
Le respect de la "non-specification" semble évidemment très implémentation dépendant, et donc globalement la majorité des codes python ne fonctionne que sur Cpython. On peut donc dire que ça dépend beaucoup de l'interpréteur que tu utilise. L'utilisation de tests permet peut-être de vérifier l'interface (encore faut il que les tests soient exhaustifs), mais pas la complexité des implémentations (qui est par exemple préciser pour les algorithmes de la lib standard C++).
Concernant les templates et le C++, il y'a possiblement des compilateurs qui ne les implémente pas, ou mal. M'enfin boost (la plus grosse lib C++ donc, à base à 99% de template) fonctionne sur tous les compilateurs majeurs C++ existants, donc ça doit pas être si critique que ça de nos jours. Pour std::string, aucune idée, le bottleneck chez moi, ça a jamais été std::string (surtout qu'on peut spécifier un allocateur spécifique de mémoire si besoin)).
En conclusion, je ne vois pas bien l'avantage de python sur C++ sur les points cités (surtout si tu limite le monde C++ a g++ comme tu limite le monde python à Cpython).
[^] # Re: La seule expérience Python de ma vie
Posté par zul . En réponse au journal Python, langage de l'année pour la seconde année consécutive. Évalué à 2.
Si tu utilise un module de la libstdc++, tu es aussi sur de l'avoir. Evidemment, c'est moins large que python, mais bon globalement, le problème arrive tôt ou tard, et c'est assez chiant.
Le respect de la "non-specification" semble évidemment très implémentation dépendant, et donc globalement la majorité des codes python ne fonctionne que sur Cpython. On peut donc dire que ça dépend beaucoup de l'interpréteur que tu utilise. L'utilisation de tests permet peut-être de vérifier l'interface (encore faut il que les tests soient exhaustifs), mais pas la complexité des implémentations (qui est par exemple préciser pour les algorithmes de la lib standard C++).
Concernant les templates et le C++, il y'a possiblement des compilateurs qui ne les implémente pas, ou mal. M'enfin boost (la plus grosse lib C++ donc, à base à 99% de template) fonctionne sur tous les compilateurs majeurs C++ existants, donc ça doit pas être si critique que ça de nos jours. Pour std::string, aucune idée, le bottleneck chez moi, ça a jamais été std::string (surtout qu'on peut spécifier un allocateur spécifique de mémoire si besoin)).
En conclusion, je ne vois pas bien l'avantage de python sur C++ sur les points cités (surtout si tu limite le monde C++ a g++ comme tu limite le monde python à Cpython).