Le langage de programmation C a 50 ans
Et reste l'un des langages les plus plébiscités
Le 2022-04-21 07:54:44, par Bruno, Chroniqueur Actualités
Le langage de programmation C a 50 ans et reste l'un des langages les plus plébiscités. « C'est absolument stupéfiant de voir à quel point les gens des Bell Labs ont tout simplement "vu juste". Le système d'exploitation et la philosophie d'Unix, l'interpréteur de commandes d'Unix et le langage de programmation C ont si bien défini l'interface et les abstractions qu'ils dominent toujours 50 ans plus tard. Je me demande quel logiciel créé aujourd'hui nous regarderons dans 50 ans avec autant de respect », déclare un internaute.
C est un langage de programmation informatique à usage général. Il a été créé dans les années 1970 par Dennis Ritchie et les Bell Labs, et reste très largement utilisé et influent. De par sa conception, les fonctionnalités de C reflètent clairement les capacités des processeurs ciblés. Il a trouvé une utilisation durable dans les systèmes d'exploitation, les pilotes de périphériques, les piles de protocoles, bien que de moins en moins pour les logiciels d'application, et est commun dans les architectures informatiques qui vont des plus grands superordinateurs aux plus petits microcontrôleurs et systèmes embarqués.
Successeur du langage de programmation B, C a été développé à l'origine aux Bell Labs par Dennis Ritchie entre 1972 et 1973 pour construire des utilitaires fonctionnant sous Unix. Il a été appliqué à la réimplémentation du noyau du système d'exploitation Unix. Au cours des années 1980, le C a progressivement gagné en popularité. Il est devenu l'un des langages de programmation les plus utilisés avec des compilateurs C disponibles pour presque toutes les architectures informatiques et tous les systèmes d'exploitation modernes. Le langage C est normalisé par l'ANSI depuis 1989 (ANSI C) et par l'Organisation internationale de normalisation (ISO).
C est un langage procédural impératif supportant la programmation structurée, la portée lexicale des variables et la récursion, avec un système de types statique. Il a été conçu pour être compilé afin de fournir un accès de bas niveau à la mémoire et des constructions de langage qui correspondent efficacement aux instructions de la machine, le tout avec un support d'exécution minimal. Malgré ses capacités de bas niveau, le langage a été conçu pour encourager la programmation multiplateforme. Un programme C conforme aux normes et écrit dans un souci de portabilité peut être compilé pour une grande variété de plates-formes informatiques et de systèmes d'exploitation avec peu de modifications de son code source.
Le C est un langage impératif et procédural dans la tradition d'ALGOL. Il possède un système de types statique. En C, tout le code exécutable est contenu dans des sous-routines (également appelées "fonctions", mais pas au sens de la programmation fonctionnelle). Les paramètres des fonctions sont transmis par valeur, bien que les tableaux soient transmis sous forme de pointeurs, c'est-à-dire l'adresse du premier élément du tableau. Le passage par référence est simulé en C par le passage explicite de pointeurs vers la chose référencée.
De nombreux langages ont emprunté directement ou indirectement au C, notamment C++, C#, le shell C d'Unix, D, Go, Java, JavaScript (y compris les transpilers), Julia, Limbo, LPC, Objective-C, Perl, PHP, Python, Ruby, Rust, Swift, Verilog et SystemVerilog (langages de description du matériel). [La plupart d'entre eux (Python étant une exception spectaculaire) expriment également une syntaxe très similaire à celle du C, et ils ont tendance à combiner la syntaxe reconnaissable des expressions et des déclarations du C avec des systèmes de types sous-jacents, des modèles de données et une sémantique qui peuvent être radicalement différents.
Depuis 2000, le langage C se classe régulièrement parmi les deux premiers langages dans l'indice TIOBE, une mesure de la popularité des langages de programmation.
« Je pense que Java/C# et Rust seront toujours utilisés et en bonne forme dans 50 ans. Les deux premiers sont bons pour la programmation de la couche application avec suffisamment de fonctionnalités pour être utiles mais pas trop pour permettre aux programmeurs de se tirer dans le pied à plusieurs reprises », ironise un programmeur C.
« Ils sont également très rapides pour la plupart des applications. Rust pourrait être l'avenir lorsque les performances ou la maîtrise du matériel sont nécessaires. Sinon, il ne restera que le C et le C++ (imaginez que le C ait 100 ans et qu'il y ait encore des gens qui l'embauchent pour programmer le code de leur nouvelle montre numérique)
« Peut-être qu'un ou deux des frameworks web populaires seront encore utilisés. Quelque chose comme React, Node js, ou Blazor (si vous adhérez au rêve de Microsoft de fournir un langage unique pour tout développer, suffisamment rapide et portable). Je ne vois pas pourquoi Python ne continuerait pas à se développer, étant toujours un langage de script puissant dans un demi-siècle », ajoute-il.
Et vous ?
Quelle est votre appréciation du langage C après 50 ans d'existence ?
Avez-vous une expérience avec le langage C ? Que pensez-vous de ce langage ?
Voir aussi :
Microsoft célèbre les 20 ans de .NET, son Framework de développement, les dépôts .NET seraient dans le top 30 des projets open source à plus haute vélocité sur GitHub depuis 2017
Microsoft a publié la version stable de Visual Studio 2022 avec une nouvelle expérience de rechargement à chaud pour les applications natives C++, cette version est disponible uniquement en 64 bits
Un développeur publie un langage de programmation qui peut être traduit automatiquement en C, C++, C#, Java, JavaScript, etc., avec une traduction rapide et sans machine virtuelle
C est un langage de programmation informatique à usage général. Il a été créé dans les années 1970 par Dennis Ritchie et les Bell Labs, et reste très largement utilisé et influent. De par sa conception, les fonctionnalités de C reflètent clairement les capacités des processeurs ciblés. Il a trouvé une utilisation durable dans les systèmes d'exploitation, les pilotes de périphériques, les piles de protocoles, bien que de moins en moins pour les logiciels d'application, et est commun dans les architectures informatiques qui vont des plus grands superordinateurs aux plus petits microcontrôleurs et systèmes embarqués.
Successeur du langage de programmation B, C a été développé à l'origine aux Bell Labs par Dennis Ritchie entre 1972 et 1973 pour construire des utilitaires fonctionnant sous Unix. Il a été appliqué à la réimplémentation du noyau du système d'exploitation Unix. Au cours des années 1980, le C a progressivement gagné en popularité. Il est devenu l'un des langages de programmation les plus utilisés avec des compilateurs C disponibles pour presque toutes les architectures informatiques et tous les systèmes d'exploitation modernes. Le langage C est normalisé par l'ANSI depuis 1989 (ANSI C) et par l'Organisation internationale de normalisation (ISO).
C est un langage procédural impératif supportant la programmation structurée, la portée lexicale des variables et la récursion, avec un système de types statique. Il a été conçu pour être compilé afin de fournir un accès de bas niveau à la mémoire et des constructions de langage qui correspondent efficacement aux instructions de la machine, le tout avec un support d'exécution minimal. Malgré ses capacités de bas niveau, le langage a été conçu pour encourager la programmation multiplateforme. Un programme C conforme aux normes et écrit dans un souci de portabilité peut être compilé pour une grande variété de plates-formes informatiques et de systèmes d'exploitation avec peu de modifications de son code source.
Le C est un langage impératif et procédural dans la tradition d'ALGOL. Il possède un système de types statique. En C, tout le code exécutable est contenu dans des sous-routines (également appelées "fonctions", mais pas au sens de la programmation fonctionnelle). Les paramètres des fonctions sont transmis par valeur, bien que les tableaux soient transmis sous forme de pointeurs, c'est-à-dire l'adresse du premier élément du tableau. Le passage par référence est simulé en C par le passage explicite de pointeurs vers la chose référencée.
De nombreux langages ont emprunté directement ou indirectement au C, notamment C++, C#, le shell C d'Unix, D, Go, Java, JavaScript (y compris les transpilers), Julia, Limbo, LPC, Objective-C, Perl, PHP, Python, Ruby, Rust, Swift, Verilog et SystemVerilog (langages de description du matériel). [La plupart d'entre eux (Python étant une exception spectaculaire) expriment également une syntaxe très similaire à celle du C, et ils ont tendance à combiner la syntaxe reconnaissable des expressions et des déclarations du C avec des systèmes de types sous-jacents, des modèles de données et une sémantique qui peuvent être radicalement différents.
Depuis 2000, le langage C se classe régulièrement parmi les deux premiers langages dans l'indice TIOBE, une mesure de la popularité des langages de programmation.
« Je pense que Java/C# et Rust seront toujours utilisés et en bonne forme dans 50 ans. Les deux premiers sont bons pour la programmation de la couche application avec suffisamment de fonctionnalités pour être utiles mais pas trop pour permettre aux programmeurs de se tirer dans le pied à plusieurs reprises », ironise un programmeur C.
« Ils sont également très rapides pour la plupart des applications. Rust pourrait être l'avenir lorsque les performances ou la maîtrise du matériel sont nécessaires. Sinon, il ne restera que le C et le C++ (imaginez que le C ait 100 ans et qu'il y ait encore des gens qui l'embauchent pour programmer le code de leur nouvelle montre numérique)
« Peut-être qu'un ou deux des frameworks web populaires seront encore utilisés. Quelque chose comme React, Node js, ou Blazor (si vous adhérez au rêve de Microsoft de fournir un langage unique pour tout développer, suffisamment rapide et portable). Je ne vois pas pourquoi Python ne continuerait pas à se développer, étant toujours un langage de script puissant dans un demi-siècle », ajoute-il.
Et vous ?
Voir aussi :
-
JPLAROCHEMembre expérimentéJ'ai 70 ans et j'ai connu le C, c'était la révolution, chacun avait son C , borland , Metrowerks CodeWarrior, microsoft, .... chacun mettaient en avant ce que l'autre n'avait pas comme lib... ou comme doc. Celui de borland avait une doc d'enfer.
je passais mes voyages de transport pour aller au boulot a potassé, on se faisait tout notre TUI la base de données avec l'arbre Btree , les traces ou plutôt le sillon a été à jamais et sans aucun doute la marque indélébile. (j'ai gardé des livres que l'on ne trouve plus, mais qui sont d'une richesse…)
Il fallait écrire nos propres drivers par exemple communication avec les douchettes et j'en passe et des meilleurs, les premières communications avec TO7 l'ancêtre de boxes internet avec la ligne téléphonique 24k qui permettait de relier des dépôts avec l'ordinateur central...
Mais il y a d'autre langage comme le RPG d'IBM qui n'a cessé d'évoluer et qui lui aussi plus de 50 ans qui n'a cessé d'évoluer. Bon je dirais qu'ils avaient 30 d'avance sur tout ce qui existait et qu'en 1980 on parlait déjà de LG3 et très rapidement LG4 mais cela reste du propriétaire.
Aujourd'hui je fais encore du C voir C++ ça occupe la retraite. Beaucoup de langage on un compilateur en C en dessous...
Ce que je regrette les impressions avec les séquences escape pour des listes et autre en gestion, c'était tout bête. (ça ne veut pas dire qu'il n'y a rien aujourd'hui)
l'abandon du TUI qui avait ses lettres de noblesse, taille mémoire ridicule, le graphique à compliqué beaucoup de choses (à ne pas confondre avec utilité).
Ce que je vois aujourd'hui, on utilise des lib toutes faites, mais on ne regarde pas comment elles sont faites et si elles méritent d'être incorporées, j'ai toujours regardé et souvent repris une partie du code pour incorporer pour ce dont j'avais besoin et je pratique encore comme ça.
Je finis, Merci à ceux qui ont fait et font encore le C j'ai pris mon pied. Signé : un informaticien
@bientôtle 22/04/2022 à 20:52 -
Et bien, je crois que ce sera toujours une référence en la matière, mais il et vrai qu'il y a plus sexy de nos jours.
Je l'utilisais toute une époque sous Linux/Mac (au lieu de faire de gros script bash) mais je l'ai délaissé au profit de Purebasic, qui l'air de rien à une philosophie proche du C tout en adoptant la syntaxe et certaines spécificités du Basic.
Je l'utilise toujours pour l'Arduino, mais peut-on encore parler de C, tant on est très limité ?le 21/04/2022 à 11:34 -
Tout dépend de ce que l'on appel "des projets d'envergure". Oui, en tout cas, Purebasic pourrait, avec des performances très honnêtes et il existe des outils sérieux de GRH ou de Facturation fait avec Visual Basic (bon, on ne parle pas des performances).
En aucun cas je ne dis que le C est fini, bien loin de moi cette idée. Il a toujours son utilité et je l'ai pratiqué et c'est pour cette raison que je peux dire qu'il n'y a pas de raison que Purebasic ne le puisse pas.
Ce que Purepasic ne pourrait pas, c'est faire un OS (du moins je ne le pense pas). J'ai très longtemps été développeur Delphi (qui n'était pas tout à fait pris au sérieux non plus), C++ Builder, une peu de Qt et je ne vois pas pourquoi un langage qui a une dialectique basic ne pourrait pas. Purebasic, comme je le dis, n'a que le voccabulaire du Basic, pas sa structure ni son fonctionnement, là il est plus proche du C (il y a aussi des pointeurs, des includes, des structures, ....).
Pour en revenir à l'envergure d'un projet, ça n'a rien à voir avec le langage (pourvu qu'il ait le minimum requis), mais avec la façons dont on organise le projet. J'ai vu d'affreux chaos en Java par des société très très réputées (qui participent au lancement de fusées dans l'espace) et des choses très solides en interprété (Bash par des sysadmin par exemple).
Le seul reproche que je pourrais faire au C, c'est que la portabilité est difficile à gérer si on veut du GUI, réseau, database, ... on dépend toujours de frameworks tiers et de leur qualité. C'est en ça que je le trouve moins sexy. Le C devrait s'inspirer de Purebasic et inclure des obj réseau, GUI, database, indépendant des plateformes. Ca,je le sais, c ne l'aura jamais.
Moi, ça me sert surtout de Purebasic pour automatiser/faciliter/rendre accessible aux utilisateurs, des choses compiquées sur nos serveurs, qu'ils soient Windows ou Linux et ce depuis un poste Windows/Mac/Linux. En C, ce serait, en effet, très vite un projet d'envergure alors que là en moins de 500 lignes, c'est souvent fait et de bonne qualité, pour toutes les plateformes.
Comme disait un de mes profs, avant la grande guerre, il faut choisir son langage en fonction de ce que l'on doit faire : le C peut tout faire, mais si on peut se faciliter la tâche, il serait stupide de s'en priver.
Si je parle beaucoup de Purebasic, c'est à titre d'exemple, c'est, à tort, considéré comme langage de hobbistes. Mais ça pourrait être tout à fait autre chose. C n'a pas le monopole du bon développement ni de la performance.le 21/04/2022 à 23:52 -
GuessetExpert confirméBonjour,
Attention scoop ! Le meilleur langage est celui qui permet de résoudre un type de problème avec confort et efficacité. Selon le problème et le développeur, le meilleur langage changera allègrement. Ce qui me paraît important est que le développeur diversifie ses techniques afin d'être plus à l'aise dans ses choix. S'il a seulement un marteau, tous les problèmes seront des clous.- J'aime bien C pour son efficacité et son aptitude à faire des programmes optimisés et de grosses bêtises.
- J'aime bien C++ pour la richesse de ses bibliothèques qui permettent de traiter en peu de lignes des problèmes complexes avec une syntaxe hélas de plus en plus lourde (par exemple les cast).
- J'aime bien les assembleurs qui permettent paradoxalement d'utiliser des instructions de haut niveau de plus en plus implémentées dans les CPU. Elles correspondent chacune à plusieurs lignes de code en langage classique quasi impossible pour un compilateur de résumer en une seule instruction ASM. La plus simple est peut être la rotation binaire rot. Et puis ce qui est bien avec l'assembleur, c'est que, 3 mois plus tard, le code même bien documenté fait perdre beaucoup de cheveux.
- J'aime bien les langages de scripts et autres interprétés pour la rapidité de développement assortie d'une belle occupation mémoire et de lenteurs.
- J'aime bien Pascal presqu'aussi efficace que le C tout en étant heureusement (?) beaucoup plus verbeux.
- J'ai bien aimé le FORTAN pour ses tests arithmétiques (un test, trois sorties) et ses labyrinthes de goto calculés.
- J'ai regardé RUST qui apporte beaucoup de sécurité mais je n'ai pas envie de remettre des petites roues à mon vélo.
- J'ai bien aimé LISP, Prolog, Forth pour me sentir intelligent alors même que les résultats n'étaient pas là.
- Etc.
Tout ça pour dire qu'il y a des raisons pour aimer et haïr tous les langages. Que ces motifs sont en partie objectifs mais également subjectifs. Sur un même point objectif l'un mettra une pondération forte tandis que l'autre le négligera. C'est humain. Comme quelquefois l'exagération et la mauvaise fois.
Heureusement, à la fin, chacun sait qu'il a raison
Salutationsle 03/05/2022 à 19:27 -
chrtopheResponsable SystèmesPlus sexy, je sais pas, mais au moins on le trouve partout le C.
Et ça m'étonnerait qu'il y ait des projets d'envergure développé en Basic like même moderne.le 21/04/2022 à 20:10 -
destroyedloloMembre actifSalut,
Mon projet de fin d'étude début des années 90 portait sur un émulateur C (que j'ai mis d'ailleurs sur mon GIT ... 30 ans après, il se compile encore) et comme je m'étais mis comme cible Gcc sur Amiga et sur NetBSD, le CC natif de VAX/Ultrix et le Borland sur wintruc, j'ai soufere encore du manque de standardisation. Heureusement, elle s'est imposé par la suite (et comme je ne développe plus pour wintel, ca a encore enlever d'autres problèmes )
il suffit d'activer les warning/erreurs qui vont bien des compilos modernes.
Il suffit juste de savoir ce que l'on fait. C'est sur que si on fait des cast a tord et a travers juste pour supprimer des warning sans chercher ce qu'il y a derriere ... ca ne peut que mal se finir.
??? Du coup, les do/done des shells doivent te donner des boutons, non ?
Je trouve au contraire que c'est très logique car ca indique que le bloc est terminé et permet de regrouper plusieurs conditions en un seul code lorsqu'on l'omet.
"Oblige", pourquoi "Oblige". Quel je sache, rien ne t'impose d'envoyer des directives aux pré-processeurs.
A nouveau, très utile pour faire de la compilation conditionnelle et avoir binaire nettoyé de tout code de debug pour la prod (quand on sait bien l'utilisé et qu'on fait de vrais tes d'intégrations).
Ben ouai, le C est un langage de plus bas niveau que la POO
Maintenant, si on reste en C, il suffit d'avoir une programmation propre et de passer soit par des pool mémoire, soit par des fonctions de gestions de la collection. C'est franchement basic.
Je développe depuis que j'étais ados, d'abord sur Amiga puis Unix et embarqué et je trouve beaucoup d'avantages par rapport aux autres langages que je trouve rapidement frustrant. Par exemple, les profs voulaient m'imposer le Pascal en DUT alors que je programmais depuis 3 ou 4 ans en C : quelles galères ! (et, a la fin, ils grognaient parce que je programmais en C pour tester mes algos puis ensuite je transformais en Pascal alors qu'ils voulaient le contraire)
Mais bon, les gouts et les couleurs.le 28/04/2022 à 20:23 -
chrtopheResponsable SystèmesMerci pour ma culture générale pour le retour sur PL/1.
J'ai regardé la fiche Wikipedia de PL/1. Voila ce qu'il faut en retenir :
Son objectif était d'être universel et de pouvoir remplacer indifféremment les langages à destination scientifique, tels que FORTRAN et ALGOL, et le langage COBOL, plus adapté aux problèmes de comptabilité et de gestion
Ce langage avait beaucoup des caractéristiques de ce qui sera plus tard le C, et même déjà certaines du C++.
dans le compilateur, on est obligé de traiter tous les cas et que ça impose des aller/retours entre la phase d'analyse lexicale et la phase d'analyse syntaxique ce qui est contraire à une architecture "propre" d'un compilateur.
Par ailleurs, concernant le switch/case, le s compilateurs C ne les transforment pas en if/else imbriqués mais construisent en interne un tableau avec des branchements directs sur les bon casce qui est bien plus efficace que de dérouler, à l'exécutionle 29/04/2022 à 8:15 -
JactiMembre habituéVoir par exemple : https://www.geeksforgeeks.org/single...ass-compilers/
Il y a une note qui mentionne : Note: Single pass compiler almost never done, early Pascal compiler did this as an introduction.
En fait un VRAI compilateur en une passe ça n'existe pas.
Pour donner un ordre d'idées : un compilateur C (avec optimiseur), ça fait environ 80 à 100 Kls (Kilo lignes source) et un compilateur COBOL ça fait environ 250 Kls.
Quand je cherche sur Internet ce qui est écrit sur le sujet, je suis effaré. Il y a surtout des montagnes de bêtises écrite et surtout dans Wikipedia.
Un des seuls livres vraiment sérieux sur la construction des compilateurs est celui-ci : https://www.abebooks.fr/978032148681...0321486811/plp ()
Aho et Ullman ont écrit en 72 et 73 deux livres qui sont, encore aujourd'hui, les bibles sur le sujet (je pense que ces livres sont introuvables aujourd'hui) :
The Theory of Parsing, Translation, and Compiling, Vol. 1, Parsing. Prentice Hall, 1972. ISBN 0-13-914556-7
The Theory of Parsing, Translation, and Compiling, Vol. 2, Compiling. Prentice-Hall, 1973. ISBN 978-0-13-914564-3
le 01/05/2022 à 11:47 -
WhiteCrowMembre expérimentéoù je lis :
Envoyé par Wikipedia
Je vais peut-être t'expliquer plus simplement.
Tu dis
Je te montre un autre exemple où (dixit) «le calcul de factorielle est effectué à la compilation».
Dans l'exemple que j'ai donné, à la compilation, le code généré ne fait aucun appel à fact pour afficher factorielle de 24, ce 24 a été calculé lors de la compilation … ce qui conduit à (dixit) «une exécution sans calcul [de la factorielle]»
Pas besoin de metaprogrammation pour ça ; un compilateur évolué suffit,. C'est bien pour cela qu'il est de plus en plus avantageux d'aider le compilo à optimiser que d'optimiser soi-même.
Tu emploies exactement les mots d'un évangéliste (pas au sens religieux du terme), militant si tu préfèresTon discours est fait pour que la vraie vérité éclate, etc.
C'est clair qu'en gros 60% des langages les plus utilisés sont «objet» dans le sens «proposent la possibilité native d'un développement objet», mais ils ne proposent pas que cela (fort heureusement). La plupart de ces langages proposent également d'autres paradigmes (procédural,fonctionnel, modulaire, …) et C++ en profite également. C++ n'est pas «La programmation objet».
Maintenant, mis à part C++ et Python, quels sont les langages qui proposent un héritage multiple ? quel sont les paradigmes proposés par les langages émergents ?
Parce qu'au fond, le fond de commerce de «la programmation objet» c'est quoi ?
Utiliser l'héritage de classes, l'encapsulation et avoir des instances sur lesquelles on appelle des méthodes ?
On peut très bien se débrouiller sans, tout en programmant «élégamment», on peut utiliser la composition d'objet (oui, le terme n'est pas réservé à la POO) structurés, on peut utiliser le polymorphisme (qui n'est pas une feature OO), on peut bénéficier de fonctions qui sont des objets à part entière, avoir de vrai modules qui élargissent la notion d'encapsulation d'objet, etc ... Et tu remarqueras que tout ce que je viens de citer a été rajouté par la suite à C++ ; pourquoi ? parce que cela manquait tout simplement.
Je ne déteste pas C++, ni autre chose d'ailleurs. Je ne suis clairement pas un professionnel de la conception de langage ou de quoi que ce soit d'autre au niveau théorique. Je n'ai qu'une simple opinion forgée après quelques années en développement informatique, et, àmha, C++ a atteint un pic. Quel sera le prochain changement majeur de paradigme ? je ne sais pas … le fonctionnel ? une OO raisonnée et raisonnable ? aucune idée. Mais ce que je constate, c'est que C++ a profité d'un engouement qui périclite. Il a surfé sur la vague C, puis cassé la gueule avec C with classes, puis est revenu en force avec C++ qui est un C with classes agrémenté d'une foulitude de notions non OO …
Bref.
Joyeux cinquantenaire au C, vie longue et prospère.le 03/05/2022 à 16:12 -
yahikoRédacteur/ModérateurSans doute le langage qui a eu le plus d'influence dans l'industrie de l'informatique avec comme principale qualité sa simplicité et sa cohérence syntaxique.
Je noterais quand même qu'il n'a pas vraiment introduit de concepts d'avant-garde, si ce n'est mettre l'emphase sur la programmation structurée, ce qui certes à l'époque n'allait pas encore de soi.
Aussi, certains éléments dans le langage C trahissent le fait que les auteurs ne se sont pas résolus à aller jusqu'au bout de cette logique de programmation structurée, je pense au reliquat "goto" ou encore au peu élégant "switch / case / break" qui a été repris en l'état dans d'autres langages, hélas.
Quoiqu'il en soit, une longévité méritée, avec des cas d'usage toujours pertinents à l'heure actuelle comme l'embarqué ou la gestion du matériel.
Pour le reste, les langages qui lui ont succédé ont permis aux développeurs d'être nettement plus productifs grâce à l'apport du paradigme orienté objet qui a lui aussi été une révolution en favorisant l'encapsulation et la modularité. C'est possible en C, mais au prix d'une discipline et d'une verbosité contre-nature.le 27/04/2022 à 7:56