Les 10 principaux langages de programmation, selon l' 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 du .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 un nouveau langage à l'époque 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 orienté objet réfléchissant 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 fichiers 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, le script 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?
la source
Réponses:
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 certain temps, 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 (à l'exception de 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 C ++ et Objective-C presque 100% C, jusqu'à Python (qui abandonne délibérément de nombreuses fonctionnalités de syntaxe de C). Et ce n'est que la syntaxe: en termes de sémantique, la plupart des langues 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, 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 sa syntaxe bits et pièces sur C, mais pas sa sémantique). D'autres différences (à l'exception de C ++ et d'Objective-C, qui sont pour la plupart rétrocompatibles avec C) incluent la gestion des erreurs, les règles de portée,
#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 des fonctionnalités à C où d'autres alternatives sont également "bonnes" (selon le "Zen of Python" - tapez
import this
dans un interpréteur 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 dans le 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. Dans tout les cas,
la source
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.
la source
Si vous créez un nouveau langage de programmation, une syntaxe similaire à celle des 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. Autre exemple: Lisp et JavaScript partagent quelques idées, mais lorsque la même chose est écrite dans la syntaxe de style C, 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.
la source
Les langages de programmation évoluent avec le temps tout comme les langages naturels, certains langages plus anciens influençant cette évolution de manière plus forte que d'autres, tandis que d'autres s'estompent dans l'obscurité et leur influence est plus difficile à retracer au niveau de la surface, c'est-à-dire la syntaxe.
L'influence de C provient de nombreuses sources - c'est un niveau bas, répandu, soutenu par les cercles Unix et Microsoft. C'est aussi la survie du problème le plus adapté - il est facile de voir que la syntaxe concise de type C avait plus d'attrait que la syntaxe verbeuse dérivée d'Algol de Pascal et d'autres concurrents de C dans les années 1970 et 1980. Il a donc été largement adopté par les langues qui l'ont suivi.
La croissance actuelle de l'importance de la programmation multithread et des langages fonctionnels y étant particulièrement bien adaptée, je dirais que nous verrons leur influence grandir à l'avenir. Exemple: Python, qui a même fait cette liste dans le post de questions.
Une belle chronologie de l'histoire de la langue à méditer
la source
La plupart des langages que vous listez n'ont pratiquement rien à voir avec C, à part des similitudes syntaxiques non pertinentes. Les deux seuls dérivés C réels sont Objective-C et C ++.
la source