Der RC3 von JRuby wurde freigegeben. Damit ist wohl der bedeutungsschwangerste Meilenstein der letzten Jahre erreicht. Es handelt sich hautpsächlich um eine symbolische Versionserhöhung. Seit dem Erscheinen der 0.9.9 wurden hauptsächlich Inkompatibilitäten beseitigt. Wie gut die Implementierung ist, wird von den Entwicklern oft mit Rails, Rubygems und auch Rake bewiesen. Alle diese Programme laufen bereits ohne nachträglchen Änderungen unter JRuby. Auch Coderay konnte nach einer einzigen Änderung direkt unter JRuby verwendet werden. Die Eclipsejünger unter Euch werden sicherlich auch wissen, dass das Ruby Plugin Team in das RDT mithilfe von JRuby viele neue Features einbauen konnte, welche durch die Javabasis Out of the Box ohne einen zusätzlichen Interpreter nun in Eclipse laufen.
Na, sieh mal einer an: CodeGear (alias Borland) will die erste IDE für agile Ruby-on-Rails-Web-2.0-Entwicklung zur Welt bringen. TextMate, ArachnoRuby und RadRails nehmen die wohl nicht ernst? Na ja, schlechte Recherche und Enterprise-Arroganz sind nix neues; rescue nil.
Aber wir reden hier immerhin über einen neuen Bruder von Delphi und JBuilder. Man beachte, dass Python (zB laut TIOBE-Index) schon vor zwei Jahren so beliebt war wie Ruby heute; dennoch sah in Scotts Valley niemand die Notwendigkeit, eine Python-IDE zu entwickeln. Delphi for PHP gibt’s schon.
Was lange schon als Gerücht kursierte, wird nun von CodeGear offiziell bestätigt: Die Firma arbeitet an einer Entwicklungsumgebung für Ruby on Rails, die in der zweiten Jahreshälfte 2007 veröffentlicht werden soll. Die IDE wird vollständigen Support von Ruby on Rails bieten inkl. Codevervollständigung, Refactoring.
Vor langer Zeit (muss so 2000-2003 gewesen sein) habe ich nur mit Delphi gearbeitet. Viele Dinge vermisse ich bis heute…vor allem Form-Designer, Debugger und Online-Hilfe :) Hoffen wir, dass CodeGear mit neuem Wind den Mief aus dem Ruby-IDE-Sumpf vertreibt. Im Allgemeinen lässt sich mit einer Rails-IDE doch auch sicher ganz gut Ruby programmieren ^^
Einen Namen hat das Kind aber bisher nicht. Hey, du da! Web 2.0! Vorschläge?

Eine deutsche Übersetzung von why the lucky stiffs The Hackety Manifesto.
... und er hat etwas mitgebracht. Bei Hackety Hack handelt es sich um eine Art Kinder IDE, welche innerhalb von einzelnen interaktiven Lektionen dem Anwender den Weg zu kleinen Ruby Programme zeigt. Das Feedback welches ich bisher gelesen habe, scheint ausgesprochen gut zu sein. Leider konnte ich das Ganze noch nicht testen, da es im Moment nur für Windows verfügbar ist. Mac OS X und Linux Varianten sind jedoch schon geplant.
Eigentlich möchte ich ungern über jedes kleine Tool was in einer neuen Version released wird etwas schreiben. Bei Radiant kann ich es mir jedoch nicht verkneifen. Und zwar aus dem einfachen Grunde, weil unsere wunderschöne offizielle Webseite auf Basis dieses Rails CMS aufgebaut wurde. Das Programm ist zwar teilweise etwas gewöhnungsbedürftig, bietet jedoch nach der ersten Hürde eine sehr effektive Arbeitsumgebung um “Content” zu erstellen oder zu pflegen. Es wurde nun die Version 0.6 veröffentlicht. Eine beachtliche Liste an Änderungen und Neuigkeiten zeigt, dass die Entwickler nicht nur in der Nase bohren, sondern durch die intensive Nutzung der Applikation stark angeregt wurden.
Die Version 0.9.9 von JRuby wurde heute freigegeben. Damit nähert sich JRuby unaufhaltsam dem seit 5 Jahren wartenden Meilenstein 1.0. Laut Entwickler hat sich die Geschwindkeit teilweise von der 0.9.8 um 40% gesteigert. Es werden (wie schon in der 0.9.8) bis zu 98% aller Testcases von Rails erfolgreich absolviert und ab heute läuft sogar Mephisto auf einer JRuby Rails Platform (also die gleiche Blogsoftware die wir hier auch verwenden). Und nun kommt der Knüller! Wie ich erst Gestern durch Zufall in einem Gespräch mit Murphy erfahren habe, verwendet JRuby seit kurzem eine neue RegExp Maschine die eine höhere Kompatibilität zu der MRI Version besitzt. Bis dato wurde die Java Engine verwendet, welche sich teilweise stark von der Ruby Version unterscheidet. Diese Änderung führt dazu, dass Murphys CodeRay ohne schwerwiegende Probleme mit JRuby zusammen läuft. Die gesamte Scanner Testsuite wird fehlerfrei durchgeführt (bei einigen funktionalen Tests gibt es jedoch noch Probleme) mit dem folgenden Ergebnis:
Ganz ohne Aufsehen wurde vor einigen Tagen ein kleines Helferlein für die Ruby-Werkzeugkiste veröffentlicht: Unroller. Zweck dieser Ruby-Bibliothek ist menschenlesbare Traces der Programmausführung zu generieren – und das auch noch in bunt:
Unroller eignet sich besonders zum Analysieren von unbekannten Bibliotheken oder auch zur Fehlersuche. Installiert wird die Bibliothek einfach via gem1 (gem install unroller).
Es gibt zwei grundlegende Ansätze die Trace-Funktionalität zu nutzen: Entweder globales Tracing, unter Verwendung der Methoden Unroller.trace zum Einschalten und Unroller.trace_off zum Ausschalten der Trace-Ausgabe oder lokales Tracing, indem der Methode Unroller.trace ein Block mitgegeben wird und die Ausgabe nur für die darin aufgerufenen Methoden stattfindet. Die erste Möglichkeit ist insbesondere für längere Programmstücke geeignet, während sich letztere besonders gut zum Testen einzelner Methoden benutzen lässt, wie obiges Beispiel zeigt.
Für die Feinabstimmung der Ausgabe gibt es noch diverse Optionen, z. B. um bestimmte Klassen oder Methoden von der Ausgabe auszuschließen oder die Ausgabetiefe zu begrenzen. Weitere Infos dazu sind in der API-Doku nachzulesen.
1 Unter Windows muss außerdem win32console installiert sein.
Ich bin ein großer Fan des Spruchs "Try that in Java!", mit dem ich andeuten will, dass Ruby viele Dinge sehr viel einfacher und dadurch erst denkbar (=möglich) macht. Dinge wie Rails, Markaby, selbst CodeRay.
Heute muss ich sagen: "Try that in Ruby!". Licenser, ein weiteres cYcnus-Mitglied, hat einen schönen Artikel über seine schlechten Erfahrungen mit GUI in Ruby geschrieben (auf Englisch.) Übrigends ist das Blog auch sonst einen Besuch wert! :)
Fazit: Es fehlt was in Ruby. Nämlich ein gutes, wirklich plattform-unabhängiges Framework. Wenn ich richtig gehört habe, haben Perl und Python ähnliche Probleme. Wer schöne GUIs entwerfen will, benutzt wohl lieber Delphi oder Java.
Lieber Weihnachtsmann! Ich wünsche mir ein ganz einfaches, schnelles, schönes, gut dokumentiertes freies GUI-Framework, das die GUI-Programmierung so einfach macht wie Rails die Web-Programmierung. Dankeschön!
Soeben ist die Version 1.2.0 von Capistrano erschienen. Als Höhepunkt bringt dieses neue Release einen Task namens shell mit. Hiermit ist es möglich eine Art Capistrano Shell zu aktivieren. Auf dieser werden sämtliche Kommandos direkt an den oder die Server versendet:
$ cap -v shell
cap> uptime
...
cap> !deploy
...
cap> exit $
Bei Capistrano handelt es sich um ein Deployment Tool welches ursprünglich für Rails Applikationen geschrieben wurde. Unabhängig davon lässt es sich jedoch auch dazu einsetzen andere Web-Applikationen zu deployen*. Einige kennen vielleicht noch das Program Switchtower. Capistrano == Switchtower.
Â* denglisch ist Trumpf
Für Leute wie mich, die einen Editor ohne direkten Ruby Debugger benutzen gibt es eine nützliche Alternative zur Shell.
Mit Mitchell's Ruby GUI Debugger (kurz MrGuid) steht ein in GTK geschriebenes Frontend für den Ruby Debugger bereit. Dieses läuft unter Mac OS X, Linux und Windows (eigentlich überall wo GTK und Ruby läuft). Als Zusatz gibt es dann noch eine Remotefunktion um über das Netzwerk eine Applikation auf einem anderen Rechner zu debuggen.
Ab heute kann man CodeRay wieder testen:
Ihr könnt ein Stück Code eurer Wahl hineinkopieren (bis 20 KB), Titel und Autor angeben und die Sprache wählen (Ruby, C, HTML, RHTML, Nitro-XHTML, Delphi und Plaintext sind zur Zeit verfügbar.) Der Code wird dann als Ray gespeichert, bunt gefärbt und ist für alle sichtbar.
"Rays" ist also eine Art No-Paste-Wiki. Nichts neues - bis darauf, dass jeder die vorhandenen Posts editieren kann.
Für das Highlighting sorgt CodeRay 0.7.1. Es wird nichts gecacht!
Achso: Das Update ist ein Schritt auf dem Weg zu CodeRay 0.8! :)<7p>
Achso 2: Fehler, die die Website betreffen, bitte melden! (murphy rubychan de) Gerade Sicherheitslücken (XSS etc.) befürchte ich noch. Ich habe mir zwar Mühe gegeben, habe aber noch nicht allzuviel Erfahrung mit offenen interaktiven Websites.<7p>
Fehler bezüglich CodeRay könnt ihr natürlich auch melden, aber vielleicht wartet ihr lieber, bis mein Trac fertig ist. ;)
Es gibt auch einen offiziellen CodeRay-Banner, falls ihr CodeRay bereits einsetzt und Werbung machen wollt. Am besten verlinkt ihr den direkt mit coderay.rubychan.de, der neuen offiziellen Website.
Für alle die ihr sauberes System nicht “verunreinigen” wollen, aber trotzdem interesse an Ruby on Rails haben sei www.railslivecd.org ans Herz gelegt.
Die Leute hinter dem Projekt haben sich die Mühe gemacht eine Live-CD zu erstellen mit der man nach belieben mit Rails rumspielen kann ohne etwas installieren zu müssen. Unter anderem gibt es auch gleich ein VMWare Images mit dem es möglich ist in einer virtuellen Umgebung die CD zu starten. Benötigt wird dafür nur der VMWare Player. Basieren tut das Ganze auf der Linux Distribution PCLinuxOS.
Ich selber habe das ganze noch nicht ausprobiert, über Feedback wie sich diese Live-CD schlägt wäre ich aber erfreut.
Bram Moolenaar scheint Ruby zu mögen. Vim hat ja schon seit langem Ruby-Support, aber nun ist Vim 7.0 fertig und folgendes steht in der offiziellen Ankündigung:
Since Vim 6.4 many new features have been added. To mention a few: ... - Intelligent completion for C, HTML, Ruby, Python, PHP, etc. ...
Man beachte die Reihenfolge! Und: Java == etc. I love my Vim. :)
Allgemein lassen wir hier ja kein gutes Haar an Java stehen aber da heute Sonntag ist, werde ich mal die Vorzüge von Java kurz erwähnen und zeigen wie wir diese in Ruby verwenden können.
Zu beginn möchte ich kurz erwähnen was Java zu einer sehr interessanten Plattform macht. Wir hätten da zum einen die riesige Klassenbibliothek, welche für sogut wie jeden Bereich das eine oder andere Hilfsmittel bereit stellt. Ich weiß aktuell nicht um wieviele tausend Klassen es sich dabei handelt, ich kann jedoch versichern, dass es deutlich mehr Klassen für Java als für Ruby gibt. Zum anderen bietet Java die Möglichkeit GUI's zu schreiben die auf jeder Plattform laufen, auf der auch eine JVM zur Verfügung steht. Das sind alles Dinge von denen die Ruby Community schon länger träumt. Aber Achtung! Wir können aufwachen, denn das alles lässt sich schon seit langer Zeit von Ruby aus nutzen.
Der Schlüssel der dies möglich macht, nennt sich JRuby. Es handelt sich hierbei um einen komplett eigenständigen Interpreter welcher vollständig in Java geschrieben ist. Und da der Interpreter selbst in einer Java Umgebung läuft, bietet er gleichzeitig die Möglichkeit an, auf sämtliche Java Bibliotheken zuzugreifen. Dezeitig gibt es den Interpreter 'jruby' und seit der Version 0.8.3 auch einen Klone von irb namens 'jirb'. Weiterhin wird gerade intensiv versucht das komplette Rails Framwork auf JRuby zum laufen zu bringen.
Zum Schluß sei eventuell noch angemerkt, dass es sich bei JRuby wirklich um eine vollständige Neuentwicklung handelt und folglich die Kompatibilität zu dem orginal Interpreter nicht bei 100% liegen kann. Trotzdem finde ich das Projekt sehr interessant, denn wenn man mal überlegt das man nun mithilfe von jirb seinen Java Code dynamisch auf der Kommandozeile testen kann, ganze ohne Kompilierungsvorgang, sollte klar sein was für ein Potential in diesem Tool liegt.