Artikel

 
September 2009 | Artikel

JRuby: Aller Anfang ist leicht

(Link zum Artikel: http://www.it-republik.de/jaxenter/artikel/2557)

Grundlegendes und erste Schritte zu JRuby

Text: Michael Johann
JRuby wird aktuell unter der Führung von Charles Oliver Nutter und Thomas Enebo vorangetrieben. Das Projekt JRuby hatte zum Ziel, die Sprache Ruby in der Version 1.8.6 auf der Java VM lauffähig zu machen. Um schnellstmöglich die Version 1.0 zu veröffentlichen, gewann Sun Microsystems Inc. die beiden Protagonisten als interne Mitarbeiter und verschaffte ihnen auf diese Weise die nötige Zeit und das nötige Geld, um JRuby zum Erfolg zu verhelfen. Als diese Zeilen geschrieben wurden, war die Version 1.1.6 aktuell. Während die Version 1.0 noch eine möglichst hohe Sprachkompatibilität zum Ziel hatte, liegt der Fokus seitdem auf der Performanz des ausgeführten Codes. Letzte Performanzmessungen bescheinigen JRuby signifikante Vorteile gegenüber der MRI-Umgebung (Matz Ruby Interpreter) für Version 1.8.6 sowie inzwischen auch 1.9.x, was JRuby zu DER Ablaufumgebung für Ruby-on-Rails-Anwendungen macht. Darüber hinaus bietet JRuby durch die ausgereifte Java VM einige Vorteile, die wir im Folgenden näher betrachten werden.
Teil 1   Teil 2   Teil 3   Teil 4   

Warum JRuby?
Zunächst kann man sich die Frage stellen, warum Ruby-Code auf der Java VM ausgeführt werden sollte. Dafür lohnt sich ein Blick auf die momentane Sprachenlandschaft und die Konferenzinhalte. Traditionell ist beispielsweise die JAX-Konferenz sehr nahe am Geschehen, und 2007 wurden bereits einige Rails-Vorträge ins Programm integriert. Doch nicht nur Ruby on Rails war dort vertreten. Auch die Vertreter der Groovy-Gemeinde zeigten sich sehr aktiv und propagierten mit Grails den Ansatz "Groovy on Rails". Wie auch immer, eine dynamische Sprache wie Ruby oder Groovy ist für die Kombination von Java VM und Sprache ausschlaggebend. Warum aber gerade auf der Java VM? Für viele Unternehmen ist Java inzwischen ein fester Bestandteil der IT-Strategie. Es wurde viel Geld und Zeit investiert, um unternehmenskritische Anwendungen zu entwickeln und in Produktion zu bringen. Die Java VM ist eine sehr ausgereifte und erprobte Technologie; immerhin werden große verteilte Architekturen mit der JVM realisiert. Das Performanzthema hat sich seit einigen Jahren erledigt, während es bei Ruby gerade noch in der Diskussion ist. Java-Entwickler haben eine Affinität zu ihren JARs, seien es Standard-JARs oder eigene Bibliotheken. Java als Sprache hält den Entwickler eher an der kurzen Leine und fokussiert sich in der Flexibilität dadurch eher auf seine Bibliotheken und Frameworks.

Der seit einigen Jahren zu beobachtende Trend hin zu domänenspezifischen Sprachen (DSL, Domain Specific Languages) ist dabei nicht zu übersehen. Java mit seinen eher statischen Eigenschaften erlaubt es nicht wirklich, eine DSL zu implementieren. Ruby ist mit der Möglichkeit zur Metaprogrammierung allerdings ein geeigneter Kandidat, um eine DSL beispielsweise für Webanwendungen zu implementieren. Andererseits ist der Vorrat an Java-Bibliotheken ein echtes El Dorado, nicht nur für Java-Entwickler. Somit stellt sich immer auch die Frage, wie man vorhandenes Wissen und Bibliotheken wieder- und weiterverwenden kann.

Groovy bietet eine an Java angelehnte Syntax und prinzipiell alle Vorzüge von Ruby und nutzt ebenfalls die JVM. Hierbei steht die Wiederverwendung von Java-Bibliotheken im Vordergrund. Einige Vertreter der Groovy-Szene reden gar von Investitionsschutz für Java-Entwickler. Meiner persönlichen Meinung nach ist eine dynamische Sprache wie Ruby auf JRuby die bessere Alternative zum Investitionsschutz. Wenn ich mich schon von der reinen Java-Syntax verabschieden muss, kann ich gleich die Sprache Ruby erlernen, um ins Reich der Rails-Anwendungen zu gelangen. Schließlich versucht Grails den Nachbau zuzüglich einiger weiterer Ideen von Rails. Mit Ruby on Rails sitzen Sie daher immer direkt an der Quelle, denn auch hier ist die Community ein weiteres bestechendes Argument.

JRuby ist in der Lage, alle Eigenschaften der Sprache Ruby auf die JVM zu übertragen. Damit können Java-Bibliotheken transparent in Ruby-Programme eingebunden werden. Aber auch Java-Programme können Ruby-Programme aufrufen, wenn JRuby verwendet wird. JRuby erlaubt somit die transparente Entwicklung von Ruby-on-Rails-Anwendungen und darüber hinaus die Integration vorhandener Java-Applikationen und -Bibliotheken. Die folgenden Seiten vermitteln Ihnen die Grundlagen von JRuby. Wir beschreiben den generellen Umgang mit JRuby und demonstrieren anhand einiger kleiner Beispiele dessen Integrationsfähigkeiten.

Installation von JRuby und Rails
JRuby ist zur Gänze in Java implementiert und kann somit auf jeder Java-fähigen Plattform eingesetzt werden. Die Installation ist denkbar einfach. Zunächst muss das Paket aus dem Netz geladen werden. Hierfür öffnen Sie einfach einen Browser und geben den URL http://dist.codehaus.org/jruby/ ein. Dort finden Sie die aktuellste Version. Suchen Sie sich eine passende Version größer als 1.1.5 heraus und starten Sie den Download. Die Installationsanweisungen für die binäre Version sind auf der Homepage [1] von JRuby zu finden und werden hier nicht wiederholt. Auch die Möglichkeit, sich aus den Sourcen eine eigene binäre Version zu erstellen, wird dort beschrieben.

Die Installation von Ruby on Rails und einiger Datenbanktreiber auf JDBC-Basis erfolgt mit einigen kleinen Unterschieden, so wie unter MRI auch. Als Erstes sollten Sie JRuby OpenSSL installieren. Geben Sie hierzu folgende Anweisung ein: jruby –S gem install jruby-openssl. Nun ist es Zeit für die Installation von Ruby on Rails: jruby –S gem install rails. Ab jetzt können Sie mit JRuby arbeiten und beispielsweise Ruby-on-Rails-Projekte erstellen und laufen lassen. Der Aufruf von JRuby mit den bekannten Skripten wie Gem oder Rake erfolgen immer zusammen mit dem Parameter –S. Damit wird sichergestellt, dass auch die für JRuby vorgesehene Installation dieser Werkzeuge verwendet wird. Ruby-Skripte werden beispielsweise durch jruby script/server aufgerufen.

Zum ersten Mal erschienen ist der Artikel "JRuby: Aller Anfang ist leicht" von Michael Johann in der Ausgabe 2.09 des RailsWay Magazins, die sich schwerpunktmäßig mit dem Thema JRuby befasst. Neben einführenden und fortgeschrittenen Artikeln zum Thema bietet das Magazin ein ausführliches Interview mit JRuby-Mastermind Charles Oliver Nutter sowie viele weitere spannende Beiträge rund um die Ruby-on-Rails-Plattform.

Teil 1   Teil 2   Teil 3   Teil 4   

Anzeige

Kommentare

Gravatar Wolfgang Schell 08.09.2009
um 16:24 Uhr
Warum Groovy und Grails wegen der besonderen Nähe JRuby's zu Rails zweite Wahl sein soll verstehe ich ja nicht. Ebenso wenig warum man bei Rails "an der Quelle" sitzt Grails aber nur ein Nachbau (und deswegen "schlechter"???) ist. Eine große Community hat Grails übrigens auch!Ich denke dass sich Grails und Rails eher gegenseitig befruchten könn(t)en. Klar Grails hat viele Konzepte von Rails übernommen hat aber auch genug eigene entwickelt und ist vor allem optimal an die Java-Plattform angepasst während Rails "nur" kompatibel gemacht wurde. Meiner Meinung nach wäre es besser wenn man wertfrei über die Vorteile von Web Frameworks mit CoC und DRY im Allgemeinen schreibt und vielleicht neue Entwickler dafür interessiert. Auf Grails herabzuschauen weil es später kam und zufällig nicht in der heiligen Sprache Ruby geschrieben ist halte ich nicht für sinnvoll. Die Auswahl zwischen Grails und Rails (oder Lift oder sonstigen Frameworks) kann man dann getrost dem mündigen Entwickler und seinen Präferenzen bzw. seinem persönlichen Geschmack überlassen. #zitieren

Anzeige

zurück zum Seitenanfang