Die Top 10 Programmiersprachen scheinen laut TIOBE-Index stark von C beeinflusst zu sein:
1. Java
Die Sprache leitet einen Großteil ihrer Syntax von C und C ++ ab, verfügt jedoch über ein einfacheres Objektmodell und weniger Low-Level-Funktionen. - wikipedia.org
2. C
C ist eine der am häufigsten verwendeten Programmiersprachen aller Zeiten und es gibt nur sehr wenige Computerarchitekturen, für die es keinen C-Compiler gibt. - wikipedia.org
3. C #
Während der Entwicklung von .NET Framework wurden die Klassenbibliotheken ursprünglich mit einem Compilersystem für verwalteten Code namens Simple Managed C (SMC) geschrieben. Im Januar 1999 gründete Anders Hejlsberg ein Team zum Aufbau einer neuen Sprache, die Cool hieß und für "C-like Object Oriented Language" stand. - wikipedia.org
4. C ++
Es wurde von Bjarne Stroustrup ab 1979 bei Bell Labs als Erweiterung der C-Sprache entwickelt. - wikipedia.org
5. Ziel-C
Objective-C ist eine reflektierende, objektorientierte Programmiersprache, die der C-Programmiersprache Smalltalk-ähnliches Messaging hinzufügt. - wikipedia.org
6. PHP
Er schrieb diese Skripte als CGI-Binärdateien (Common Gateway Interface) für die Programmiersprache C um und erweiterte sie um die Möglichkeit, mit Webformularen zu arbeiten und mit Datenbanken zu kommunizieren. Diese Implementierung nannte er "Personal Home Page / Forms Interpreter" oder PHP / FI. - wikipedia.org
8. Python
Python wurde Ende der 1980er-Jahre entwickelt und im Dezember 1989 von Guido van Rossum bei CWI in den Niederlanden als Nachfolger der ABC-Programmiersprache (von SETL inspiriert) eingeführt, die Ausnahmebehandlungen und Schnittstellen zum Betriebssystem Amoeba ermöglicht. - wikipedia.org
ABC (Programmiersprache) Die Entwickler behaupten, dass ABC-Programme in der Regel etwa ein Viertel der Größe der entsprechenden Pascal- oder C-Programme haben und besser lesbar sind. - wikipedia.org
9. Perl
Perl leiht Funktionen aus anderen Programmiersprachen wie C, Shell Scripting (sh), AWK und sed aus. - wikipedia.org
10. JavaScript
JavaScript verwendet eine Syntax, die von der von C. - wikipedia.org beeinflusst wird
Es scheint, dass die meisten von ihnen ihre Syntax von C entlehnen und / oder zumindest in ihren Anfängen auf verschiedene andere Arten stark beeinflusst werden. Warum?
quelle
Antworten:
Mit dem Aufstieg von UNIX in den 1970er Jahren, seine Standard - Systeme Programmiersprache C wurden schnell die lingua franca der Programmierung Welt. Für eine ganze Weile war C praktisch für jeden Programmierer obligatorisch. Insofern ist es aus zwei Gründen nicht verwunderlich, dass C fast jede Programmiersprache beeinflusst hat, die auf die eine oder andere Weise danach kam:
Es gab aber auch andere Sprachen, von denen einige noch vor C existierten - es gibt die LISP-Familie (CL, Clojure und Scheme sind die beliebtesten modernen Dialekte), die ML-Familie (mit mehreren modernen Dialekten), von denen es eine ganze Armee gibt Es gibt BASIC-Dialekte (VB.NET und VBA sind moderne Implementierungen), Pascal und seine Verwandten (Delphi ist die bekannteste) und viele 'seltsame' Sprachen, die Einflüsse aus vielen anderen Sprachen aufnahmen und einige Dinge selbst erfanden. Beispiele hierfür sind Go, Python, Lua, Haskell (und sein Vorgänger Miranda), Prolog und Erlang. Obwohl keine dieser Sprachen (außer Python) in Ihren Top 10 aufgeführt ist, verfügen viele von ihnen über eine stabile Benutzerbasis und eine aktive Community. sie gehen bestimmt nicht weg.
Es sollte auch beachtet werden, dass der C-Einfluss in diesen Sprachen sehr unterschiedlich ist und von den fast 100% C-kompatiblen Sprachen C ++ und Objective-C bis hin zu Python reicht (das bewusst viele der Syntaxfunktionen von C aufgibt). Und das ist nur die Syntax: In Bezug auf die Semantik haben die meisten Sprachen auf dieser Liste nicht viel mit C zu tun. Die überwiegende Mehrheit verfügt über eine in die Sprache integrierte Speicherverwaltung und folglich über Kopiersemantik, Übergabe von Argumenten usw. , sind sehr verschieden. JavaScript hat zum Beispiel starke semantische Einflüsse von Scheme, während seine Syntax Java ähnelt (das wiederum seine Bits-and-Pieces-Syntax auf C basiert, aber nicht seine Semantik). Andere Unterschiede (mit Ausnahme von C ++ und Objective-C, die zum größten Teil abwärtskompatibel mit C sind) sind Fehlerbehandlung, Bereichsregeln,
#include
) und die Tatsache, dass viele dieser Sprachen "virtualisiert" sind, dh, dass sie auf einem Interpreter, JIT-Compiler oder einer virtuellen Maschine ausgeführt werden.Python hat übrigens einen gewissen C-Einfluss, basiert aber sicherlich nicht auf C. Sowohl die Syntax als auch die Semantik unterscheiden sich radikal von C, und dies ist beabsichtigt. Python leiht nur Features von C aus, bei denen andere Alternativen gleichermaßen "gut" sind (gemäß "Zen of Python" - geben Sie
import this
einen Python-Interpreter ein).Was die Zukunft der Programmierung betrifft; Vorhersagen variieren. Der Einfluss von C lässt nicht nach, aber die jüngsten Entwicklungen in der Hardware (Multi-Core-Maschinen werden alltäglich, leistungsfähige GPUs, die CPU wird nicht mehr der typische Leistungsengpass, schnelle, zuverlässige Netzwerkverbindungen usw.) erfordern radikal andere Programmieransätze im Allgemeinen. Jeder, der jemals eine verteilte Multithread-Anwendung in einer imperativen Sprache geschrieben hat, kann feststellen, dass dies unglaublich schwierig ist, während Sprachen wie Haskell über Funktionen verfügen, die die meisten typischen Probleme beseitigen und einen abstrakteren und strukturierteren Ansatz für die verteilte, gleichzeitige und parallele Verarbeitung bieten (Reinheit ist in diesem Zusammenhang ein wichtiges Konzept). Neuere Programmiersprachen (z. B. C # oder D) enthalten bereits viele Funktionen zur Unterstützung eines solchen Idioms. Auf jeden Fall,
quelle
Dies ist mit der Frage vergleichbar, warum Englisch die dominierende Sprache in den USA ist. Warum nicht Spanisch oder Französisch? Sie kontrollierten mehr das US-Territorium als die englischen Kolonien. Warum nicht Niederländisch? Die erste US-Hauptstadt befand sich in einer ehemaligen niederländischen Kolonie. Ich bin mir nicht sicher, ob es möglicherweise eine "Antwort" darauf geben kann.
Die "Computer Languages History" -Zeitleiste ( http://www.levenez.com/lang/ ) bietet jedoch alle möglichen Antworten.
quelle
Wenn Sie eine neue Programmiersprache erstellen, wird das Lernen für Ihre neuen Benutzer durch eine Syntax erleichtert, die mit den gängigen vorhandenen Sprachen vergleichbar ist. Vor allem, wenn viele Konzepte zwischen Sprachen ähnlich sind.
Ich denke auch, dass die Syntax im C-Stil relativ einfach zu lesen ist. Im Vergleich zu Pascal sind die Symbole "{" und "}" für Codeblöcke besser lesbar als "begin" und "end", die optisch den Bezeichnern sehr ähnlich sind. Python ist noch besser lesbar, aber das Einfügen von Leerzeichen in die Syntax führt zu neuen Problemen bei der Bearbeitung. Ein weiteres Beispiel: Lisp und JavaScript haben ein paar Ideen gemeinsam, aber wenn dasselbe in C-Syntax geschrieben ist, ist es weniger undurchsichtig.
Ich bin sicher, dass viele Leute mit dem zweiten Absatz nicht einverstanden sind, weil jeder seine eigene Lieblingssprache hat, aber ich denke, dass die Beliebtheit der C-Syntax teilweise ein historischer Zufall ist, aber teilweise zeigt es auch, dass Autoren von C ein paar gute gemacht haben Entscheidungen.
quelle
Programmiersprachen entwickeln sich im Laufe der Zeit wie natürliche Sprachen, wobei einige ältere Sprachen diese Entwicklung stärker beeinflussen als andere, während andere in Vergessenheit geraten und ihr Einfluss auf Oberflächenebene, dh in der Syntax, schwerer nachzuvollziehen ist.
Der Einfluss von C kommt aus vielen Quellen - es ist auf niedrigem Niveau, weit verbreitet und wurde sowohl in Unix- als auch in Microsoft-Kreisen unterstützt. Es ist auch das Überleben des stärksten Problems - es ist leicht zu erkennen, dass eine knappe C-ähnliche Syntax attraktiver war als die wortreiche, von Algol abgeleitete Syntax von Pascal und anderen Konkurrenten von C in den 1970er und 1980er Jahren. Daher wurde es von den Sprachen, die danach kamen, weithin angenommen.
Angesichts der zunehmenden Bedeutung von Multithread-Programmen und funktionalen Sprachen würde ich sagen, dass ihr Einfluss in Zukunft zunehmen wird. Ein typisches Beispiel: Python, das diese Liste sogar in den Fragenbeitrag aufgenommen hat.
Eine schöne Zeitleiste der Sprachgeschichte zum Nachdenken
quelle
Die meisten der von Ihnen aufgelisteten Sprachen haben praktisch nichts mit C zu tun, abgesehen von irrelevanten syntaktischen Ähnlichkeiten. Die einzigen beiden tatsächlichen C-Derivate sind Objective-C und C ++.
quelle