Bonjour. En tant que dev cpp, j'ai toujours trouvé insensé que l'on continue de maintenir le C et de l'utiliser. Mais si ça continue, c'est forcement pour une raison. Je passe peut-être à côté de quelque chose. Svp savez-vous quel intérêt il y a à faire de C en 2019 ?
Bonjour. En tant que dev cpp, j'ai toujours trouvé insensé que l'on continue de maintenir le C et de l'utiliser. Mais si ça continue, c'est forcement pour une raison. Je passe peut-être à côté de quelque chose. Svp savez-vous quel intérêt il y a à faire de C en 2019 ?
Le même intérêt que de faire du C++ alors que Rust existe.
On peut aussi se demander pourquoi un tas de langages de script existe alors qu'on avait Lisp depuis 1958 qui était déjà un langage de haut niveau avec des fonctionnalités que des langages plus récents n'ont pas.
J'imagine que tu contextualises, sans le formuler, ta question relativement au C++ qui parait englober le C.
Deux-trois choses à savoir.
Ecrire un compilateur C++ demande beaucoup plus de boulot que d'écrire un compilateur C. Beaucoup de fabricants de matériel fourniss(ai)ent leur compilateur dédié. Il était rare qu'ils enquiquinent à vouloir supporter tout le C++. Avec GCC et LLVM/clang, les choses changent plus ou moins : ils n'ont plus à s'occuper de parser entièrement un langage, ils peuvent s'occuper du backend qui va traduire un code intermédiaire et partiellement optimisé par les middle-end en code assembleur propre au matériel. Voire, ce sont des libristes qui vont le faire pour eux. (le front-end transforme le langage de départ (C, C++, swift, rust...) en le truc intermédiaire).
Le C++ souffre d'un problème d'ABI (Application Binaire Interface) qui est source de beaucoup d'ennuis. Changer des options de compilation (ou de compilateur) peut faire que deux binaires (typiquement des bibliothèques compilées) ne soient pas compatibles entre eux. Ca peut arriver en C si on ne fait pas attention. Cela arrive facilement en C++. Beaucoup trop facilement.
Plus il y a de l'historique: on ne va pas réécrire un truc qui marche dans un autre langage plus récent, ou plus whatever-la-raison, juste pour le plaisir.
Il y a probablement d'autres raisons, ne seraient-ce que des raisons humaines.
Parce que le langage c permet un contrôle assez fin sur le déroulement des programmes, et que ça peut permettre - quand c'est bien fait, et au prix de beaucoup de travail- d'avoir des programmes plus rapides et/ou qui occupent moins de mémoire.
En réalité c'est critique dans très peu de programmes : pilotes de périphériques, bibliothèques de calcul, programmation embarquée.
Pour le reste, c'est un gaspillage de temps de travail, et d'argent à payer des salaires pour un boulot qui serait mieux et plus vite fait avec des langages de plus haut niveau.
Sinon il y a des facteurs humains, comme les programmeurs qui ne connaissent qu'un langage et qui trouvent que c'est le meilleur du monde.
- Edité par michelbillaud 16 septembre 2019 à 18:05:49
Language C, peut-être utile.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
tim.cpp
Blond, bouclé, toujours le sourire aux lèvres...