Ceylon: RedHats neue JVM-Sprache

Hartmut Schlosser

RedHat arbeitet offenbar an einer neuen Programmiersprache für die JVM. Auf einer Konferenz in China hatte RedHat-Entwickler Gavin King einen Vortrag gehalten, in der er das neue Sprachprojekt Ceylon vorstellte. Plakativ als „neuer Java Killer“ wurde Ceylon daraufhin in einigen Medien bezeichnet. Gavin King stellte klar: Ceylon ist nicht als Java Killer konzipiert, Ceylon ist nicht die „nächste Generation der Java-Sprache“. Was ist Ceylon?

Eine neue Sprache für die JVM

King charakterisiert Ceylon selbst folgendermaßen:

  • Ceylon soll auf der Java Virtual Machine laufen
  • Ceylon ist statisch typisiert
  • Ceylon enthält automatische Speicherverwaltung und ein sicheres Referenzierungssystem
  • Ceylon soll wie Java gut lesbar sein
  • Ceylon enthält First-Class und Higher-Order Functions
  • Ceylon verfügt über eine deklarative Syntax zur Definition von User Interfaces und Datenstrukturen
  • Ceylon soll eingebaute Modularität auf Sprachebene bieten
  • Ceylon ist einfach zu erlernen und zu verstehen

King führt weiter aus, dass die Ceylon-Sprache aus einer gewissen Frustration über die Beschränkungen Javas heraus entstanden sei:

  • Java bietet keine ansprechende Lösung für die Entwicklung von Oberflächen
  • Java ist für die Verwaltung strukturierter Daten zu stark an Frameworks und XML gebunden
  • Das Fehlen einer Modularisierung auf Sprachebene hat zu überkomplexen Lösungen wie Maven und OSGi geführt
  • Die fehlende Unterstützung für First-Class und Higher-Order-Funktionen führt zu geschwätzigem Code
  • Meta-Programmierung in Java ist umständlich
  • Java enthält einige nervtötende Sprachfeatures wie Getter/Setter, Arrays und primitive Typen, nicht-typensichere Nullwerte, umständliche Annotations-Syntax, etc.

Am meisten sei man jedoch vom Java SE SDK enttäuscht, das seit seiner Entwicklung vor 15 Jahren keine echte Modernisierung mehr erfahren habe. Einige Klassenbibliotheken seien „extrem veraltet“ und voller problematischer Konstrukte. Immer noch habe man das Gefühl, das SDK sei „work in progress“. Deshalb sei es eine der obersten Prioritäten von Ceylon, ein erstklassiges SDK bereit zu stellen.

Ceylon versus Scala?

Soweit die Fakten aus der Ceylon-Präsentation, die in der Blogosphäre ein großes – wohl auch für King unerwartetes – Echo gefunden haben. King hat deshalb in einem Interview einige klärende Worte zum Ceylon-Projekt verloren.

Viele Kommentatoren haben den Vergleich zwischen Ceylon und einem weiteren Kandidaten für die Java-Nachfolge gezogen: Scala. Hierzu bemerkt King, dass Scala sicherlich eine interessante Sprache sei und auch das Design von Ceylon beeinflusst habe. Die Unterschiede lägen indes in einer besseren Lesbarkeit von Ceylon: statt kryptischer Zeichenanweisungen semantisch aussagekräftige Sprachbefehle. Statt des Feature-reichen Typensystems von Scala soll Ceylon einige wenige, allgemeinere Konstrukte enthalten. Außerdem wolle man keinen Support für echtes Operator Overloading integrieren.

Erhellend ist auch die Anmerkung Kings, dass jetzt, da sich Oracle von JavaFX als Skriptsprache verabschiedet habe, Ceylon die erste Anlaufstelle für UI Entwickler werden soll.

Now that Oracle have walked away from JavaFX, Ceylon is going to be the language for UI developers! Gavin King

Das Modulsystem von Ceylon soll auf dem Projekt JBoss Modules aufbauen, das zukünftig auch im JBoss Application Server 7 Verwendung finden soll und ein „sehr viel einfacheres Modularisierungssystem“ als beispielsweise OSGi bieten soll.

Um das Problem der Nebenläufigkeit anzugehen, verweist King auf Bibliotheken. Eine Sprache brauche keine eingebauten Concurrency Primitiva.

Gavin King stellt klar, dass das Ceylon Projekt keine rein RedHat getriebene Angelegenheit sein soll, sondern nur als offenes Community-Projekt Sinn mache. Es sei auch keine Anstrengung eines kompletten Rewrites von Java – die besten Teile aus Open JDK, JBoss und Eclipse könnten dafür wieder verwendet werden.

Just think of what’s reusable from Open JDK, JBoss, and Eclipse! It’s not a requirement that the entire SDK, compiler, and IDE be implemented in Ceylon. Gavin King

Ceylon zum Anfassen

Wie ernsthaft das Ceylon-Projekt betrieben wird, zeigt die Aussage, dass Gavin Kings Team offenbar die letzten zwei Jahre damit verbracht hat, die kompletten Sprachspezifikationen sowie eine ANTLR-Grammatik zu verfassen. Vorliegend ist außerdem bereits ein prototypischer Compiler für Ceylon, dessen erstes offizielles Release noch im Laufe dieses Jahres erfolgen soll.

Der Compiler wird auf GitHub zugänglich sein – für die Grammatik sei es noch zu früh, sagt King. Er selbst hätte nicht damit gerechnet, sich jetzt schon einem so breiten Interesse aus der Community stellen zu müssen.

But I don’t really want to release the grammar and type checker without having the backend to go along with this. To be honest, I wasn’t expecting this to hit Slashdot quite so soon 😉 Gavin King

Um dem großen Community-Interesse gerecht zu werden, hat King die Slides zur Ceylon-Präsentation sowie eine Diskussion des Typensystems von Ceylon zur Verfügung gestellt.

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.