Vergleich beliebter Programmiersprachen
Wie stapeln sie sich?
Getty Images/ermingut
Seit den 1950er Jahren haben Informatiker Tausende von Programmiersprachen entwickelt. Viele sind obskur, vielleicht geschaffen für einen Ph.D. Diplomarbeit und seitdem nichts mehr gehört. Andere wurden für eine Weile populär und verschwanden dann aufgrund mangelnder Unterstützung oder weil sie auf ein bestimmtes Computersystem beschränkt waren. Einige sind Varianten bestehender Sprachen, die neue Funktionen wie Parallelität hinzufügen – die Möglichkeit, viele Teile eines Programms auf verschiedenen Computern parallel auszuführen.
Lesen Sie mehr über Was ist eine Programmiersprache?
Vergleich von Programmiersprachen
Es gibt mehrere Möglichkeiten, Computersprachen zu vergleichen, aber der Einfachheit halber vergleichen wir sie nach Kompilierungsmethode und Abstraktionsebene.
Kompilieren in Maschinencode
Einige Sprachen erfordern, dass Programme direkt in Maschinencode umgewandelt werden – die Anweisungen, die eine CPU direkt versteht. Dieser Transformationsprozess heißt Zusammenstellung . Assemblersprache, C, C++ und Pascal sind kompilierte Sprachen.
Interpretierte Sprachen
Andere Sprachen sind beides Interpretiert wie Basic, Actionscript und Javascript, oder eine Mischung aus beiden, die zu einer Zwischensprache kompiliert werden - dazu gehören Java und C#.
Eine interpretierte Sprache wird zur Laufzeit verarbeitet. Jede Zeile wird gelesen, analysiert und ausgeführt. Eine Zeile jedes Mal in einer Schleife neu verarbeiten zu müssen, macht interpretierte Sprachen so langsam. Dieser Overhead bedeutet, dass interpretierter Code zwischen 5 und 10 mal langsamer läuft als kompilierter Code. Die interpretierten Sprachen wie Basic oder JavaScript sind am langsamsten. Ihr Vorteil ist, dass sie nach Änderungen nicht neu kompiliert werden müssen, und das ist praktisch, wenn Sie das Programmieren lernen.
Weil zusammengestellt Programme laufen fast immer schneller als interpretiert, Sprachen wie C und C++ sind in der Regel die beliebtesten zum Schreiben von Spielen. Java und C# kompilieren beide zu einer interpretierten Sprache, die sehr effizient ist. Da die Virtual Machine, die Java interpretiert, und das .NET-Framework, das C# ausführt, stark optimiert sind, wird behauptet, dass Anwendungen in diesen Sprachen so schnell, wenn nicht sogar schneller sind als kompiliertes C++.
Abstraktionsebene
Die andere Möglichkeit, Sprachen zu vergleichen, ist die Abstraktionsebene. Dies zeigt an, wie nah eine bestimmte Sprache an der Hardware ist. Maschinencode ist die unterste Ebene, Assemblersprache direkt darüber. C++ ist höher als C, weil C++ eine größere Abstraktion bietet. Java und C# sind höher als C++, da sie in eine Zwischensprache namens Bytecode kompiliert werden.
Wie Sprachen vergleichen
- |_+_|
- Assemblersprache
- C
- C++
- Paskal
- C#
- Java
- |_+_|
- Perl
- PHP
- |_+_|
- JavaScript
- ActionScript
- Basic
Maschinencode sind die Anweisungen, die eine CPU ausführt. Es ist das einzige, was eine CPU verstehen und ausführen kann. Interpretierte Sprachen benötigen eine Anwendung namens an Dolmetscher das jede Zeile des Quellcodes des Programms liest und dann 'ausführt'.
Dolmetschen ist einfacher
Es ist sehr einfach, Anwendungen zu stoppen, zu ändern und erneut auszuführen, die in einer interpretierten Sprache geschrieben sind, und deshalb sind sie beliebt, um Programmieren zu lernen. Es ist keine Kompilierungsphase erforderlich. Das Kompilieren kann ein ziemlich langsamer Prozess sein. Das Kompilieren einer großen Visual C++-Anwendung kann Minuten bis Stunden dauern, je nachdem, wie viel Code neu erstellt werden muss und wie schnell der Arbeitsspeicher und die CPU sind.
Als Computer zum ersten Mal auftauchten
Als Computer in den 1950er Jahren zum ersten Mal populär wurden, wurden Programme in Maschinencode geschrieben, da es nicht anders ging. Programmierer mussten Schalter physisch umlegen, um Werte einzugeben. Dies ist eine so mühsame und langsame Art, eine Anwendung zu erstellen, dass Computersprachen auf höherer Ebene erstellt werden mussten.
Assembler: Schnell zum Ausführen – Langsam zum Schreiben!
Die Assemblersprache ist die lesbare Version des Maschinencodes und sieht so aus
|_+_|
Da die Assemblersprache an eine bestimmte CPU oder eine Familie verwandter CPUs gebunden ist, ist sie nicht sehr portabel und zeitaufwändig zu lernen und zu schreiben. Sprachen wie C haben die Notwendigkeit der Assemblersprachenprogrammierung reduziert, außer wenn der Arbeitsspeicher begrenzt ist oder zeitkritischer Code benötigt wird. Dies befindet sich normalerweise im Kernel-Code im Herzen eines Betriebssystems oder in einem Grafikkartentreiber.
Die Assemblersprache ist die unterste Ebene des Codes
Die Assemblersprache ist sehr niedrig; Der größte Teil des Codes verschiebt nur Werte zwischen den CPU-Registern und dem Speicher. Wenn Sie eine Gehaltsabrechnung schreiben, möchten Sie in Bezug auf Gehälter und Steuerabzüge denken, und nicht A an Speicherort XYZ registrieren. Aus diesem Grund sind höhere Sprachen wie C++,C#oderJavasind produktiver. Der Programmierer kann in Begriffen des Problembereichs (Gehälter, Abzüge und Rückstellungen) denken, nicht des Hardwarebereichs (Register, Speicher und Anweisungen).
Systemprogrammierung mit C
C wurde in den frühen 1970er Jahren von Dennis Ritchie entwickelt. Es kann als Allzweckwerkzeug betrachtet werden – sehr nützlich und leistungsfähig, aber sehr einfach, Fehler durchzulassen, die Systeme unsicher machen können. C ist eine Low-Level-Sprache und wurde als portable Assembler-Sprache beschrieben. Die Syntax vieler Skriptsprachen orientiert sich beispielsweise an C, JavaScript , PHP und ActionScript.
Perl: Websites und Dienstprogramme
In der Linux-Welt sehr beliebt, war Perl eine der ersten Websprachen und ist bis heute sehr beliebt. Für die schnelle und schmutzige Programmierung im Web bleibt es konkurrenzlos und steuert viele Websites. Es wurde jedoch etwas in den Schatten gestellt PHP als Web-Skriptsprache .
Codieren von Websites mit PHP
PHP wurde als Sprache für Webserver konzipiert und ist in Verbindung mit Linux, Apache, MySql und PHP oder kurz LAMP sehr beliebt. Es wird interpretiert, aber vorkompiliert, sodass der Code relativ schnell ausgeführt wird. Es kann auf Desktop-Computern ausgeführt werden, wird jedoch nicht so häufig für die Entwicklung von Desktop-Anwendungen verwendet. Basierend auf der C-Syntax enthält es auch Objekte und Klassen.
Pascal wurde einige Jahre vor C als Unterrichtssprache entwickelt, war aber durch die schlechte Handhabung von Zeichenfolgen und Dateien sehr eingeschränkt. Mehrere Hersteller erweiterten die Sprache, aber es gab keinen Gesamtführer, bis Turbo Pascal (für Dos) und Delphi (für Windows) von Borland erschienen. Dies waren leistungsstarke Implementierungen, die genügend Funktionalität hinzufügten, um sie für die kommerzielle Entwicklung geeignet zu machen. Borland trat jedoch gegen das viel größere Microsoft an und verlor den Kampf.
C++: Eine Klassesprache!
C++ oder C plus Klassen, wie sie ursprünglich bekannt waren, kamen ungefähr zehn Jahre nach C und führten erfolgreich die objektorientierte Programmierung in C ein, ebenso wie Features wie Ausnahmen und Templates. Das Erlernen von C++ ist eine große Aufgabe - es ist bei weitem die komplizierteste der Programmiersprachen hier, aber sobald Sie es beherrschen, werden Sie keine Schwierigkeiten mit anderen Sprachen haben.
C#: Microsofts Big Bet
C# wurde erstellt vonDelphi's Architekt Anders Hejlsberg wird sich nach seinem Wechsel zu Microsoft und Delphi-Entwicklern mit Features wie Windows Forms zu Hause fühlen.
Die C#-Syntax ist Java sehr ähnlich, was nicht verwunderlich ist, da Hejlsberg nach seinem Wechsel zu Microsoft auch an J++ gearbeitet hat. Lernen Sie C# und Sie sind auf dem besten Weg, Java zu kennen. Beide Sprachen sind halbkompiliert, sodass sie nicht in Maschinencode, sondern in Bytecode kompiliert werden (C# wird in CIL kompiliert, aber es und Bytecode sind ähnlich) und dann interpretiert werden.
Javascript: Programme in Ihrem Browser
Javascript ist nichts wie Java, stattdessen ist es eine Skriptsprache, die auf der C-Syntax basiert, aber mit dem Zusatz von Objekte und wird hauptsächlich in Browsern verwendet. JavaScript wird interpretiert und viel langsamer als zusammengestellt Code, funktioniert aber gut in einem Browser.
Erfunden von Netscape hat es sich als sehr erfolgreich erwiesen und erfreut sich nach mehreren Jahren in der Flaute eines neuen Lebens AJAX; Asynchrones Javascript und XML . Dadurch können Teile von Webseiten vom Server aktualisiert werden, ohne dass die gesamte Seite neu gezeichnet werden muss.
ActionScript: Eine auffällige Sprache!
ActionScript ist eine Implementierung von JavaScript, existiert jedoch ausschließlich in Macromedia Flash-Anwendungen. Es verwendet vektorbasierte Grafiken und wird hauptsächlich für Spiele, das Abspielen von Videos und anderen visuellen Effekten sowie für die Entwicklung anspruchsvoller Benutzeroberflächen verwendet, die alle im Browser ausgeführt werden.
Basis für Anfänger
Basic ist ein Akronym für Beginners All-purpose Symbolic Instruction Code und wurde in den 1960er Jahren entwickelt, um Programmieren zu unterrichten. Microsoft hat sich die Sprache mit vielen verschiedenen Versionen zu eigen gemacht, darunter VBScript für Websites und das sehr erfolgreich VisualBasic . Die neueste Version davon ist VB.NET und diese läuft auf der gleichen Plattform .NETZ wie C# und erzeugt denselben CIL-Bytecode.
Zwei ist eine freie Skriptsprache, die in C geschrieben ist und Garbage Collection und Coroutinen enthält. Es lässt sich gut mit C/C++ verbinden und wird in der Spieleindustrie (und auch außerhalb von Spielen) verwendet, um Spiellogik, Ereignisauslöser und Spielsteuerung zu skripten.
Fazit
Während jeder seine Lieblingssprache hat und Zeit und Ressourcen investiert hat, um zu lernen, wie man sie programmiert, gibt es einige Probleme, die am besten mit der richtigen Sprache gelöst werden.
ZB würden Sie C nicht zum Schreiben von Web-Apps verwenden und Sie würden kein Betriebssystem in Javascript schreiben. Aber für welche Sprache Sie sich auch entscheiden, ob es sich um C, C++ oder C# handelt, Sie wissen zumindest, dass Sie am richtigen Ort sind, um sie zu lernen.