Von A wie Assembler bis V wie Visual Basic

Eine kleine Geschichte der Programmiersprachen

10.10.2019
Von   
Bernhard Steppan arbeitet als IT-Chefarchitekt bei DB Systel GmbH (Deutsche Bahn) in Frankfurt am Main. Er hat 100+ Artikel und zahlreiche Bücher über C++ und Java verfasst. Er betreibt mehrere Blogs, unter anderem http://steppan.net, http://artouro.org und http://tourbine.com

Von den Hochsprachen zur OO-Programmierung

Auch fortgeschrittene Programmiersprachen wie Algol 68, Pascal und C waren nicht so perfekt, dass sie das Ende der Entwicklung von Programmiersprachen eingeläutet hätten. Anfang der 1970er Jahre kam die objektorientierte Programmierung (OOP) auf, die sich aber erst Mitte der 1980er Jahre durchsetzte. Der Grundgedanke der objektorientierten Programmierung besteht darin, die natürliche Welt besser als in den Vorgängersprachen C und Pascal in einem Computerprogramm abbilden zu können.

Neue Ansätze wie die Vererbung und erweiterte Konzepte wie die in Vorgängersprachen bereits vorhandene Kapselung und Polymorphie sollten helfen, die Programme übersichtlicher und robuster zu gestalten. Zu den einflussreichsten objektorientierten Sprachen zählen Simula-67, Smalltalk, Objective-C, C++, C#, Java und Visual Basic.

Während Simula-67 und Smalltalk heutzutage praktisch keine Rolle mehr spielen, haben die verschiedenen C-Derivate, allen voran C++, große Bedeutung erlangt. C++ ist eine Weiterentwicklung der Sprache C und wurde im Jahr 1985 vorgestellt. Wie C ist diese Allzweckprogrammiersprache mit dem Fokus auf die Systemprogrammierung entwickelt worden. Durch ihre universelle Verwendbarkeit verbreitete sie sich aber auch sehr schnell in der Anwendungsentwicklung.

C++ verwendet ebenfalls einen Compiler, ist hardwareunabhängig, aber viel schwerer als C zu erlernen, da neben den bestehenden Konzepten des Vorgängers C die neuen Sprachelemente der objektorientierten Programmierung hinzukommen. C++ stand oft in der Schusslinie von Kritikern, da die Sprache schwer zu erlernen ist und die Programme oft fehleranfällig sind. Selbst der Erfinder von C++, Bjarne Stroustrup, sagte einmal: "In C++ ist es schwierig, sich selbst in den Fuß zu schießen. Aber wenn man es tut, dann ist gleich das ganze Bein weg."

Das von Microsoft vorgestelle Visual Basic (VB) ist das glatte Gegenteil von C++. Hier steht die Einfachheit im Vordergrund. Statt Symbolen verwendet Visual Basic Wörter der englischen Sprache. Zudem setzte Visual Basic anfangs den leichter zu bedienenden Interpreter statt eines Compilers zur Programmübersetzung und -ausführung ein. Ein Interpreter übersetzt den Quellcode Instruktion für Instruktion in Maschinencode, so dass der Mikroprozessor ihn ausführen kann.

Bei neueren VB-Versionen für das .NET-Framework ist das Verfahren inzwischen geändert worden. Ähnlich der Programmiersprache Java kommt hier wieder ein Compiler zum Einsatz. Er übersetzt den VB-Quelltext in ein Zwischenformat, das eine sogenannte virtuelle Maschine ausführt. Laut RedMonk gehört Visual Basic nicht mehr zu den 20 populärsten Programmiersprachen. In dem neuesten RedMonk-Ranking sind beispielsweise Java und C# inzwischen deutlich beliebter.

Kommen wir also zu den derzeit angesagten Programmiersprachen Java und C#. Letztere wurde von Microsoft nach dem Java-Muster entwickelt und ist mehr oder weniger systemabhängig. Das ursprünglich von Sun Microsystems entwickelte Java wirbt hingegen damit, vollkommen systemunabhängig zu sein. Beide Programmiersprachen sind mit C++ verwandt, aber vom Sprachumfang stark reduziert und daher leichter zu erlernen als C++.

Das 1995 vorgestellte Java verfügt beispielsweise im eigentlichen Sinne nicht über Zeiger und besitzt stattdessen eine automatische Speicherverwaltung. Wie C++ verwendet Java einen Compiler. Dieser erzeugt aus dem Java-Quellcode jedoch keinen Maschinencode für einen realen Mikroprozessor. Stattdessen erzeugt der Compiler sogenannten Bytecode, der von einer virtuellen Maschine (einem speziellen Computerprogramm) ausgeführt wird (siehe Abbildung oben). Da der Bytecode für jedes Betriebssystem identisch ist, laufen Java-Programme unter jedem Betriebssystem, auf dem eine passende virtuelle Maschine existiert.

Fazit

Auch mit Java und C# ist die Entwicklung der Programmiersprachen keineswegs abgeschlossen. Die Liste der Programmiersprachen könnte mit Groovy, Python, Ruby, Scala und vielen anderen neuen Sprachen nahezu beliebig lange fortgesetzt werden. Summa summarum lässt sich feststellen, dass es von der Maschinensprache zu den heutigen Programmiersprachen ein langer Weg war.

Die Programmiersprachen sind immer besser geworden, und die Unterschiede der neuen Programmiersprachen zu den Vorgängern fallen immer geringer aus. Ist ein Ende der Entwicklung der Programmiersprachen in Sicht? Das wohl nicht, aber die Entwicklung – das ist deutlich zu erkennen – beruhigt sich allmählich.