Open Source im professionellen Einsatz

© codswollop, photocase.com

Mit JRuby on Rails die Vorteile von Java und Ruby nutzen

Mischmasch

Ruby on Rails spaltet die Gemeinde der Webentwickler. Für die einen der Weisheit letzter Schluss, für die anderen der größte Hype aller Zeiten. JRuby bringt beide Fronten wieder an einen Tisch.

Die Reaktionen reichten von Neid bis zu willigem Konvertitentum, als David Heinemeier Hansson Ruby on Rails im Jahr 2004 in die freie Wildbahn entließ [1]. Viele Entwickler waren und sind fasziniert von der Einfachheit und den Grundprinzipien von Rails. Es wurde als Framework aus der bestehenden Webanwendung Basecamp der Firma 37Signals extrahiert und versteht sich als "Opposition Software". Soll heißen: Das Framework bestimmt, wo der Entwickler etwas wie zu tun hat.

Was sich auf den ersten Blick als arrogante Bevormundung ausnimmt, lernt der Programmierer nach kurzer Einarbeitungszeit durchaus zu schätzen. Der Webentwickler weiß immer, an welcher Stelle er dieses oder jenes implementieren muss, ohne vorher lange nachzudenken. Das wiederum ermöglicht es ihm, sich mehr auf das Wesentliche zu konzentrieren, nämlich die Geschäftslogik der Anwendung.

Doch hält Ruby als Rails-Untersatz auch manche Überraschung für Java-Entwickler bereit. So unterstützt die aktuelle Ruby-Implementierung zwar Threads für die parallele Verarbeitung, diese laufen jedoch in ein und demselben Prozess und lassen so das Potenzial moderner Multicore-Systeme brachliegen. Java nutzt dagegen schon seit Langem Threads auf Betriebssystemebene.

Auch die auf der Sprachebene vorhandene Unicode-Unterstützung von Java, sucht man in Ruby noch vergebens. Dennoch spricht viel für die Erstellung von Anwendungen in Ruby, nicht zuletzt deswegen, weil Programmieren nach Vorstellung von Ruby-Erfinder Yukihiro Matsumoto vor allem Spaß machen soll. Umso besser, dass nun mit JRuby [2] eine Java-Implementation der Ruby-Sprache zur Verfügung steht, die das Beste beider Welten vereint.

JRuby kommt dazu

Jan Arne Petersen, Student der Universität Bonn, erstellte bereits im Jahr 2001 die erste Portierung von Ruby 1.6 in Java. Um das Rails-Framework auch unter JRuby nativ nutzen zu können, befassten sich im Jahre 2006 Thomas Enebo und Charles Nutter mit der Portierung von Ruby 1.8. Dieses Vorhaben bekam im September desselben Jahres eine neue Dynamik, als Sun Microsystems die beiden Entwickler unter Vertrag nahm und sie Vollzeit mit der Weiterentwicklung von JRuby betraute.

JRuby lässt sich unter Linux sehr einfach installieren, wenn sich schon ein Java-SDK auf dem Zielsystem befindet. Unter [2] stehen die verschiedenen Releases als Tar- oder Zip-Archive zur Verfügung. Im Rahmen dieses Artikels kam die erste Betarelease der kommenden Version 1.1 zum Einsatz.

Versteht sich mit Rubygems

Ausgepackt an einen Ort, der im Folgenden einfach über die Umgebungsvariable »JRUBY_HOME« zu erreichen ist, kann die Installation mit einigen Beispielen getestet werden, die sich im Verzeichnis »samples« befinden. Die Sequenz:

jruby $JRUBY_HOME/samples/swing2.rb

sollte ein einfaches Swing-Frame mit der Schaltfläche erzeugen. Ist diese Hürde genommen, können weitere wichtige Komponenten folgen. Ruby bringt von Haus aus ein eigenes Paketmanagement Namens Rubygem mit [3]. So sucht

jruby -S gem list r -r

zum Beispiel auf [gem.rubyforge.org] nach allen Paketen, die mit dem Buchstaben »r« anfangen. Der Befehl

jruby -S gem help commands

liefert eine Übersicht der zur Auswahl stehenden Kommandos. Die Anweisung

jruby -S gem install rake

installiert das Build-Tool »rake«, das unter Ruby die Aufgaben eines klassischen Unix-Makes erfüllt, und

jruby -S gem install -y rails

installiert das komplette Rails-Framework in der aktuellen Version mit allen abhängigen Paketen. Um auch mit Datenbanken arbeiten zu können, bietet sich unter JRuby die Verwendung des Active-Record-JDBC-Pakets an, das aus den Händen der JRuby-Kernentwickler stammt. Somit schließt

jruby -S gem install ActiveRecord-JDBC

die Installation der nötigen Komponenten ab. Alle Pakete liegen jetzt wohlgeordnet unter »$JRUBY_HOME/lib/ruby/gems/1.8/gems«.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook