Java: Was Mustang und Dolphin bringen

14.07.2005
Von Kay Glahn
Java und Skriptsprachen

Die wichtigsten Skriptsprachen, die auf Java basieren oder Java-Class-Dateien erzeugen:

Rhino: Rhino ist die Java-Implementierung des Java Script Interpreter. Er erlaubt außerdem das Generieren von Class-Dateien aus Skripten mit Hilfe des Java Compiler. Rhino stammt aus dem Open-Source-Projekt Mozilla und soll eventuell in zukünftige Java-Versionen integriert werden.

Groovy: Dies ist eine neue Sprache, die Java-ähnliche Syntax mit Features aus Ruby, Python und Smalltalk vereinigt. Groovy ist in der Lage, eigene Skripte in Java-Class-Dateien zu kompilieren. Für die Sprache wird im Java Community Process unter dem JSR 241 eine Spezifikation erarbeitet.

Beanshell: Die Beanshell wurde von Pat Niemeyer erfunden und ist ein Java Source Interpreter, der in der Lage ist, gewöhnlichen Java-Sourcecode zu interpretieren. Kürzlich wurde Beanshell als JSR274 akzeptiert.

Pnuts: Hierbei handelt es sich um eine eigene Sprache mit Java-ähnlicher Programmiersyntax. Auch Pnuts ist in der Lage, Java-Class-Dateien aus den eigenen Skripten zu erstellen.

Jython: Eine Java-Implementierung des Python-Interpreters.

Jacl: Eine Java-Implementierung des Tcl-Interpreters. Das "Swank"-Projekt stellt außerdem ein Framework bereit, das Java Swing Widgets als "Tk User Interface Objects" verfügbar macht.

Jruby: Eine Java-Implementierung des Ruby-Interpreters.

Judoscript: Diese Sprache nutzt eine einfach zu erlernende, Java-Script-ähnliche Syntax und soll das Skripting auf Objekt-, Anwendungs- und BetriebssystemEbene unterstützen.

Der Aufruf von "Remote Web Services" war bisher hingegen nur mit proprietären APIs möglich, die dann zusammen mit der Anwendung oder dem Applet ausgeliefert werden mussten. In Mustang hingegen ist die Unterstützung von Web-Services Teil der Plattform und muss nicht zusammen mit der Anwendung bereitgestellt werden. Dies hat den Vorteil, dass der Code für das "Java API for Remote Procedure Calls" (JAX-RPC), mit dem sich XML-basierende Methodenaufrufe vornehmen lassen, nicht mehr in dem Applet enthalten ist, sondern nur noch von diesem aufgerufen wird und somit das Applet seine Kompaktheit nicht verliert. Im Gegensatz zum häufig eingesetzten RMI hat die Web-Services-Anbindung den Vorteil der höheren Interoperabilität zwischen verschiedenen Plattformen. Es ist dann nicht mehr relevant, ob sich auf dem Server eine Java- oder eine .NET-Implementierung befindet.