Les 10 meilleurs langages de programmation, selon le indice TIOBE semblent être fortement influencés par C:
1. Java
Le langage dérive une grande partie de sa syntaxe de C et C++ mais a un modèle d'objet plus simple et moins d'installations de bas niveau. - wikipedia.org
2. C
C est l'un des langages de programmation les plus utilisés de tous les temps et il existe très peu d'architectures informatiques pour lesquelles un compilateur C n'existe pas. - wikipedia.org
3. C #
Au cours du développement de .NET Framework, les bibliothèques de classes ont été initialement écrites à l'aide d'un système de compilateur de code managé appelé Simple Managed C (SMC). En janvier 1999, Anders Hejlsberg a formé une équipe pour construire à l’époque un nouveau langage appelé Cool, qui signifie "C-like Object Oriented Language". - wikipedia.org
4. C++
Il a été développé par Bjarne Stroustrup à partir de 1979 aux Bell Labs comme une amélioration du langage C. - wikipedia.org
5. Objectif-C
Objective-C est un langage de programmation réfléchissant et orienté objet qui ajoute une messagerie de style Smalltalk au langage de programmation C. - wikipedia.org
6. PHP
Il a réécrit ces scripts sous forme de binaires CGI (Common Gateway Interface) du langage de programmation C, en les étendant pour ajouter la possibilité de travailler avec des formulaires Web et de communiquer avec des bases de données et a appelé cette implémentation "Personal Home Page/Forms Interpreter" ou PHP/FI. - wikipedia.org
8. Python
Python a été conçu à la fin des années 1980 et sa mise en œuvre a été lancée en décembre 1989 par Guido van Rossum à CWI aux Pays-Bas en tant que successeur du langage de programmation ABC (lui-même inspiré de SETL) capable de gérer des exceptions et de s'interfacer avec le système d'exploitation Amoeba. - wikipedia.org
ABC (langage de programmation) Ses concepteurs affirment que les programmes ABC sont généralement environ un quart de la taille des programmes Pascal ou C équivalents, et plus lisibles. - wikipedia.org
9. Perl
Perl emprunte des fonctionnalités à d'autres langages de programmation, notamment C, les scripts Shell (sh), AWK et sed. - wikipedia.org
10. JavaScript
JavaScript utilise une syntaxe influencée par celle de C. - wikipedia.org
Il semble que la plupart d'entre eux empruntent leur syntaxe à C et/ou sont fortement influencés de plusieurs autres manières, au moins à leurs débuts. Pourquoi?
Avec l'essor d'UNIX dans les années 1970, son langage de programmation de systèmes standard C est rapidement devenu la lingua franca du monde de la programmation. Pendant un bon moment, C était pratiquement obligatoire pour chaque programmeur. En tant que tel, le fait que C ait influencé presque tous les langages de programmation qui l'ont suivi d'une manière ou d'une autre n'est pas surprenant, pour deux raisons:
Mais d'autres langues existaient, et elles existent toujours, certaines d'entre elles sont même antérieures au C - il y a la famille LISP (CL, Clojure et Scheme étant les dialectes modernes les plus populaires), la famille ML (avec plusieurs dialectes modernes), il y a toute une armée de Les dialectes BASIC (VB.NET et VBA sont des implémentations modernes), il y a Pascal et ses parents (Delphi étant le plus connu) et de nombreuses langues `` bizarres '' qui ont pris des influences de nombreuses autres langues et ont inventé quelques choses elles-mêmes; les exemples incluent Go, Python, Lua, Haskell (et son prédécesseur, Miranda), Prolog et Erlang. Bien qu'aucun de ces langages (sauf Python) ne figure dans votre top 10, beaucoup d'entre eux ont une base d'utilisateurs stable et une communauté active; ils ne s'en vont certainement pas.
En outre, il convient de noter que la quantité d'influence C dans ces langages diffère énormément, allant des langages compatibles à presque 100% C C++ et Objective-C, jusqu'à Python (qui abandonne délibérément de nombreux Et ce n'est que la syntaxe: en termes de sémantique, la plupart des langages de cette liste n'ont pas grand-chose en commun avec C. La grande majorité a une gestion de la mémoire intégrée au langage, et par conséquent, copie de la sémantique , le passage d'arguments, etc., sont très différents. JavaScript, par exemple, a de fortes influences sémantiques de Scheme, tandis que sa syntaxe a été conçue pour ressembler à Java (qui, à son tour, base ses bits et -pièces syntaxe sur C, mais pas sa sémantique). D'autres différences (à l'exception de C++ et Objective-C, qui sont principalement rétrocompatibles avec C) incluent la gestion des erreurs, les règles de portée, les bibliothèques standard, l'inclusion de code externe (#include
), et le fait que beaucoup de ces langages sont "virtualisés", c'est-à-dire qu'ils s'exécutent sur un interpréteur, un compilateur JIT ou une machine virtuelle.
Python, en passant, a une certaine influence C, mais il n'est certainement pas "basé sur" C. La syntaxe et la sémantique diffèrent assez radicalement de C, et c'est par conception. Python emprunte uniquement les fonctionnalités de C où les autres alternatives sont également "bonnes" (selon le "Zen de Python" - tapez import this
dans un python).
Quant à l'avenir de la programmation; les prévisions varient. L'influence de C ne disparaît pas, mais les développements récents du matériel (machines multicœurs devenant monnaie courante, GPU puissants, le CPU cessant d'être le goulot d'étranglement typique des performances, connexions réseau rapides et fiables, etc.) appellent des approches radicalement différentes de la programmation en général. Quiconque a déjà écrit une application distribuée multithread dans un langage impératif peut dire que c'est incroyablement difficile, tandis que des langages comme Haskell ont des fonctionnalités qui suppriment la plupart des problèmes typiques et offrent une approche plus abstraite et plus structurée du traitement distribué, simultané et parallèle. (la pureté étant un concept important dans ce contexte). Les langages de programmation plus récents (par exemple C # ou D) incluent déjà de nombreuses fonctionnalités pour prendre en charge un tel idiome. En tout cas, ni le fort impact que C a eu sur la programmation, ni l'existence de langages non-C ne disparaissent.
C'est un peu comme demander pourquoi l'anglais est la langue dominante aux États-Unis. Pourquoi pas espagnol ou français? Ils contrôlaient davantage le territoire américain que les colonies anglaises. Pourquoi pas le néerlandais? La première capitale américaine se trouvait dans une ancienne colonie néerlandaise. Je ne suis pas sûr qu'il puisse y avoir une "réponse" à cela.
Cependant, la chronologie "Historique des langages informatiques" ( http://www.levenez.com/lang/ ) fournit toutes les réponses possibles.
Si vous créez un nouveau langage de programmation, le fait d'avoir une syntaxe similaire aux langages existants populaires facilite l'apprentissage de vos nouveaux utilisateurs. Surtout si de nombreux concepts sont similaires entre les langues.
Je pense également que la syntaxe de style C est relativement facile à lire. Pour comparer avec Pascal, l'utilisation des symboles "{" et "}" pour les blocs de code est plus lisible que "begin" et "end", qui sont optiquement très similaires aux identifiants. Python est encore plus lisible, mais l'inclusion d'espaces dans la syntaxe ouvre un nouvel ensemble de problèmes avec l'édition. Un autre exemple: LISP et JavaScript partagent quelques idées, mais quand la même chose est écrite en C- syntaxe de style, elle est moins obscure.
Je suis sûr que beaucoup de gens seraient en désaccord avec le deuxième paragraphe, parce que tout le monde a son propre langage préféré, mais je pense que la popularité de la syntaxe de style C est en partie une coïncidence historique, mais en partie cela montre également que les auteurs de C ont fait quelques bons les décisions.