ZDNet: Sie sagten, ein großer Anteil beim Wechsel zu Ruby bestand einfach darin, dass es Sie glücklich machte. Dieser Faktor wird bei der Diskussion über die Vorteile einer Sprache gegenüber der anderen nicht so häufig genannt – warum ist das wohl so?
Heinemeier Hansson: Die Sprache ist sehr wichtig. Rails ist Rails wegen Ruby. Ruby ist es, das den Arbeitsablauf ermöglicht, die Knappheit, die Schönheit und letztendlich die Freude am Programmieren mit Rails. Während Frameworks in anderen Programmiersprachen bestimmt von dem lernen kann, was wir in Rails getan haben, kann doch die gesamte Erfahrung niemals nachempfunden werden. Sie ist zutiefst mit Ruby verknüpft.
Das soll nicht heißen, dass man kein anderes Framework erstellen kann, dass auch cool oder „besser“ sein kann, je nach der Messlatte, die man dabei anlegen will. Es ist aber trotzdem kein Rails.
Wie auch immer, Ruby macht mich glücklich, weil ich damit wunderschönen Code schreiben kann. Ästhetik und Freude hängen eng zusammen. Es geht nicht nur darum, die Arbeit zu erledigen. Es geht auch darum, mit der Art, in der die Arbeit erledigt wird, zufrieden zu sein. Man muss auch motiviert sein, diese Art zu verbessern, und auf die Ausführung stolz sein können. Mit hässlichem Code kann ich das einfach nicht. Mit Ruby kann ich der Hässlichkeit entfliehen. Und darum kann ich mit Ruby beim Programmieren glücklich sein. Glücklichkeit führt zu Motivation. Motivation führt zu Produktivität.
ZDNet: Warum glauben Sie, ist Ruby nicht bekannter? Man sagte, Rubys „Perl-igkeit“ sei ein bisschen altmodisch, stimmen Sie da zu?
Heinemeier Hansson: Perl hat viele Leute ausgebrannt. Entweder direkt oder über Geschichten, die darüber kursieren. Also ist es nur natürlich, dass die Leute vorsichtig reagieren, wenn sie eine neue Programmiersprache sehen, die nicht verheimlicht, dass sie ein paar Tricks von Perl gelernt hat. Sie nehmen an, dass, da diese eine Funktion vorhanden ist, wie etwa regelmäßige Ausdrücke als Syntaxelemente der ersten Klasse, auch alle die Schwierigkeiten übertragen werden, die sie in der vollständigen Perl-Erfahrung erlebt haben. Aber das ist natürlich dumm.
Ruby hat eine Handvoll Ideen von Perl übernommen und sie in einem Kontext versetzt, in dem ihr Schadenspotenzial deutlich verringert wurde. Auch wenn die Funktionen selbst ähnlich erscheinen, unterscheidet sich der Kontext, in dem sie eingesetzt werden, deutlich genug, sodass die früheren Tendenzen einfach nicht erscheinen. Aber das ist natürlich schwer zu verkaufen. Gebranntes Kind scheut das Feuer.
Um klarzustellen: Ich habe zwar Verständnis für diese Bedenken, aber ich betrachte sie auch als falsch. Ruby hat massenweise gute Ideen von Perl übernommen. Darauf sollten wir stolz sein. Man nimmt die guten Sachen, sortiert sie neu und übernimmt die Oberhand.
ZDNet: Können Sie uns einige spezielle Dinge nennen, die Sie an Ruby mögen, verglichen mit Sprachen wie PHP oder Python?
Heinemeier Hansson: Den Reiz von Ruby kann man nur schwer in wenigen Punkten beschreiben. Warum ist der Ipod so viel angenehmer zu benutzen als die entsprechenden Geräte von Creative? Man kann nur schwer auf ein paar Funktionen zeigen und sagen, hier, darum. Es geht um Ästhetik, Gefühl und Freude.
Aber wenn es sein muss, gibt es schon einige Funktionen von Ruby, die diese Ästhetik bewirken. Am wichtigsten sind die Blocks; anonyme Methoden, die durch ihren Einsatz erklärt werden. Dinge wie die Arbeit mit Sammlungen, der Umgang mit Transaktionen und das Herausstellen von Ressourcen wie Open Files, werden viel sauberer. Wir können domänenspezifische Sprachen erstellen, die eingebettet und dadurch klar und prägnant sind. Blocks sind vermutlich meine Lieblingsfunktion bei Ruby, und die gibt es bei PHP, Python und Java nicht.
Außerdem macht die Einfachheit, mit der man Code schon während der Definition einer Klasse ausführen kann, den Code einfach schöner. Oberhalb dieser Funktion haben wir domänenspezifische Sprachen für verschiedene Aspekte in Rails definiert, wie Assoziationen (has_many, belongs_to), Validierungen (validates_presence_of, validates_length_of), Filter (before_filter, after_filter) und noch mehr.
Insgesamt geben also die Inspirationen aus Perl, die oben genannten Funktionen und der vollständig objektorientierte Ansatz – selbst Zahlen und Zeichenketten sind Objekte in Ruby, im Gegensatz zum Beispiel zu Java – Ruby einen unglaublich reines und angenehmes Gesicht. Man kann umfangreiche Domänenmodelle ohne all das Bausteingefummel und die anstrengende Fleißarbeit aufbauen, die Java und andere statische Sprachen dieser Art zu so einer Plage machen.
Ruby greift das Produktivitätsproblem an, indem die Kernelemente so ausdrucksstark wie möglich werden, sodass der Programmierer nicht auf IDEs und andere Tools zurückgreifen muss, zusätzlich zur Sprache, um seine Arbeit zu erledigen. Nur wenige Programmierer würden heute auch nur in Betracht ziehen, Java ohne Eclipse/IDEA oder C# ohne Visual Studio zu verwenden, aber viele Programmierer sind fröhlich dabei, Ruby-Code in guten Texteditoren zu schreiben, die ohne Spezialisierung für eine bestimmte Sprache erschaffen wurden, wie Textmate in OS X, einer der großen Hits in Ruby/Rails-Kreisen.
Neueste Kommentare
Noch keine Kommentare zu Ruby on Rails: Wie wichtig es ist, 1.0 zu sein
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.