Par contre les segfaults en C, les threads et les problèmes de mémoire en C / Java on connaît ...
Déjà comparé C et Python, c'est un peu limite, le C reste, à mon avis, un langage de plus bas niveau que le Python.
Ensuite, la programmation des threads en Python a exactement les mêmes problèmes que pour tous les langages faisant de la concurrence bas niveau à savoir gérer correctement les verrous et les synchros.
Les segfaults sont un peu le prix à payer pour optimiser la mémoire. D'ailleurs, au passage, tu en as beaucoup des programmes qui tous les jours te font un segfault ?
Pour des attributs privés, la convention « object._attribut » fait une partie du boulot
Le problème, c'est que ce n'est qu'une convention et donc quand on tombe sur du code de débutant, il y a un risque non négligeable que cela ne soit pas respecté.
là où peut faire un « #define private public » ou pire avec les pointeurs ...
Alors qu'on ne peut absolument pas faire des trucs horrible au runtime en Python comme ajouter à la volée des méthodes, des variables...
D'ailleurs, rien n'empêche de passer un préprocesseur comme M4 sur du code Python et donc de faire dans le code Python tout ce que l'on peut faire en C/C++.
Après, on peut définir une convention dans le projet C++ qui interdit l'usage d'un #define sur un mot-clé du langage... Ah merde, c'est qu'une convention.
[^] # Re: Stats
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche Python pour la rentrée 2019 — partie 1 ― Popularité. Évalué à 3.
Déjà comparé C et Python, c'est un peu limite, le C reste, à mon avis, un langage de plus bas niveau que le Python.
Ensuite, la programmation des threads en Python a exactement les mêmes problèmes que pour tous les langages faisant de la concurrence bas niveau à savoir gérer correctement les verrous et les synchros.
Les segfaults sont un peu le prix à payer pour optimiser la mémoire. D'ailleurs, au passage, tu en as beaucoup des programmes qui tous les jours te font un segfault ?
Le problème, c'est que ce n'est qu'une convention et donc quand on tombe sur du code de débutant, il y a un risque non négligeable que cela ne soit pas respecté.
Alors, par exemple, la recommandation chez Google, c'est un underscore à la fin, pas au début.
Alors qu'on ne peut absolument pas faire des trucs horrible au runtime en Python comme ajouter à la volée des méthodes, des variables...
D'ailleurs, rien n'empêche de passer un préprocesseur comme M4 sur du code Python et donc de faire dans le code Python tout ce que l'on peut faire en C/C++.
Après, on peut définir une convention dans le projet C++ qui interdit l'usage d'un #define sur un mot-clé du langage... Ah merde, c'est qu'une convention.
Au final, tout est question de point de vue.