Gleich zwei Programmiersprachen haben nach mehrjähriger Entwicklungszeit den Sprung auf die Version 1.0 geschafft: Während Red Hat das erste “production Release” für seinen Java-Ersatz Ceylon veröffentlichte, aktualisierte Google seine Skriptsprache Dart.
Das objektorientierte und statisch typisierte Ceylon orientiert sich an Java, ohne aber dessen Schwächen und Probleme mitzuschleppen. Zu Letztgenannten zählt der Spracherfinder Gavin King insbesondere die schlechte Modularität von Java und die zu starke Verflechtung mit XML. Entwickler können ihre Ceylon-Programme wahlweise in nativen Programmcode, in Bytecode für die Java Virtual Machine (JVM) oder in JavaScript compilieren lassen. Auf der Ceylon-Homepage finden Interessenten neben der Spezifikation der Programmiersprache unter anderem auch ein Paket mit den entsprechenden Compilern sowie eine auf Eclipse basierende IDE.
Mitten ins Schwarze
Auch Google hat nach zweijähriger Arbeit seiner objektorientierten Skriptsprache Dart die Versionsnummer 1.0 verpasst. Dart soll langfristig JavaScript ersetzen. Dart-Programme direkt ausführen kann jedoch noch keiner der großen Browser, selbst Googles Chrome noch nicht. Im Gegensatz zu JavaScript bietet Dart Klassen und ist modularer. Laut den Hauptentwicklern Lars Bak und Gilad Bracha soll sich ihre Skriptsprache vor allem für größere „strukturierte Web-Anwendungen“ eignen. Das jetzt veröffentlichte SDK in der Version 1.0 umfasst neben der Sprachspezifikation unter anderem eine Laufzeitumgebung für die Kommandozeile (Dart VM), eine auf Eclipse basierende IDE (Dart Editor) und einen Compiler, der Dart-Programme in JavaScript übersetzt. Obendrauf gibt es den Browser Dartium, der direkt Dart-Skripte ausführen kann. Die Dart-Entwickler wollen als nächstes die Ausführungsgeschwindigkeit von Dartium und der Dart VM verbessern.






“Im Gegensatz zu JavaScript ist Dart objektorientiert …”
JavaScript ist absolut objektorientiert. Allerdings sind die objektorientierten Programmierparadigmen auf Basis von Prototypen implementiert. Es gibt daher keine Klassen.
Ich habe es im Text etwas präzisiert beziehungsweise korrigiert.