Herzlich Willkommen zum Ruby-Tutorial.

Ruby-Logo

Ruby ist eine leicht zu erlernende Programmiersprache, die in den letzten Jahren stark an Popularität gewonnen hat und mittlerweile zu den Top-10 der beliebtesten Programmiersprachen gehört. [1]

Auch wenn Ruby von Anfängern sehr gut zu erlernen ist und als erste Programmiersprache sehr gut geeignet ist, gibt es keine Beschränkungen in den Fähigkeiten der Sprache. Durch den Schwerpunkt auf objektorientierte Programmierung sowie ein ständig wachsende Liste von Ruby-Bibliotheken gibt es keine Einschränkungen bei den möglichen Programmen.

Ausgeklügelte Funktionen zur Meta-Programmierung machen Ruby zu einem idealen Ausgangspunkt für eigene Programmier- und Konfigurationssprachen, was sich vor allem die vielen Web-Frameworks für Ruby zunutze gemacht haben.

Dazu gehören beispielsweise Ruby on Rails und Sinatra, die auf Ruby zur Entwicklung von dynamischen Web-Anwendungen aufbauen.

Vorkenntnisse

Dieses Tutorial richtet sich an Leute, die noch keine Vorkenntnisse in Ruby haben und die Sprache von Grund auf lernen möchten. Kenntnisse in anderen Programmiersprachen sind hilfreich, aber nicht notwendig.

Für dieses Tutorial benötigen Sie sichere (Windows-)PC-Kenntnisse, z.B. sollten Sie in der Lage sein, Programme zu starten, neue Ordner anzulegen und Programme aus dem Internet herunterzuladen und zu installieren.

Hinweis: Dieses Tutorial ist noch im Aufbau und daher noch nicht vollständig.

Vorbereitungen

Bevor Sie Ihr erstes Ruby-Programm schreiben, muss der Ruby-Interpreter auf Ihrem Rechner installiert sein. Außerdem benötigen Sie einen Text-Editor, um Ihre Ruby-Programme schreiben zu können.

Installation

Sie benötigen folgende Programme:

  • Ruby-Interpreter (hier: Ruby für Windows)

  • Text-Editor (hier: Notepad++)

Ruby

  1. Laden Sie Ruby für Windows von der Ruby-Installer-Homepage herunter: http://rubyinstaller.org/downloads/

Bitte verwenden Sie nicht die 64-Bit-Version. Auch dann nicht, wenn Sie über ein 64-Bit-fähiges Windows verfügen. Andernfalls können später einige Ruby-Erweiterungen nicht installiert werden.
  1. Starten Sie das heruntergeladene Installationsprogramm und installieren Sie Ruby. Verwenden Sie dabei die Einstellungen, die vom Installationsprogramm vorgegeben werden.

Notepad++

  1. Laden Sie Notepad[]++ von der Notepad++-Homepage herunter: http://notepad-plus-plus.org/download/

  2. Starten Sie das heruntergeladene Installationsprogramm und installieren Sie Notepad++.

Optional: ConEmu

Ruby wird von der Eingabeaufforderung heraus gestartet. Die Windows-Eingabeaufforderung ist jedoch äußerst spartanisch gehalten und daher recht unkomfortabel.

Wenn Sie möchten, können Sie sich ConEmu [2] herunterladen. Dieses Programm erweitert die Windows-Eingabeaufforderung um viele nützliche Funktion und bringt sie auch optisch in das 21. Jahrhundert.

Arbeitsbereich einrichten

Im Laufe dieses Tutorials werden Sie viele neue Dateien anlegen. Deshalb sollten Sie sich zuerst einen eigenen Ordner für diese Dateien anlegen. Dieser Ordner kann unter "Eigene Dateien" angelegt werden, ich empfehle Ihnen jedoch, stattdessen einen Ordner direkt im Laufwerk C:\ anzulegen, z.B. C:\Tutorial. Dadurch vermeiden Sie später Tipparbeit.

Das erste Programm starten

Um Ihr allererstes Ruby-Programm zu starten, gehen Sie wie folgt vor:

  1. Starten Sie Notepad++

  2. Legen Sie dort ein neues leeres Dokument an.

  3. Kopieren Sie den folgenden Text in das gerade angelegte leere Dokument

# Ein erstes Ruby-Programm
puts "Herzlichen Glückwunsch."
puts "Ihre Ruby-Installation funktioniert."
  1. Speichern Sie das Dokument in Ihrem Tutorial-Ordner. Verwenden Sie den Dateinamen tutorial1.rb.

  1. Starten Sie die Eingabeaufforderung. (Alternativ auch ConEmu). Sie finden die Eingabeaufforderung/ConEmu im Startmenü von Windows.

  2. Wechseln Sie zu Ihrem Ruby-Tutorial-Ordner, den Sie zuvor angelegt haben. Geben Sie dazu cd c:\Tutorial ein und drücken Sie die Eingabetaste. (Eingabe)

  3. Starten Sie den Ruby-Interpreter. Geben Sie dazu ruby tutorial1.rb und bestätigen Sie diesen Befehl mit Eingabe.

  1. Wenn alles erfolgreich war, erscheint die zuvor kopierte Meldung auf dem Bildschirm.

Lassen Sie die Eingabeaufforderung geöffnet. Wenn Sie Ihr Ruby-Programm erneut ausführen möchten, brauchen Sie nur den Befehl ruby tutorial1.rb Eingabe erneut ausführen. Die vorhergehenden Schritte sind nur notwendig, falls Sie die Eingabeaufforderung zwischendurch wieder geschlossen haben.

Im weiteren Lauf des Tutorials werden Sie immer wieder Ruby-Programme in der gerade dargestellten Weise ausführen. Wenn Sie sich ein wenig mit Windows auskennen, können Sie sich mit ein paar Tricks das Leben leichter machen:

  • Sie können den Ausführen-Dialog von Windows verwenden, um die Eingabeaufforderung zu starten. Drücken Sie dazu Win+R und tragen Sie in das Feld "Öffnen" entweder "cmd" oder "conemu64" ein und klicken dann auf OK.

  • Legen Sie sich Verknüpfungen zu Notepad++ und zur Eingabeaufforderung auf dem Desktop an. (Tipp: Setzen Sie das Arbeitsverzeichnis der Eingabeaufforderung auf Ihren Tutorial-Ordner und Sie ersparen sich das cd c:\Tutorial am Anfang)

Ruby-Quellcode

Nachdem Sie nun erfolgreich Ihr erstes Ruby-Programm ausgeführt haben, können wir auch schon etwas tiefer in die Programmiersprache "Ruby" einsteigen.

Im vorherigen Kapitel haben Sie dieses Programm ausgeführt:

# Ein erstes Ruby-Programm
puts "Herzlichen Glückwunsch."
puts "Ihre Ruby-Installation funktioniert."

An diesem Programm können Sie bereits eine wichtige Eigenschaften von Ruby ablesen. Es gilt die Faustregel "Eine Zeile = eine Anweisung".

Die erste Zeile ist ein Kommentar.

# Ein erstes Ruby-Programm

Kommentare werden vom Ruby-Interpreter ignoriert und haben somit keine Auswirkungen auf das Programm. Sie werden mit einem Raute-Zeichen gestartet (#) und laufen bis zum Ende der Zeile.

Die zweite Zeile enthält die erste echte Ruby-Anweisung und zwar einen Funktionsaufruf:

puts "Herzlichen Glückwunsch."

Die Funktion puts (für put string) gibt eine Meldung auf dem Bildschirm aus. Die gewünschte Meldung wird als Parameter übergeben. In diesem Beispiel geben wir einen Text aus, eine sogenannte Zeichenkette oder auch String genannt. Zeichenketten werden in Ruby durch doppelte Anführungszeichen markiert.

Die Funktion puts ist eine von vielen eingebauten Funktionen von Ruby und wir werden sie im weiteren Verlauf immer wieder zur Ausgabe verwenden.

Parameter dürfen in Klammern gesetzt werden. Die beiden folgenden Code-Zeilen sind daher in ihrer Auswirkung identisch:

puts "Ihre Ruby-Installation funktioniert."
puts("Ihre Ruby-Installation funktioniert.")

Welche Sie Variante bevorzugen sollten, bleibt Ihrem persönlichen Geschmack überlassen. Die Variante ohne Klammern sieht ein wenig aufgeräumter aus, sie kann jedoch bei mehreren geschachtelten Funktionsaufrufen zu Mehrdeutigkeiten führen.

Ruby-Programmierer aus aller Welt achten im allgemeinen sehr auf die Ästhetik ihrer Quellcodes. Schöner und lesbarer Code gilt als ebenso erstrebenswert wie die Programmfunktionalität an sich.

Benutzereingaben

Ein wesentliches Merkmal aller Computer-Programme ist die Ein- und Ausgabe von Informationen. Die Ausgabe von Informationen konnten Sie in den vorhergehenden Kapitel bereits an Hand der puts-Funktion beobachten.

Daher fahren wir jetzt mit der Eingabe von Daten fort.

  1. Legen Sie in Notepad++ eine neue Datei an.

  2. Kopieren Sie diesen Ruby-Quellcode in die neue Datei

puts "Wie lautet Ihr Name?"
eingabe = gets
puts "Hallo " + eingabe
  1. Speichern Sie diese Datei unter dem Namen tutorial2.rb

  1. Wechseln Sie zur Eingabeaufforderung/ConEmu und führen Sie dieses Programm aus. (Mit ruby tutorial2.rb Eingabe)

Das Ruby-Programm gibt den Text "Wie lautet Ihr Name?" auf dem Bildschirm aus. Danach hält es an und wartet auf eine Eingabe durch den Benutzer.

  1. Geben Sie deshalb Ihren Namen ein, z.B. Martin, und bestätigen Sie ihn mit Eingabe.

Das Ruby-Programm gibt den Text "Hallo Martin" auf dem Bildschirm aus und beendet dann.

Schauen wir uns zunächst die folgende Zeile an:

eingabe = gets

Hier befinden sich gleich drei neue Konzepte:

  1. Eine Variable (eingabe)

  2. Eine Zuweisung (=)

  3. Ein Funktionsaufruf (gets) mit Rückgabewert

Um die Auswirkung dieser Zeile zu verstehen, müssen wir sie von rechts nach links lesen.

Die Funktion gets (für get string) ist das Gegenstück zu puts. Anstatt einen Text auf dem Bildschirm auszugeben, wird ein Text von der Tastatur eingelesen. Wenn die gets-Funktion aufgerufen wird, speichert Ruby alle Tastatureingaben bis Eingabe gedrückt wird.

Der eingegebene Text steht als sogenannter Rückgabewert zur Verfügung. Wenn eine Funktion in Ruby beendet ist, gibt sie einen solchen Rückgabewert zurück.

In unserem Fall möchten wir den Rückgabewert, also den eingegebenen Namen, später noch einmal verwenden. Deshalb müssen wir den Rückgabewert irgendwo ablegen und später zurückholen.

Das bringt uns zum nächsten Schritt: Der sogenannte Zuweisungsoperator = schreibt den Wert auf der rechten Seite einer Variablen auf der linken Seite zu. In diesem Fall weisen wir den Rückgabewert von gets der Variable eingabe zu.

Eine Variable ist Bereich im Arbeitsspeicher des Computer, in dem Daten abgelegt und wieder ausgelesen werden können.

puts "Hallo " + eingabe
# Alternative Schreibweise:
puts("Hallo " + eingabe)

Auch die letzte Zeile des Programms müssen wir wieder von rechts nach links lesen:

  1. Die Variable eingabe wird ausgelesen.

  2. Der +-Operator verbindet die Zeichenkette "Hallo " mit der Zeichenkette aus der Variable.

  3. Die so verketteten Texte werden mit puts angezeigt.

Der +-Operator wird Ihnen vermutlich etwas merkwürdig vorkommen, schließlich erwartet man das Pluszeichen eher im Zusammenhang mit Zahlen. Ruby erkennt jedoch, dass hier nicht zwei Zahlen addiert werden sollen. Stattdessen werden die Zeichenketten "Hallo " und die Zeichenkette aus der Variable eingabe aneinandergehängt.

Diese kombinierte Zeichenkette, z.B. "Hallo Martin", ist der Rückgabewert des +-Operators. Er wird im letzten Schritt der puts-Funktion als Parameter übergeben, die den Text dann in bekannter Weise den Text auf dem Bildschirm anzeigt.

Typen

Ab hier ist das Ruby-Tutorial noch unvollständig und nur stichpunktartig fertiggestellt.
puts "Dieses Programm berechnet Umfang und Fläche eines Kreises"
puts "Bitte geben Sie den Radius eines Kreises an:"
radius = gets

r = radius.to_f

umfang = 2 * r * 3.1415
fläche = r ** 2 * 3.1415

puts "Eigenschaften des Kreises:"
puts "Radius: ", r
puts "Umfang: ", umfang
puts "Fläche: ", fläche
  • Legen Sie eine neue Datei in Notepad++ an und kopieren Sie den Code in das leere Dokument.

  • Speichern Sie es unter kreis.rb und führen Sie das Programm von der Kommandozeile aus: (ruby kreis.rb)

  • Das Programm fragt nach einem Kreis-Radius. Falls Sie eine Dezimalzahl (mit Komma) eingeben möchten, achten Sie darauf, dass Sie hier stattdessen einen Punkt verwenden müssen.

Erklärungen

  • Methodenaufruf

to_f

Variablen-Typen

  • radius: Zeichenkette

  • r, umfang, fläche: Gleitkomma

Mathematische Operatoren

  • Multiplikation

  • Potenz

Im Programm-Code ist wie auch beim Verarbeiten der Eingabe mit to_f der Punkt als Dezimaltrennzeichen vorgeschrieben.

Variablen

Regeln für Variablen-Namen:

  • Kann alle Unicode-Buchstaben enthalten, z.B. Umlaute oder mathematische Symbole wie Σ.

  • Muss mit Kleinbuchstaben beginnen

  • Soll Unterstriche verwenden, z.B. kreis_radius anstatt kreisRadius

Operatoren

Konstanten

  1. Öffnen Sie wieder tutorial2.rb und verändern Sie das Programm wie folgt.

  2. Fügen Sie diese Zeile an den Anfang

PI = 3.1415
  1. Ersetzen Sie

umfang = 2 * r * 3.1415
fläche = r ** 2 * 3.1415

durch

umfang = 2 * r * PI
fläche = r ** 2 * PI

Regeln für Konstanten-Namen:

  • Kann alle Unicode-Buchstaben enthalten

  • Muss mit Großbuchstaben beginnen

  • Soll nur Großbuchstaben verwenden

  • Soll Unterstriche verwenden, z.B. SYSTEM_SPRACHE


1. http://redmonk.com/sogrady/category/programming-languages/
2. https://code.google.com/p/conemu-maximus5/