Langages

a marqué ce sujet comme résolu.

Les langages de programmation, c’est comme la richesse. Si tout le monde est riche, plus personne ne l’est. Bah là c’est pareil. Si tout le monde fait du C++ ou du Rust, du coup il n’y a plus de séparation entre l’élite et tout ce bas-peuple qui code vulgairement en Python, C# ou même Haskell et Coq.

Serait-tu un anarchiste venu troubler la paix et l’ordre social établi de Zeste de Savoir ? Ne sais-tu point que notre pouvoir et notre autorité réside dans l’ignorance des masses ? Si ce secret venait à être révélé, cela signifierait notre fin !

qui code vulgairement en Python

Ah non, désolé, moi je code poliment.

try:
    res = client.can_you_fetch_this_url_please("https://zestedesavoir.com")
except IDontWantToError:
    client.oh_ok_then_ill_find_another_way()
except RuntimeError:
    client.thanks_for_trying()
else:
    client.thats_great_thank_you()
+12 -1

Allez, je vais répondre comme si le sujet était sérieux, au cas où quelqu’un tomberait par hasard sur ce sujet en quête d’informations.

Les performances ne font pas tout. Il est très courant dans un programme d’être limité par des attentes sur les entrées/sorties plus que par la vitesse d’exécution des instructions. Dans ces cas-là utiliser C++ ou Rust ne changera rien par rapport à Python ou JS.

L’intérêt de langages plus haut-niveau c’est qu’ils peuvent se permettre une meilleure expressivité (au détriment des performances). Et quand ils sont bien conçus, il est assez facile de les brancher à d’autres modules plus performants pour les parties critiques.

Les performances du programme final ne sont pas le seul critère à optimiser quand on programme. Les gens écrivent dans d’autres langages pour des raisons variées, typiquement "c’est plus facile/rapide d’écrire le programme que je veux". Par exemple:

  • Peut-être que les autres langages sont plus "faciles" à utiliser pour eux pour ce besoin. Ils peuvent écrire en quelques lignes, ou en quelques minutes, quelque chose qui serait délicat à faire en C++. Ou alors ils n’ont pas envie/besoin de réfléchir à certains aspects (la gestion mémoire par exemple) que C++/Rust les force à considérer.

  • Peut-être que les gens ont trouvé d’autres langages plus faciles à apprendre et donc les maîtrisent mieux.

  • Peut-être que les gens ont l’impression qu’ils font moins d’erreurs de programmation (que ces erreurs soient ensuite trouvées par un vérificateur de code, par exemple le compilateur, ou ensuite à l’exécution du programme) dans un autre langage, et qu’ils sont donc au final plus productifs pour obtenir le code qu’ils voulaient.

  • Peut-être tout simplement qu’ils ont trouvé de bons outils bien documentés pour répondre à leur besoin dans un autre langage.

Les gens qui utilisent C++ à grande échelle dans l’industrie se plaignent beaucoup des temps de compilation énorme, des messages d’erreur incompréhensible, du fait que personne n’utilise le même fragment du langage et qu’il est donc difficile de comprendre le code des autres, du fait que les erreurs dans les templates ne sont signalées que quand on les utilise, pas quand on les écrit, etc.

Pour Rust, il faut lire 20 pages de documentation pour comprendre comment implémenter une liste doublement chaînée.

Si la question de savoir pourquoi les langages sont utilisés en pratique vous intéresse, je vous invite à aller découvrir le projet scientifique Socio-PLT, qui visait à utiliser des outils de sociologie pour comprendre l’utilisation des langages.

Merci !

mais on peut tout faire en mieux ( performant / consommation ) en rust et c++

il suffit de bien maitriser le langage pour faire un code bien et comprendre les autres code non ?

DavidA

Tu as déjà vu du code écrit pour être vraiment performant ET consommant peu de ressources ? Les micro-optimisations partout rendent le code totalement illisible, les opérations sur place en pagaille font une charge cognitive telle qu’il faut faire des schémas de 3 pages et réécrire l’algo d’une manière compréhensible.

Mais, oui, au final, c’est performant, c’est écrit en C++ et par dessus tout, en cas de besoin, ça a un effet émétique à la lecture.


La performance n’est pas tout. Des bons algos, écrit de façon lisible peuvent être préférable dans la majorité des cas. Et des langages plus expressifs gagnent aisément sur cet aspect.

Salut,

et sincèrement, pourquoi mettre du C++ alors que le C suffit?

artragis

J’approuve totalement, le C++ c’est pour les n00bs qui savent pas implémenter des structures de données ou des algos eux-même.

Taurre

Je rebondi, c’est tellement vrai qu’il est même difficile de trouver un programme C++ exempt de bug !

+2 -0
Ce sujet est verrouillé.