Vu mes expériences avec Python ces 15 dernières années, je ne peux qu'être d'accord avec l'article (et bien sûr en désaccord avec toi).
Python en production, ça peut le faire pour de petites applications. Mais dès que ça monte en charge, ou que l'application devient complexe, Python ne tient plus.
Est-ce à cause du langage et du runtime python ? En partie je pense. Mais je pense aussi que le problème de python,c'est que la plupart de ceux qui en font ne sont pas formés à ça et se retrouvent à développer du code pourri, qui certes a lair de fonctionner, mais qui est difficile à maintenir ou se trouve lent à l'exécution parce que les gens qui ont développés ne se sont pas posés de questions.
J'ai vu ce genre de choses à chaque fois que j'ai du intervenir sur du code python. Des gros bloats avec des fonctions de plusieurs pages, avec du code sans cohérence (un bout de code pour faire un truc, suivi d'un bout de code pour faire autre chose, suivi d"'un autre bou de code pour continuer à faire ce qui avait été commencé précédemment, ...). Puis bien sûr comme il n'y a pas de tests unitaires, c'est la galère pour tout reprendre ...
Je ne parle pas des problèmes de dépendances, car l'article en a parlé (c'est d'ailleurs 90% des problèmes que je rencontre lorsque je veux installer un truc développé en python, mais on a parfois les mêmes soucis avec Ruby et ses gems).
Dernier détail : est-ce si difficile que ça de faire du packaging en python ? Parce que dernièrement je discutais d'un truc avec un dev : comme beaucoup de devs aujourd'hui, quand il package une appli, il la package dans une image docker, et moi ça me gène. En effet, l'appli devrait être, de mon point de vue, empaqueté dans un paquet python, avant d'être installée dans l'image via pip ( comme une appli Java est empaqueté dans un fichier Jar par exemple... mais il me dit que c'est se générer beaucoup de travail et des complexités pour rien. Pour beaucoup de langages modernes que je connais (Rust, Go, Java par exemple), c'est pas si compliqué que ça. En Ruby c'est un peu plus compliqué mais pas impossible. Et pour d'autres langages tels que C, on a des outils qui permettent de le faire facilement (dans l'absolu je pense qu'on pourrait même utiliser Maven pour faire un tgz, mais les outils de build couramment utilisés doivent permettre de le faire).
[^] # Re: Huhu
Posté par totof2000 . En réponse au lien Difficile de recommander Python en production . Évalué à 10.
Vu mes expériences avec Python ces 15 dernières années, je ne peux qu'être d'accord avec l'article (et bien sûr en désaccord avec toi).
Python en production, ça peut le faire pour de petites applications. Mais dès que ça monte en charge, ou que l'application devient complexe, Python ne tient plus.
Est-ce à cause du langage et du runtime python ? En partie je pense. Mais je pense aussi que le problème de python,c'est que la plupart de ceux qui en font ne sont pas formés à ça et se retrouvent à développer du code pourri, qui certes a lair de fonctionner, mais qui est difficile à maintenir ou se trouve lent à l'exécution parce que les gens qui ont développés ne se sont pas posés de questions.
J'ai vu ce genre de choses à chaque fois que j'ai du intervenir sur du code python. Des gros bloats avec des fonctions de plusieurs pages, avec du code sans cohérence (un bout de code pour faire un truc, suivi d'un bout de code pour faire autre chose, suivi d"'un autre bou de code pour continuer à faire ce qui avait été commencé précédemment, ...). Puis bien sûr comme il n'y a pas de tests unitaires, c'est la galère pour tout reprendre ...
Je ne parle pas des problèmes de dépendances, car l'article en a parlé (c'est d'ailleurs 90% des problèmes que je rencontre lorsque je veux installer un truc développé en python, mais on a parfois les mêmes soucis avec Ruby et ses gems).
Dernier détail : est-ce si difficile que ça de faire du packaging en python ? Parce que dernièrement je discutais d'un truc avec un dev : comme beaucoup de devs aujourd'hui, quand il package une appli, il la package dans une image docker, et moi ça me gène. En effet, l'appli devrait être, de mon point de vue, empaqueté dans un paquet python, avant d'être installée dans l'image via pip ( comme une appli Java est empaqueté dans un fichier Jar par exemple... mais il me dit que c'est se générer beaucoup de travail et des complexités pour rien. Pour beaucoup de langages modernes que je connais (Rust, Go, Java par exemple), c'est pas si compliqué que ça. En Ruby c'est un peu plus compliqué mais pas impossible. Et pour d'autres langages tels que C, on a des outils qui permettent de le faire facilement (dans l'absolu je pense qu'on pourrait même utiliser Maven pour faire un tgz, mais les outils de build couramment utilisés doivent permettre de le faire).