Sie befinden sich hier: Home » Ratgeber » Java » Alternative Sprachen für die JVM
Alternative Sprachen für die JVM
Java als Programmiersprache hat seine Monopolstellung eingebüßt – die hochoptimierte JVM und die umfangreichen Java-Bibliotheken lassen sich mittlerweile durch alternative Programmiersprachen nutzen. Auf der einen Seite existieren klassische Interpreter und Compiler für existierende Sprachen, wie Ruby, Prolog, LISP, BASIC, Python, die bestmöglich auf die Java-Umgebung portiert werden. Auf der anderen Seite sind es ganz neue Programmiersprachen (wie Groovy), die sich als echte Alternative zur Programmiersprache Java etablieren. Skriptsprachen werden oft über die JSR 223: Scripting for the Java Platform, einer standardisierten API, angesprochen.
JavaScript
Seit Java 6 ist über Rhino – ein Projekt der Mozilla Foundation – eine JavaScript-Laufzeitumgebung integriert. Die Script-Engine erlaubt die dynamische Übersetzung in Bytecode, was schnelle Ausführungszeiten der prozeduralen, funktionalen, objektorientierten Programmiersprache garantiert.
Groovy
Groovy
bietet eine starke Syntax mit Closures, Listen/Mengen, Reguläre
Ausdrücke, eine dynamische und statische Typisierung und vielem
mehr. Moderne IDEs wie
Eclipse oder
NetBeans unterstützen Groovy durch Plugins. Der Groovy-Compiler
erzeugt für die Groovy-Klassen den typischen Bytecode, sodass normale
Java-Klassen problemlos Groovy-Klassen nutzen können – oder umgekehrt.
Zwei Vorträge zum Einlesen:
- Groovy Tutorial (71 Folien)
- Von Java zu Groovy. W-JAX Workshop (66 Folien)
JRuby
JRuby
ist die Java-Version der dynamisch getypten Programmiersprache
Ruby. Sun
beschäftigt mit Charles Nutter und Thomas Enebo (die ›JRuby Guys‹)
zwei Entwickler, und bringt auch mit der Integration in die
NetBeans
IDE (J)Ruby weit nach vorne. Ruby wird mit einem Atemzug mit
dem Web-Framework
Ruby on Rails
genannt, ein Framework für Web-Applikationen, welches dank JRuby
auch auf jedem Tomcat und Java Application-Server läuft.
Jython
Die
beliebte Programmiersprache
Python bringt
Jython
auf die Java-Plattform. Auch Jython übersetzt Python-Programme in
Java-Bytecode und erlaubt relativ schnelle Ausführungszeiten. Jython
2.5 implementiert Python auf 2.5, doch hat sich (C-)Python mit Version
2.6 und 3 schon weiter entwickelt. Auch sonst gibt es
Unterschiede, etwa bei den eingebauten (nativen) Funktionen.
Sun hat im März 2008 Ted Leung und Frank Wierzbicki (Hauptentwickler
von Jython) eingestellt, um Python auf der JVM weiter zu fördern.
Scala
Scala
ist eine Funktionale, objektorientierte Programmiersprache, die
in der Java-Community große Zustimmung findet, obwohl sie von Martin
Odersky erst 2001 entwickelt und 2004 vorgestellt wurde. Ein
Eclipse-Plugin steht ebenfalls bereit. Für die .NET-Plattform
gibt es ebenfalls eine Implementierung. Besonders zeichnet Scala
ein durchdachtes Typsystem aus.
Quercus
Quercus ist eine Implementierung von PHP, welches insbesondere dazu geeignet ist, bestehende und beliebte PHP-Projekte in einer Java-Umgebung ablaufen zu lassen. In der Java-Welt werden zwar nicht alle PHP-Funktionen unterstützt, aber es gibt in der Java-Welt keine Speicherüberläufe oder Sicherheitsprobleme.
Clojure
Cojure
ist ein LISP-Dialekt und fällt so in die Kategorie der
funktionalen Programmiersprachen. Der Compiler erzeugt direkten
Byte-Code. Für die Kommandozeile gibt es ein kleines Tool (Read-Eval-Print-Loop
(REPL)), mit dem man seine ersten Versuche von der Kommandozeile
machen kann. Eine Reihe von
Präsentation
gibt es auch.
Jatha
Jatha ist eine ›Common LISP library in Java‹, eine Implementierung von Common LISP. Mit einer API lassen sich LISP-Programme aus Java heraus aufrufen.
LuaJava
LuaJava
implementiert die Programmiersprache
Lua für die JVM.
Die aus Brasilien stammende dynamisch getypte Programmiersprache
Lua zählt zu den performantesten, interpretierten Skriptsprachen.
Sie ist in erster Linie als eingebettete Programmiersprache zur
Applikationssteuerung entworfen worden;
prominete
Nutzer sind Sim City, World of Worcraft, Adobe Photoshop Lightroom,
SciTE. Neben LuaJava gibt es
Juaj.
Pnuts
Pnuts gehört zu den schnellsten Skriptsprachen auf der JVM. Die Sprache hat eine einfache Syntax und übersetzt Programme ebenfalls in Bytecode.
JBasic
Mit JBasic gibt es für die Java-Plattform einen BASIC-Dialekt, der sich an GW-BASIC anlehnt.
JLog
JLog implementiert einen ISO-Standardisierten PROLOG-Interpreter. JLog läuft in einem eigenen Fenster mit Quellcode-Editor, Query-Panel, Hilfe, Debugger, oder es kann in einem eigenen Java-Programm eingebettet werden.
Jacl
Jacl implementiert einen TCL-Interpreter in Java. Die Entwicklung ist nicht mehr aktiv.
Die Webseite http://www.robert-tolksdorf.de/vmlanguages.html führt weitere Programmiersprachen für die JVM auf. Allerdings sind viele der gelisteten Sprachen für sehr spezielle Anwendungsfälle entworfen, experimentell oder werden nicht mehr gepflegt.