Ruby (Programmiersprache)
Ruby ist eine objektorientiere, interpretierte Programmiersprache. Sie hat ihre Wurzeln in Perl, Smalltalk, Python, LISP und CLU, wobei Perl die wichtigste darstellt.
Merkmale der Sprache
- Einfache Syntax
- Komplett Objektorientiert
- Operatorüberladung
- Ausnahmebehandlung über Exceptions
- Garbage Collection
- Unterstützung der regulären Ausdrücke von Perl
- Hohe Portabilität (z.B. Unix, Windows, DOS, Mac OS X, OS/2, Amiga usw.)
- Steht unter der GPL
- Einheitliche Anbindungen an die meisten Datenbanken
- Weites Einsatzgebiet (Kommandozeile, grafische Oberfläche, Webapplikation)
- Interaktive Rubykonsole (irb)
Ruby ist komplett objektorientiert. Alle Daten sind Objekte, anders als bei Java oder Python sogar die Basistypen. Jede Funktion ist eine Methode. Mit sehr wenigen Ausnahmen enthält jede Variable eine Referenz auf das Objekt, nicht das Objekt selbst. Auch wenn Ruby selbst objektorientiert ist, kann man auch struktuiert und funktional programmieren.
Die Sprache wurde von Yukihiro "Matz" Matsumoto am 24. Februar 1993 entwickelt. 1995 wurde sie erstmals veröffentlicht, die aktuell stabile Version ist 1.8.0, die auf der offiziellen Seite heruntergeladen werden kann. Matsumoto entwickelte Ruby nach dem "principle of least surprise", dem Prinzip der geringsten Überraschung, womit gemeint ist, dass die Sprache frei von Fallen und Widersprüchen sein soll, mit denen man bei anderen Programmiersprachen zu kämpfen hat. Der Name "Ruby" (engl. für Rubin) ist übrigens kein Acronym, sondern eine Anspielung auf Perl (engl. Perle).
Syntax
Der Syntax von Ruby ist sehr frei. Anweisungen müssen nicht wie in vielen Sprachen nicht durch ein Semikolon abgeschlossen werden, solange nur einer pro Zeile angegeben ist, und Parameter von Methoden müssen nicht in Klammern gesetzt werden. Verboten ist es aber auch nicht, so dass man es zur Verdeutlichung jederzeit tun kann. Weiterhin fällt auf, dass bei Funktionen und Methoden der Rückgabewert nicht explizit angeben werden muss. Stattdessen wird automatisch der Wert der letzten Anweisung zurückgeben.
Anders als in Python werden Blockstrukturen aber nicht durch die Einrückung selbst bestimmt, sondern wie bei den meisten Sprachen durch Schlüsselwörter (begin...end, while...end, ...).
Programmierbeispiele
>> -199.abs => 199 >> "Ruby ist cool".length => 13 >> "Rick".index("c") => 2 >> "Wort".swapcase => "wORT" >> "rentner-rennen".reverse.capitalize => "Nenner-rentner" >> #Arrays ?> [11, 5, 7, 2, 13, 3].sort => [2, 3, 5, 7, 11, 13] >> [11, 5, 7, 2, 13, 3].sort.reverse => [13, 11, 7, 5, 3, 2] >> ["Eins", "Zwei", "Drei"] + ["Eins", "Vier"] - ["Eins"] => ["Zwei", "Drei", "Vier"] >> # Hashes (Assoziative Arrays) ?> {"vorname" => "Heribert", "nachname"=>"Maier", "alter"=>43} => {"alter"=>43, "nachname"=>"Maier", "vorname"=>"Heribert"} # Gibt zehn mal hintereinander "Hello, world!" in einer neuen Zeile aus 10.times { string1 = "Hello world".gsub(" ", ", ") # Ersetze alle Leerzeichen (' ') durch # Komma mit Leerzeichen (', ') und speichere # in string1 string1 += "!" # Hänge "!" an string1 puts string1 # Ausgabe der Variable string1, gefolgt von # einem Zeilenumbruch }
Bücher
- Programming Ruby - The Pragmatic Programmer's Guide von David Thomas und Andrew Hunt. ISBN 0-201-71089-7 (Onlineversion - Übersetzung - Diese wurde von Freiwilligen übersetzt und ist daher nicht genau das folgende Buch)
- Programmieren mit Ruby - Handbuch für den Pragmatischen Programmierer von David Thomas und Andrew Hunt ISBN 3-827-31965-X
- Programmieren mit Ruby von Armin Röhrl, Stefan Schmiedl und Clemens Wyss ISBN 3-898-64151-1 (Onlineversion)
Links
- http://www.ruby-lang.org/en/ - Ruby Homepage
- http://www.rubycentral.com/faq/rubyfaqall.html - Ausführliches FAQ, allerdings auf Englisch
- http://www.rubygarden.org/ - Ruby Garden
- http://www.rubyforen.de/ - Deutsches Rubyforum
Siehe auch: Jack Ruby, der durch den Mord an Lee Harvey Oswald zur Verdunklung des Mordes an John F. Kennedy beitrug