Mittwoch, 23. Mai 2012


Artikel

April 2009 | Artikel

JRuby macht den Weg frei

(Link zum Artikel: http://www.entwickler.de/jaxenter//002260)

Text: Michael Johann
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Auf der diesjährigen JAX Konferenz gab es ein besonderes Highlight für alle, die sich für den Werdegang von JRuby interessieren. Charles Oliver Nutter, Hauptentwickler bei Sun Microsystems (ja...und bald bei Oracle) präsentierte in einer fulminanten Keynote-Präsentation beeindruckende Fakten und neue Features der kommenden JRuby-Versionen. In diesem kurzen Beitrag bieten wir Ihnen eine Zusammenfassung der Highlights.

Vergangenheit
Seit 2006 arbeitet Charles Nutter offiziell bei Sun Microsystems an JRuby. Die Entwicklung wurde in mehrere Meilensteine eingeteilt. Zunächst wurde die Kompatibilität von Ruby und der IRB (Interactive Ruby Shell) sichergestellt. Später dann die volle Unterstützung von Ruby on Rails mit anschließender Performance-Optimierung.

Gegenwart
Heute stellt JRuby die Performance von MRI (Matzu Ruby Interpreter) definitiv in den Schatten. Ständige Performance-Verbesserungen sind der Hauptfokus bei der weiteren Entwicklung. Interessant ist dabei auch, dass es vor JRuby praktisch keine Spezifikation für Ruby und seinen Interpeter gab. Das JRuby-Team hat hier erstmals eine entsprechende Spezifikation entwickelt und in Testsuiten gegossen. Heute lassen sich neben Ruby on Rails auch andere Frameworks mit JRuby nutzen, und damit steht die Fraktion von Groovy und Grails vor dem Problem, dass die Argumente für den Einsatz von Groovy und Grails schwinden. Aber das ist sicher eine sehr subjektive Meinung des Autors ;-)

Charles Nutter zeigte der sichtlich erstaunten Menge, wie er aus einer IRB heraus ein javax.swing.JFrame instanziiert und sichtbar macht. Danach fügte er einen JButton hinzu und anschließend einen ActionListener. Alles ohne Compilerlauf und Neustart der Anwendung, völlig dynamisch.

Zukunft
Wesentlich interessanter noch als die Gegenwart ist die Zukunft von JRuby und der Java Virtual Machine. Neben der Möglichkeit, Java-Klassen transparent zu integrieren und mit den Ruby-Konventionen zu nutzen, kann schließlich auch Ruby-Code von Java-Programmen heraus aufgerufen werden. Dieser Weg ist bisher allerdings etwas weniger schön gewesen als umgekehrt. Charles zeigte die neuesten Entwicklungen in dieser Hinsicht und präsentierte einen Ruby2Java Compiler, der aus Ruby-Klassen echte Java-Klassen macht, die wie jede "normale" Klasse von Java-Programmen genutzt werden können. Ein erstes Release ist in den nächsten Tagen zu erwarten und dürfte für Furore bei den Entwicklern sorgen.

Eine weitere spannende Entwicklung bei JRuby ist das Foreign Function Interface. JRuby ist bekanntlich zu C-Bibliotheken inkompatibel und der Aufruf von Nativen Bibliotheken war mit JNI eine eher unerträglich komplexe Angelegenheit. Eine wesentlich einfachere Möglichkeit bietet nun das Foreign Function Interface (FFI). Hier kann mit wenigen Zeilen Code eine beliebige C-Funktion aus irgendeiner Bibliothek aufgerufen werden. Entsprechende Live-Coding-Demos von Charles Nutter sorgten für herunterfallende Kinnladen. Um die inzwischen weitgehende Integration und sehr gute Performance von JRuby zu demonstrieren, wollte Charles ein in Ruby geschriebenes Spiel (Gravitor [1]) zeigen. Allein die Auflösung auf seinem Rechner im Zusammenspiel mit dem Beamer verhinderte eine lauffähige Demo.

Neben den Features, die zukünftig den Weg in die JRuby-Plattform finden werden, gibt es unter der Federführung von Sun auch einige Bemühungen, die Ausführung von dynamischen Sprachen auf der VM schneller zu machen. Unter dem JSR-292 "invokedynamic" finden sich spannende Optimierungen zur Performance-Steigerung der HotSpot-VM. Ein erstes Release wird ab Juni 2009 im OpenJDK zu finden sein.

Fazit
Für viele Zuschauer der Keynote stand am Ende die Entscheidung fest, sich JRuby [2] zumindest testweise herunterzuladen und ein paar Gehversuche damit zu unternehmen. Aus meiner Sicht war die Keynote von Charles Nutter eine der besten, die die JAX 09 zu bieten hatte. Die weitere Entwicklung von JRuby ist absolut spannend, und diese zu verfolgen dürfte gleichermaßen spannend wie erkenntnisreich sein.

Michael Johann ist Chefredakteur des Magazins RailsWay (www.railsway.de) und Autor des Buches "Ruby on Rails für JEE-Experten", (Hanser Verlag). Er ist Berater und Trainer für JRuby on Rails und regulärer Sprecher auf Konferenzen rund um den Globus. Vor dem Switch zu Ruby on Rails wurde er als JEE-Experte und als Chefredakteur von Java-Spektrum bekannt.
  1. Gravitor
  2. JRuby Homepage
  3. Rails Homepage

andere Artikel dieser Serie

Kommentare