Ruby: Langsam macht es Spass

Ruby-LogoSeit nun ca. zwei Wochen nehme ich mir die Zeit, mich mal mit meinen Ruby- und Ruby on Rails-Büchern zu beschäftigen. Kurz: Ich lerne Ruby, was ich schon geraume Zeit vorhatte, aber während der Diplomarbeit natürlich nicht auf die Reihe bekommen hatte. Als einer, der eher mit Java vertraut ist, ist mir der Einstieg nicht so leicht gefallen, da mich die Syntax gelinde gesagt verunsichert hat (mehr dazu in meinem ersten Post zu Ruby). Aber mittlerweile ist der Groschen gefallen und ich erkenne die Vorzüge: Ruby (ohne Rails) ist eine ideale Skriptsprache, um schnell mal was zu coden, wenn man nicht gerade ein grosses Projekt anfängt: so eine Art neues BASIC, was die Flexibilität und Schnelligkeit der Entwicklung angeht. Ruby on Rails ist natürlich ein Killer-Web-Framework und ideal zur strukturierten, best-practice-orientierten Webentwicklung geeignet (… es hilft, sich vorher intensiv mit der Sprache Ruby zu beschäftigen).

Und gerade in meiner wachsenden Euphorie für Ruby scheint sich Sun Microsystems, sicher kein Leichtgewicht, deutlich hinter Ruby on Rails zu stellen. Abgesehen davon wird Ruby in der neuesten Version von Mac OS, Leopard, eine stärkere Rolle spielen. Weiteres erkennbares Zeichen: Die Veröffentlichung der NetBeans IDE in der Version 6.0 mit vollständiger Ruby-Unterstützung. Das hat noch gefehlt: Leistungsfähige Editoren (wie TextMate) gibt es bereits, aber eben noch keine integrierte Entwicklungsumgebung, die wirklich komfortabel ist und die Effizienz steigert. Ich freu mich schon auf code completion und Refactoring-Automatismen. Ein Grund für mich, auch mit Java von Eclipse auf NetBeans umzusteigen.

Ruby

RubyHaltet mich für verrückt, aber ich bin jüngst auf den Ruby-Zug aufgesprungen. Das hatte ich mir schon mehrere Monate überlegt, aber immer wieder verschoben. Offengestanden hat mich auch die Syntax von Ruby ein bisschen irritiert (ich habe einen Java-Background), aber nach einigen Demos, ’ner Installation und Experimentieren finde ich Ruby — und natürlich Ruby on Rails — richtig gut. Neben mir liegen nun zwei dicke Ruby-Wälzer, für die ich richtig Kohle gelassen habe. Aber seis drum, ich finds toll 🙂 Last, but not least: Nach meinen Recherchen ist Ruby für das, was ich für das Diplom vorhabe, neben Java die beste Lösung.

Java hat eine statische Typisierung, Ruby (und andere Skriptsprachen wie PHP) eine dynamische. Das heisst: Der Compiler (im Fall von Java) achtet bei der Kompilierung des Programmes strikt drauf, ob der Typ einer Variable auch tatsächlich bekannt ist. Bei Ruby muss das nicht der Fall sein und man muss mehr aufpassen, da diese Überprüfung zur Übersetzungszeit wegfällt. Entscheidend ist jedoch das Laufzeitverhalten in der Praxis; bei Java schmeisst man meist Objekte in einen (oft generischen) Objektcontainer, und dann muss man sich sowieso andere Methoden überlegen, um sicherzustellen, dass Objekte bestimmte Typen aufweisen.

Bei Ruby läuft das stark auf das Unit testing, eine Methode des Softwaretests, hinaus, was wiederum sehr stark mit dem Agile Programming-Paradigma zusammenhängt. Das gefälllt mir, denn genau das (Rapid Application Testing als Teil des Agile-Ansatzes) haben wir jüngst in unseren Informatikvorlesungen gehabt und für sinnvoll befunden. Kerngedanke hierbei ist — korrigiert mich, wenn ich falsch liege — möglichst schnell, in aufeinanderfolgenden Iterationen und nah am Nutzer Software zu erstellen.

Habt ihr schon Erfahrungen mit Ruby oder Ruby on Rails gemacht? Ich bin ganz Ohr…