Samstag, 29. September 2007

Der JRuby-Compiler ist fertig!

Wow!
Der JRuby-Bytecode-Compiler ist fertig.

Der erzeugte Code ist etwa doppelt so schnell, wie die Ausführung durch den JRuby-Interpreter.
Die JRuby-Runtime kann nun Ruby interpretieren oder kompilieren, oder beides gleichzeitig.
Es ist wirklich extrem beeindruckend, was das JRuby-Team in so kurzer Zeit hinbekommen hat..

Freitag, 28. September 2007

Rubinius und JRuby

Rubinius ist eine alternative Ruby-Implementierung, die Ruby Source Code in Bytecode übersetzt, die von einer VM ausgeführt wird. Die VM ist an die Smalltalk VM angelehnt. Rubinius ist außerdem kompatibel zur Ruby 1.8 C-API, d.h. C-Extensions, die mit der Original-Implemantation von Ruby laufen, laufen auch unter Rubinius.

Rubinius ist wichtig für JRuby


Es gibt eine enge Zusammenarbeit der JRuby-Entwickler mit dem Rubinius-Team.

  • Rubinius und JRuby versuchen, eine Sprachspezifikation für Ruby festzulegen.

  • Rubinius hat Testcases, die von JRuby benutzt werden,

  • JRuby hat Testcases, die von Rubinius benutzt werden

  • Die Rubinius-Implementierung könnte der Nachfolger der Standard-Ruby-Implementierung werden

  • JRuby hat einen anderen Anwendungsfall als Rubinius

Links


Donnerstag, 27. September 2007

JRuby on Rails mit JavaDB

Arun Gupta zeigt in seinem Blog, wie man statt einer externen Datenbank die mit Glassfish gebundelte JavaDB (aka Apache Derby) verwenden kann. JavaDB ist eine embedded DB, die in der gleichen JVM wie Glassfish undd JRuby on Rails laufen kann.
JavaDB ist eine vollwertige SQl-Datenbank (incl. Transaktionen), sehr klein (etwa 2MB) und performant.

Mittwoch, 26. September 2007

Dienstag, 25. September 2007

Buch "JRuby on Rails" fertig

Ola Binis Buch Practical JRuby on Rails ist veröffentlicht! Ola ist einer der JRuby-Core-Entwickler. Er arbeitet bei Thoughtworks, eines der Sponsoren der vergangenen Railsconf Europe.

Montag, 24. September 2007

Ruby vs JRuby

Auf der Railsconfeurope wurde das JRuby-Team gefragt, wo es Unterschiede zwischen JRuby und der C-Implementation des Ruby-Interpreters (CRuby, oder MRI [Matz’ Ruby Implemenation]) gibt. Antworten:


  • JRuby kennt keine Continuations. Grund ist, daß der JRuby-Interpreter keine ausreichende Kontrolle über den JVM-Stack hat.

  • JRuby benutzt native Threads, CRuby Green Threads

  • fork() gibt es in JRuby nicht

Die Unterschiede sind irrelevant für Rails


Ein Ziel des JRuby-Teams ist es, daß Rails-Applikationen ohne Änderung auf JRuby laufen. Um das zu erreichen, werden auch Bugs und Quirks des CRuby-Interpreters nachgebildet. Wenn man einen möglichst kleinen Testcase einreicht, der einen Unterschied zwischen JRuby und CRuby dokumentiert, sei dies so gut wie gefixt, meinte Ola Bini.

Sonntag, 23. September 2007

Active Hibernate

ActiveRecord ist der O/R-Mapper für Rails, Hibernate ein häufig benutzter O/R-Mapper für Java. Das Projekt ActiveHibernate versucht, Hibernate direkt mit JRuby zu verbinden. Anwendungen ergeben sich da, wo in Java-Projekten Hibernate-Mappings exisstieren, die in JRuby benutzt werden solle.

Freitag, 21. September 2007

NetBeans IDE 6.0 Ruby Documentation

Auf netbeans.org gibt es es eine Menge Tutorials zur Arbeit mir Ruby on Rails. Für einige bekannte Anwendungen gibt es nun netbeans-spzifische Schritt für Schritt-Anleitungen: ein paar Minuten Zeit nehmen und die Tutorials anschauen: Creating a Ruby Weblog in 10 Minutes, Putting Flickr on Rails.


Mittwoch, 19. September 2007

Netbeans 6.0 Beta 1 ist fertig

Gestern hat Netbeans 6 den beta-Status erreicht.
Hier die wichtigsten Punkte für JRuby/Ruby/Rails-Entwickler:


  • Code editing für Ruby, Code Completion, RDoc-Zugriff …

  • Ruby Debugger: Singlestep, Breakpoints, Stack view …

  • Rails-Support: direkter Aufruf von “generate”, Navigation zwischen action/view, rake …

  • rhtml-Higlighting



und noch einiges mehr. Vollständige Ankündigung hier.


Download Netbeans 6.0 beta 1

Dienstag, 18. September 2007

GlassFish V2 Java EE 5 Server fertig

Suns J2EE Application Server GlassFish V2 ist fertig.
GlassFish ist die Open-Source-Referenz-Implementierung
der Java EE 5 Specification. Es gibt eine von Sun kommerziell supportete
Version, die Sun Java System Application Server Platform.
Einige Key-Features

  • Clustering und HA

  • Admin/Monitoring

  • Hohe Performance


Vollständigere Feature-Liste

hier


Für JRuby on Rails ist GlassFish als gem verfügbar. Damit können JRuby on Rails-Applikationen sehr leicht in einer Java-Enterprise-Umgebung deployt werden.

Montag, 17. September 2007

GlassFish statt Mongrel

“The End Is Near For Mongrel” schreibt Charles O Nutter etwas plakativ:

Ein GlassFish gem ist angekündigt. Damit kann man eine JRuby/Rails-Applikation direkt von der Kommandozeile starten, wie bisher mit Mongrel oder Webrick. Der Aufwand, einen Java-Application-Server zu installieren, wir auf ein “gem install” reduziert. Cool!

Sonntag, 16. September 2007

JRuby-get-together bei der Railsconf?

Bei der Railsconf Europe sind die meisten der JRuby-Entwickler da. Charles O Nutter hat mir eine Mail geschrieben und angeregt, ein kleines, zwangloses JRuby-Treffen bei einem Bier zu veranstalten. Leider kommt man nicht mehr zu Bratwurst-on-Rails rein :-( Da ortsfremd, kenne ich keine Kneipe in Berlin. Weiß da jemand was? Wenn ja, wäre ein Kommentar drübern im Railsconf-Wiki mit Termin-/Ortsvorschlag ganz, ganz toll…

Samstag, 15. September 2007

Clustering mit Memcached vs Terracotta for JRuby

Für die Skalierung von Ruby on Rails-Anwendungen wird häufig Memcached benutzt. Für geclusterte Java-Applikationen ist oft Terracotta das Mittel der Wahl.

Memcached ist ein verteilter Objekt-Cache, der Objekte im Hauptspeicher der beteiligten Cache-Rechner hält und übers Netz miteinander kommuniziert. Für memcached gibt es Implementiereungen in sehr vielen Sprache (Perl, Ruby, PHP…) Terracotta arbeitet auf JVM-Ebene
und ist Java-spezifisch.


Terracotta for JRuby integriert Terracotta direkt in JRuby. Jonas Bonér zeigt in Clustering JRuby with Open Terracotta beispielhaft, wie diese Integration funktioniert. das Ganze ist ein proof of concept, mal sehen, was sich daraus entwickelt.

Freitag, 14. September 2007

JDBC Connection Pooling mit JRuby/Rails

Bei Datenbank-intensiven Applikationen (z.B. Ruby on Rails) ist Connection Pooling wichtig, um den Overhead für den Aufbau der DB-Verbindungen zu minimieren, kurze Latenzzeiten zu erreichen und allgemein die Last auf den Servern niedrig zu halten. Wie das mit JRuby, Rails, mysql und Glassfish geht, zeigt hier hier
Lou Springer von Sun in einer Schritt-für-Schritt-Anleitung.

Mittwoch, 12. September 2007

The best open source programming language

Infoworld hat Ruby zur besten open source programming language gewählt, die JRuby-Implementierung war einer der Gründe dafür:



..Further, Ruby has broken out in a big way this year, with new versions for Java (JRuby) and Microsoft’s Dynamic Language Runtime (IronRuby). Unless these variants begin to introduce language differences, these dual ports promise to make Ruby the new widely accepted scripting language.

Dienstag, 11. September 2007

JRuby: Suns Strategie

Ein älteres, aber wichtiges Interview mit Tim Bray, Suns “Director of Web Technology ” in der die Strategie von Sun in Bezug auf Java/JRuby erläutert wird. Bray hat die JRuby-Core-Entwickler zu Sun geholt.

Montag, 10. September 2007

Samstag, 8. September 2007

Deployment einer Rails-Anwendung direkt aus netbeans als .war file für Glassfish

Hier eine Schritt-für-Schritt-Anleitung von Arun Gupta zum Bau eines .war-Files direkt aus netbeans, das dann auf dem Glassfish Application-Server deployt wird.

Was ist JRuby?

Zunächst einmal nur ein Ruby-Interpreter, geschrieben in Java.
In Bullet Points:


  • Ein 1.8.5 kompatibler Ruby Interpreter in 100% pure Java

  • Die meisten builtin Ruby-Klassen sind vorhanden

  • Support für Java-Klassen Aufruf direkt aus Ruby

  • Bean Scripting Framework (BSF) support


Die aktuelle Version ist 1.0.1.

Thoughtworks bietet Support für JRuby / Ruby / Rails

Thoughtworks hat den Service RubyWorks gestartet. Dort ist zum einen der RubyWorks Production Stack verfügbar, der das Deployment von Rails standardisiert. Zusätzlich kann man Support für beliebige JRuby-Applikationen einkaufen. Bei Thoughtworks arbeitet u.a. Ola Bini, einer der Core-Entwickler von JRuby. Man ist also in guten Händen.

Freitag, 7. September 2007

JRuby auf der Railsconf Europe, 17.-19.9.2007

Auf der Railsconf Europe ist JRuby gut vertreten. Es gibt Vorträge der JRuby-Entwickler Ola Bini: “JRuby on Rails at ThoughtWorks”, Thomas Enebo und Charles Nutter:“JRuby on Rails: A Path to Adoption”. Enebo und Nutter sind von Sun angestellt, um JRuby weiterzubringen. Ein weiterer Sun-Mitarbeiter (Brian Leonard) hält einen einführenden Vortrag An Introduction to JRuby on Rails: This Time with Tools

Warbler + Ruby on Rails = .war-File

Um eine Ruby on Rails Applikation als .war-File auf einem Java-Server (z.B. tomcat) zu deployen gibt es jetzt “Warbler”. Warbler holt den aktuellen JRuby-Interpreter, packt das Goldspike-Plugin dazu und baut daraus ein .war-File, das direkt auf einem Java-Application-Server deployt werden kann.

Donnerstag, 6. September 2007

netbeans IDE: auch für Ruby / Rails

Das netbeans-Team arbeitet an Erweiterungen der IDE, die Ruby on Rails-Projekte wesentlich erleichtert. Alle Rails-Generatoren können über die Oberfläche aufgerufen werden, es kann wahlweise JRuby oder das “normale” Ruby verwendet werden. Die Vervollständigungsfunktion für Ruby
ist genial. Das ganze ist noch im beta-Test, aber es kann schon sehr gut damit gearbeitet werden.

Tipp: Die “Ruby-Only”-Version ist fix & fertig konfiguriert, JRuby ist integriert. Nur noch auspacken und starten.