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.

Source : developpez.com

Publicités