Polyglot Programming, oder: Wie Open Source das Programmieren veränderte

Seite 2: Die polyglotte Zukunft

Inhaltsverzeichnis

Auch wenn sie erst später quelloffen werden sollte, hatte die Java Virtual Maschine ebenfalls ihren Einfluss. Erst wurde Python, später dann Ruby in eine auf der JVM gehostete Sprache gewandelt, die sich auf der JVM in Bytecode kompilieren und dort ausführen ließ. Skriptsprachen konnten von der Just-In- Time-Kompilierung und den umfangreichen Bibliotheken der JVM profitieren. Andere sahen das Konzept und entwickelten es weiter, sodass neue Sprachen wie Scala entstanden, die durch ihren Aufbau als Alternative für Java selbst dienen sollten.

Dann kam das LLVM-Projekt, dass zu Anfang durch den enthaltenen Just-In-Time- oder Ahead-Of-Time-Compiler in Javas Bereich einzudringen schien, sich aber mittlerweile in ein Projekt entwickelt hat, dass der Open-Source-Welt eine ganze Bandbreite von Compiler- und Analysewerkzeugen bereitstellt. Besonders bekannt ist hier der alternative C- und C++-Compiler Clang. Die Low-level-VM-Teile der LLVM wurden auch dazu genutzt, leistungsfähigere Versionen einiger Skriptsprachen zu entwickeln.

Eines der so angestoßenen Projekte ist JavaScript, die lange eher stiefmütterlich behandelte Skriptsprache für das Web. Nachdem einige Entwickler sie in den 2000er-Jahren wiederentdeckt haben, forderte die moderne Webentwicklung eine Beschleunigung von JavaScript, und so erschienen JIT-Compiler, Analysemodule und Werkzeuge in den Browsern, die genau das ermöglichten. Das wiederum brachte Entwickler dazu, JavaScript als Grundlage für eigene Sprachen wie CoffeeScript und TypeScript zu nehmen, die man in JavaScript kompilieren kann, und die die Sprache zum Kern der HTML5-Entwicklung machten. Dank Node.js, einer JavaScript-Laufzeitumgebung, die um Googles JavaScript- Engine V8 herum entwickelt wurde, konnte sich JavaScript dann ganz aus dem Browser befreien – wobei auch V8 quelloffen ist.

An diesem Punkt ist man in der Gegenwart der Programmiersprachen angelangt. Die Jagd nach einem besseren C geht weiter – C++ konnte sich nie von seinen altertümlichen C-Wurzeln lösen. Die bekannteste der Alternativen ist Googles Go, die viele Anhänger aufgrund des Entwickler-Credos "Wie C wäre, wenn wir es heute machen würden" gewinnen konnte. Go nimmt die praktischen Elemente der objektorientierten und funktionalen Sprachen eher auf einem Sprach- denn auf einem Bibliothekslevel auf und setzt sie in einer Sprache zusammen, die zum Bau der Backend-Infrastrukturen des Web gedacht ist. Darüber hinaus gibt es noch Mozillas Rust – eine Sprache, die unter den Herausforderungen entstand, die mit dem Erstellen einer soliden, zuverlässigen und sicheren Plattform zum Bau von Webbrowsern einhergehen. In der Welt der Java Virtual Machine hingegen wandeln Unternehmen ihre Erfahrungen im Entwickeln von Enterprise-Anwendungen in Sprachen für genau den Zweck um: Red Hats Ceylon, JetBrains Kotlin oder, in kleinerem Rahmen, Xtend von Eclipse.

Jede dieser Sprachen gestaltet sich eine eigene Domäne, weil Open-Source-Entwickler die Werkzeuge, die zum Entwickeln einer Sprache notwendig sind, bereitstellen und die Techniken, die dazu gebraucht werden, der Allgemeinheit übergeben haben. Open Source gilt heute als Standard zur Entwicklung von Sprachen, und Sprachen lassen sich so entwerfen, dass sie spezielle Anforderungen erfüllen. Diesen
Wechsel, weg vom Bau einer allgemein gültigen Sprache hin zum Entwickeln vieler zweckgebundener Sprachen, hat auch in großen Teilen die Verfügbarkeit quelloffener Komponenten zu verantworten, die als Grundlage nutzbar sind.

Damit zurück zur eingangs gestellten Frage: Welche Sprache sollte man lernen oder als Nächstes lernen? Flexibilität ist hier der Schlüssel, außer man weiß schon genau, was das nächste Problem oder die nächste Herausforderung sein wird.

Die Zukunft des Programmierens ist mehrsprachig. Das zeigt auch eine Umfrage im Dr. Dobbs Journal, in der es darum geht, dass Entwickler mit mehr als einer Sprache arbeiten. Was man lernen kann, ist Programmieren – nicht nur eine Sprache, sondern so viele Idiome, wie zeitlich sinnvoll sind. Man sollte die Ideen und Stilmittel dahinter lernen, nicht die speziellen Fähigkeiten, bis man die Sprache tatsächlich funktional oder fließend können muss. Es wird in der Zukunft zunehmend mehr Sprachen geben, und niemand wird plötzlich sagen: "Das reicht." Sprachen sind, wenn sie schon keine Gebrauchsgüter sind, mit Open-Source-Werkzeugen gebaut, und ihnen ist es zumindest teilweise zu verdanken, dass Entwickler nun in einem neuen polyglotten Zeitalter der Programmierung angekommen sind.

Dj Walker-Morgan
ist Chefredakteur bei der Heise-Schwester The H.
(jul)