Seit den 1950er Jahren haben Informatiker Tausende von Programmiersprachen entwickelt. Viele sind dunkel, vielleicht für einen Doktortitel geschaffen. These und seitdem noch nie gehört. Andere wurden für eine Weile populär und verblassten dann aufgrund mangelnder Unterstützung oder weil sie auf ein bestimmtes Computersystem beschränkt waren. Einige sind Varianten bestehender Sprachen und fügen neue Funktionen wie Parallelität hinzu - die Möglichkeit, viele Teile eines Programms parallel auf verschiedenen Computern auszuführen.
Lesen Sie mehr über Was ist eine Programmiersprache?
Programmiersprachen vergleichen
Es gibt verschiedene Möglichkeiten, Computersprachen zu vergleichen. Der Einfachheit halber werden sie jedoch nach Kompilierungsmethode und Abstraktionsstufe verglichen.
Kompilieren mit Maschinencode
In einigen Sprachen müssen Programme direkt in Maschinencode umgewandelt werden - die Anweisungen, die eine CPU direkt versteht. Dieser Transformationsprozess wird aufgerufen Zusammenstellung. Assemblersprache, C, C ++ und Pascal sind kompilierte Sprachen.
Interpretierte Sprachen
Andere Sprachen sind entweder Interpretiert B. Basic, Actionscript und Javascript oder eine Mischung aus beiden, die in 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. Die Notwendigkeit, eine Zeile jedes Mal in einer Schleife erneut zu verarbeiten, macht interpretierte Sprachen so langsam. Dieser Overhead bedeutet, dass interpretierter Code zwischen 5 und 10 Mal langsamer ausgeführt wird als kompilierter Code. Die interpretierten Sprachen wie Basic oder JavaScript sind die langsamsten. Ihr Vorteil ist, dass sie nach Änderungen nicht neu kompiliert werden müssen. Dies ist praktisch, wenn Sie das Programmieren lernen.
Weil kompiliert Programme Fast immer laufen Sprachen schneller als interpretiert. Sprachen wie C und C ++ sind in der Regel am beliebtesten für das Schreiben von Spielen. Java und C # kompilieren beide zu einer interpretierten Sprache, die sehr effizient ist. Da die virtuelle Maschine, die Java interpretiert, und das .NET-Framework, auf dem C # ausgeführt wird, stark optimiert sind, wird behauptet, dass Anwendungen in diesen Sprachen genauso schnell sind, wenn nicht sogar schneller als kompiliertes C ++.
Grad der Abstraktion
Die andere Möglichkeit, Sprachen zu vergleichen, ist die Abstraktionsebene. Dies zeigt an, wie nahe eine bestimmte Sprache an der Hardware liegt. Maschinencode ist die niedrigste Ebene, direkt darüber befindet sich die Assemblersprache. C ++ ist höher als C, da 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
Schnelle kompilierte Sprachen
- Assemblersprache
- C.
- C ++
- Pascal
- C #
- Java
Ziemlich schnell interpretiert
- Perl
- PHP
Langsam interpretiert
- JavaScript
- ActionScript
- Basic
Maschinencode ist die Anweisung, die eine CPU ausführt. Dies ist das einzige, was eine CPU verstehen und ausführen kann. Interpretierte Sprachen benötigen eine Anwendung namens Dolmetscher das liest jede Zeile des Programmquellcodes und "führt" ihn dann aus.
Dolmetschen ist einfacher
Es ist sehr einfach, Anwendungen, die in einer interpretierten Sprache geschrieben sind, anzuhalten, zu ändern und erneut auszuführen. Deshalb sind sie beim Erlernen der Programmierung beliebt. Es ist keine Kompilierungsphase erforderlich. Das Kompilieren kann sehr langsam sein. Das Kompilieren einer großen Visual C ++ - Anwendung kann Minuten bis Stunden dauern, abhängig davon, wie viel Code neu erstellt werden muss und wie schnell Speicher und 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 keinen anderen Weg gab. Programmierer mussten die Schalter physisch umlegen, um Werte einzugeben. Dies ist eine so mühsame und langsame Art, eine Anwendung zu erstellen, dass übergeordnete Computersprachen erstellt werden mussten.
Assembler: Schnell zum Laufen - Langsam zum Schreiben!
Die Assemblersprache ist die lesbare Version des Maschinencodes und sieht folgendermaßen aus
Zug A, $ 45
Assemblersprache ist nicht sehr portabel und zeitaufwändig zu lernen und zu schreiben, da sie an eine bestimmte CPU oder eine Familie verwandter CPUs gebunden ist. Sprachen wie C haben den Bedarf an Assembler-Programmierung verringert, es sei denn, der Arbeitsspeicher ist begrenzt oder zeitkritischer Code wird benötigt. Dies befindet sich normalerweise im Kernelcode im Herzen eines Betriebssystems oder in einem Grafikkartentreiber.
Assemblersprache ist die niedrigste Codeebene
Die Assemblersprache ist sehr niedrig. Der größte Teil des Codes verschiebt nur Werte zwischen den CPU-Registern und dem Speicher. Wenn Sie ein Gehaltsabrechnungspaket schreiben, das Sie in Bezug auf Gehälter und Steuerabzüge berücksichtigen möchten, registrieren Sie A nicht an Speicherort XYZ. Aus diesem Grund sind höhere Sprachen wie C ++, C # oder Java sind produktiver. Der Programmierer kann in Bezug auf die Problemdomäne (Gehälter, Abzüge und Rückstellungen) denken, nicht in Bezug auf die Hardwaredomäne (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 leistungsstark, aber sehr einfach, Fehler durchzulassen, die Systeme unsicher machen können. C ist eine einfache Sprache und wurde als tragbare Assemblersprache beschrieben. Die Syntax vieler Skriptsprachen basiert beispielsweise auf C, z. JavaScript, PHP und ActionScript.
Perl: Websites und Dienstprogramme
Perl war eine der ersten Web-Sprachen und ist bis heute sehr beliebt. Für "schnelles und schmutziges" Programmieren im Web bleibt es konkurrenzlos und treibt viele Websites an. Es wurde jedoch etwas in den Schatten gestellt PHP als Web-Skriptsprache.
Codierung von Websites mit PHP
PHP wurde als Sprache für Webserver entwickelt und ist in Verbindung mit Linux, Apache, MySql und kurz PHP oder LAMP sehr beliebt. Es wird interpretiert, aber vorkompiliert, damit 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 jedoch aufgrund der schlechten Handhabung von Zeichenfolgen und Dateien sehr eingeschränkt. Mehrere Hersteller erweiterten die Sprache, aber es gab keinen Gesamtführer, bis Borlands Turbo Pascal (für Dos) und Delphi (für Windows) erschienen. Dies waren leistungsstarke Implementierungen, die genügend Funktionen hinzufügten, um sie für die kommerzielle Entwicklung geeignet zu machen. Borland hatte es jedoch mit dem viel größeren Microsoft zu tun und verlor den Kampf.
C ++: Eine noble Sprache!
C ++ - oder C plus-Klassen, wie sie ursprünglich genannt wurden, kamen ungefähr zehn Jahre nach C und führten erfolgreich die objektorientierte Programmierung in C sowie Funktionen wie Ausnahmen und Vorlagen ein. 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 einer anderen Sprache haben.
C #: Microsofts große Wette
C # wurde erstellt von DelphiDer Architekt Anders Hejlsberg, der zu Microsoft und Delphi gewechselt ist, wird sich mit Funktionen wie Windows Forms wie 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 semi-kompiliert, sodass sie nicht zu Maschinencode kompiliert werden, sondern zu Bytecode (C # wird zu CIL kompiliert, aber es und Bytecode sind ähnlich) und dann interpretiert.
Javascript: Programme in Ihrem Browser
Javascript ist nichts anderes als Java, sondern eine Skriptsprache, die auf der C-Syntax basiert, aber zusätzlich hinzugefügt wurde Objekte und wird hauptsächlich in Browsern verwendet. JavaScript wird interpretiert und ist viel langsamer als zusammengestellt Code funktioniert aber gut in einem Browser.
Von Netscape erfunden, hat es sich als sehr erfolgreich erwiesen und erfreut sich nach einigen Jahren in der Flaute eines neuen Lebens AJAX; Asynchrones Javascript und XML. Auf diese Weise 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. Mit vektorbasierten Grafiken wird es 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.
Grundlegend für Anfänger
Basic ist eine Abkürzung für Symbolic Instruction Code für Anfänger und wurde in den 1960er Jahren für den Programmierunterricht entwickelt. Microsoft hat die Sprache mit vielen verschiedenen Versionen, einschließlich VBScript für Websites und der sehr erfolgreichen, zu einer eigenen gemacht Visual Basic. Die neueste Version davon ist VB.NET und läuft auf derselben Plattform .NETZ als C # und erzeugt den gleichen CIL-Bytecode.
Lua ist eine kostenlose Skriptsprache, die in C geschrieben wurde und Garbage Collection und Coroutinen enthält. Es lässt sich gut mit C / C ++ verbinden und wird in der Spielebranche (und auch außerhalb von Spielen) zum Skripten von Spielelogik, Ereignisauslösern und Spielsteuerung verwendet.
Fazit
Während jeder seine Lieblingssprache hat und Zeit und Ressourcen in das Erlernen der Programmierung investiert hat, gibt es einige Probleme, die am besten mit der richtigen Sprache gelöst werden können.
Zum Beispiel würden Sie C nicht zum Schreiben von Web-Apps verwenden und Sie würden kein Betriebssystem in Javascript schreiben. Aber egal für welche Sprache Sie sich entscheiden, ob C, C ++ oder C #, zumindest wissen Sie, dass Sie am richtigen Ort sind, um sie zu lernen.