Von A wie Assembler bis V wie Visual Basic

Eine kleine Geschichte der Programmiersprachen

06.09.2023
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 fachlichen Anforderungen 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 Erweiterung der Sprache C. Bjarne Stroustrup hat diese Sprache ab 1979 bei AT&T entwickelt und sie 1983 veröffentlicht. 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 vorgestellte 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 Maschinen-Code, 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 weit verbreiteten 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++.

Lesetipp: Warum Java immer noch rockt

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.

Neueste Entwicklungen: Python und Scala

Zu den neueren Programmiersprachen, die in letzter Zeit sehr an Popularität gewonnen haben, zählen Python und Scala. Python wurde von Guido von Rossum Ende der 1980er Jahre mit dem Ziel entwickelt, möglichst einfache, übersichtliche und knappe Programme zu entwickeln. Ein wichtiger Aspekt der Programmiersprache ist, dass sie sehr leicht zu erlernen ist und den Entwickler keinen Programmierstil aufzwingt: Python unterstützt sowohl objektorientierte als auch funktionale und aspektorientierte Programmierung. Die Programmiersprache verwendet wie Smalltalk dynamische Typisierung und Bindung. Die integrierte Ausnahmebehandlung gestattet es trotzdem, sehr robuste Programme zu entwickeln.

Lesetipp: Programmieren für Anfänger - Python lernen leicht gemacht

Python kombiniert, ähnlich wie Java, die Vorteile von Compiler- und Interpretersprachen. Python-Quellcode wird vom Compiler in Bytecode compiliert. Diesen interpretiert die Laufzeitumgebung. Als Laufzeitumgebung lässt sich die Python-Referenzimplementierung CPython verwenden, aber auch zum Beispiel Jython. Python-Programme laufen auf nahezu allen bekannten Plattformen wie Windows, MacOS, diversen Linux-Derivaten, auf viele Betriebssystemen für mobile Geräte und sogar auf Exoten wie z/OS. Ein weiteres Plus von Python sind die vielen verfügbaren Entwicklungsumgebungen. Der Bogen spannt sich von einfachen Umgebungen wie IDLE bis zu integrierten Entwicklungsumgebungen wie Visual Studio Code, IntelliJ oder der Eclipse IDE. Python hat sich in den letzten Jahren zu einer der beliebtesten Programmiersprache entwickelt. Sie ist besonders im wissenschaftlichen und KI-Umfeld weit verbreitet.

Python ist nach einer Umfrage von Stackoverflow im Jahr 2021 die drittbeliebteste Programmiersprache.
Python ist nach einer Umfrage von Stackoverflow im Jahr 2021 die drittbeliebteste Programmiersprache.
Foto: Bernhard Steppan


Die im Jahr 2004 erschienene Allzweckprogrammiersprache Scala stammt von der Eidgenössischen Technischen Hochschule Lausanne (ETHL). Wie Java ist Scala skalierbar, hat also einen kleinen Sprachkern, der sich erweitern lässt (daher der Name Scala). Auch sonst lehnt sich das Design der Programmiersprache an Java an, eliminiert aber die Schwächen des Vorgängers: Scala ist eine rein objektorientierte Sprache. Sie ist zwingt dem Entwickler keinen Programmierstil auf, sondern unterstützt sowohl objektorientierte als auch funktionale Programmierung. Scala ist wie Java statisch typisiert. Da der Scala-Compiler jedoch Typinferenz beherrscht, kann man Programme weitgehend so schreiben wie mit dynamischer Typisierung, denn der Compiler kann den Typ eines Ausdrucks aus dem Kontext herzuleiten.
Bei der Syntax zur Typdefinition enden die Analogien zu Java, denn Scala verlangt die Definition nach dem Schema variable: Datentyp und nicht umgekehrt. Das ebenfalls aus der Schweiz stammende Pascal lässt grüßen.

Wie Python kombiniert auch Scala die Vorteile von Compiler- und Interpretersprachen. Scala-Programme werden zu Bytecode übersetzt und dieser Bytecode kann auf jeder Java-Laufzeitumgebung ausgeführt werden. Durch die weite Verbreitung der Java-Laufzeitumgebung sind Scala-Programme ebenso leicht portierbar wie Java-Programme und laufen auf fast allen Plattformen. Auch sämtliche Java-Bibliotheken stehen zur Verfügung, wodurch Scala das breite Einsatzspektrum von Java erreicht.

Nur bei den Entwicklungsumgebung sieht es nicht ganz so rosig aus: Die Entwicklung der Scala-IDE auf Eclipse-Basis ist seit Jahren ins Stocken geraten und befindet sich auf dem Stand von 2018. Wer mit einer integrierten Entwicklungsumgebung Scala entwickeln möchte, greift daher am besten zu IntelliJ oder Visual Studio Code. Alles in allem ist Scala eine sehr interessante Programmiersprache. Sie landet laut PYPL-Index derzeit auf dem 19. Platz.

Fazit

Auch mit Python und Scala ist die Entwicklung der Programmiersprachen keineswegs abgeschlossen. Die Liste der Programmiersprachen könnte mit 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. (bw)