Sie befinden sich hier: Home » Wissenstransfer » Java » Alternative Sprachen für die JVM
Alternative Sprachen für die JVM
Java 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 (104 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.2 implementiert Python auf
2.2, 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.
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.
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.