Deutsche comp.lang.ruby-FAQ

Diese FAQ enthält Informationen für diejenigen, die


 * mehr über Ruby erfahren wollen und


 * sich aktiv an comp.lang.ruby oder der Mailingliste ruby-lang beteiligen möchten oder deren Wunsch es ist, bei der Weiterentwicklung von Ruby mitzuhelfen.

Sie können Sie unter http://oss.erdfunkstelle.de/ruby/ im WWW finden, die englischsprachige unter http://rubyhacker.com/clrFAQ.html

Dies ist nicht die FAQ zur Programmiersprache Ruby.

Was ist Ruby?
Ruby ist eine vollständig objektorientierte Hochsprache. Besser gesagt handelt es sich bei Ruby um eine der relativ wenigen rein objektorientierten Sprachen. Trotz dieser konzeptionellen Einfachheit stellt Ruby eine leistungsfähige und praktische Sprache für die Entwicklung von Software dar, die für alle Anforderungen gewappnet ist.

Ruby vereinigt die Vorzüge von Perl, Python, Smalltalk,Eiffel, ADA, CLU und LISP zu einem einleuchtenden, übersichtlichen System, das den Prinzipien des geringsten Aufwands und der erwartungsgemäßen Funktion (principle of least surprise) einen wesentlich höheren Stellenwert einräumt, als die meisten vergleichbaren Sprachen. Anders formuliert: Sie können mit dem gleichen Aufwand wesentlich mehr erreichen und die Wahrscheinlichkeit, dass Ihr Code ein unerwartetes Verhalten zeigt, ist gering. Ruby kann aus diesem Grund leicht erlernt und verwendet werden und ist dennoch ausgereift und leistungsfähig. In Ruby geschriebene Programme zeichnen sich zudem durch hohe Wartungsfreundlichkeit aus.

Ruby bietet neben den üblichen Möglichkeiten der Objektorientierung auch Threads, Singleton-Methoden, Mixins, vollständig integrierte Closures und echte Metaklassen. Ruby besitzt einen mark-and-sweep Garbage Collector, der es Ihnen erspart, den Speicher selbst verwalten zu müssen, und dadurch den Code zuverlässiger macht und das Schreiben von Erweiterungen vereinfacht.

Der langen Rede kurzer Sinn: Ruby bietet ein überaus leistungsfähiges und leicht einzusetzendes objektorientiertes Gerüst, das auf den Schultern von Giganten ruht und die Voraussetzungen dafür schafft, schneller und einfacher als mit den meisten anderen Programmiersprachen ein gesetztes Ziel zu erreichen.

Viele der Menschen, die sich an comp.lang.ruby beteiligen, haben früher Perl, Python, Java oder C++ verwendet oder verwenden diese Sprachen auch weiterhin. Sie können Ihnen mit ihren Erfahrungen beim Umstieg auf oder Einstieg in Ruby zur Seite stehen.

Last but not least ist Ruby eine Programmiersprache für Open-Source-Projekte und stellt seinerseits Freie Software dar.

Internetadressen
Die folgende Liste führt nur eine sehr kleine Auswahl an Adressen auf, die für Ruby relevant sind.


 * Offizielle Ruby-Homepage
 * Folgen Sie den Links zur Dokumentation, zu den Downloads, zum Ruby Application Archive, zu den Archiven der Ruby-Mailinglisten und zu einer Menge weiterer, interessanter Informationen.


 * RubyCentral.com
 * Eine weitere große Site mit Online-Dokumentationen und Links.


 * RubyCentral.org
 * Home of RubyCentral, Inc.


 * RubyGarden
 * Wichtige Wiki-Site mit vielen Informationen


 * Ruby FAQ
 * Die FAQ zur Programmiersprache Ruby.


 * Ruby User's Guide
 * Eine Einführung in Ruby.


 * Ruby Reference Manual
 * Das Ruby-Referenzhandbuch.


 * Ruby core reference
 * Eine Referenz zu Klassen, Modulen und Methoden.

Englischsprachige Bücher
Die nachfolgende Liste englischsprachige Bücher zu Ruby erhebt keinen Anspruch auf Vollständigkeit. Die Titel sind nach Erscheinungsdatum geordnet, das zuerst aufgelistet Buch ist das neueste.


 * Making Use of Ruby
 * Suresh Mahadevan
 * Wiley, 2002
 * ISBN 0-471-21972-X


 * Teach Yourself Ruby in 21 Days
 * Mark Slagell
 * Sam, März 2002
 * ISBN 0672322528


 * Ruby Developer's Guide
 * Michael Neumann, Robert Feldt, Lyle Johnson
 * Publishers Group West, Februar 2002;
 * ISBN 1928994644


 * The Ruby Way
 * Hal Fulton
 * Sams, Dezember 2001
 * ISBN 0672320835


 * Ruby In A Nutshell
 * Yukihiro Matsumoto
 * O'Reilly & Associates, November 2001
 * ISBN 0-596-00214-9


 * Programming Ruby: A Pragmatic Programmers Guide
 * Dave Thomas und Andrew Hunt
 * Addison Wesley, 2000
 * ISBN 0201710897

Das Buch von Thomas und Hunt, das auch unter dem Namen The Pickaxe Book bekannt ist, steht (legal) im Internet zur Verfügung:


 * Eine Onlineversion des Buchs


 * Das Buch als Download


 * Eine Internetseite Errata zum Buch


 * Eine deutsche Übersetzung als Onlineversion

Deutschsprachige Bücher
Die nachfolgende Liste deutschsprachiger Bücher zu Ruby erhebt keinen Anspruch auf Vollständigkeit. Die Titel sind in alphabetischer Reihenfolge der Namen der Autoren angegeben.


 * Das Einsteigerseminar Ruby
 * Dirk Engel and Klaus Spreckelsen
 * verlag moderne industrie
 * ISBN 3-8266-7242-9


 * Programmieren mit Ruby
 * Armin Röhrl, Stefan Schmiedl, Clemens Wyss
 * dpunkt.de, Februar 2002
 * ISBN 3-89864-151-1


 * Programmieren mit Ruby
 * David Thomas, Andrew Hunt
 * Deutsche Übersetzung von Thomas und Hunt: Programming Ruby
 * Addison-Wesley, 2002
 * ISBN 3-8273-1965-X


 * Der Ruby-Atlas
 * Ralf Robert Höppel
 * Springer-Verlag, 2004
 * ISBN 3-540-00762-8

Das Buch von Röhrl, Schmiedl und Wyss steht auch online zur Verfügung.

Sonstiges
Hier können Sie ältere Postings aus comp.lang.ruby oder der Mailingliste ruby-lang (die seit Mitte 2000 miteinander abgeglichen werden) durchsuchen:


 * http://groups.google.com/groups?q=comp.lang.ruby


 * http://blade.nagaokaut.ac.jp/ruby/ruby-talk/index.shtml

Lokale Ruby-Benutzer und -Gruppen in Ihrer Nähe finden Sie unter:


 * http://www.rubygarden.org/ruby?RubyUserGroups

Informationen zu comp.lang.ruby
comp.lang.ruby wurde Anfang Mai 2000 eingerichtet. Conrad Schneiker, der frühere Maintainer der englischsprachigen FAQ, war für den Netz-Papierkram verantwortlich, der bei der Einrichtung dieser Gruppe anfiel. Hier die Übersetzung der offiziellen Charta (bitte beachten Sie, dass nur das englischsprachige Original relevant ist!):

CHARTA: comp.lang.ruby Die Newsgroup comp.lang.ruby widmet sich der Diskussion über die Programmiersprache Ruby und verwandten Themen. Die nachfolgende Liste, die keinen Anspruch auf Vollständigkeit erhebt, zählt Beispiele für relevante Themen auf: * Bugreports * Ankündigungen für Software, die in Ruby geschrieben wurde * Beispiele für Ruby-Code * Anregungen für Ruby-Entwickler * Hilferufe von Neulingen Die Newsgroup wird nicht moderiert. Binaries sind (von GPG oder PGP abgesehen) unzulässig. Werbung ist unzulässig, sofern es sich nicht um Ankündigungen von Produkten handelt, die mit Ruby in Zusammenhang stehen. ENDE DER CHARTA

Richtlinien für Postings nach comp.lang.ruby
Beachten Sie diese Richtlinien auch auf der Mailingliste ruby-list, da diese mit comp.lang.ruby abgeglichen wird.

English spoken
Schreiben Sie in englischer Sprache!

In comp.lang.ruby sind Menschen mit den verschiedensten Muttersprachen aktiv. Aus diesem Grund ist die Verkehrssprache Englisch (wie in der comp.*-Hierarchie üblich).

Der gute Ton
Seien Sie keinesfalls unfreundlich, rücksicht-, takt- oder geschmacklos. Wir möchten, dass dieses Forum ein Hort bleibt, in dem einerseits die zunehmende Zahl von Neulingen, sehr junge Menschen und ihre Lehrer freundliche Aufnahme finden und andererseits Ruby-Cracks mit Code gefüttert werden.

Betreff: Worum geht es?
Verwenden Sie unbedingt eine möglichst aussagekräftige Betreffzeile (Subject:). Fassen Sie dazu den Inhalt des Postings in der Betreffzeile sinnvoll zusammen. Auf diese Weise können andere bereits anhand der Betreffzeile entscheiden, ob sie zu dem betreffenden Thema etwas beitragen können und wollen.


 * Sinnvolle Betreffzeilen
 * Dies sind solche, aus denen der Inhalt des Postings ersichtlich ist:


 * How can I do x with y on z?


 * Problem: did x, expected y, got z.


 * BUG: doing x with module y crashed z.


 * Wenig hilfreiche Betreffzeilen
 * Dies sind solche, die nicht einmal in Ansätzen auf den Inhalt des Postings schließen lassen:


 * Please help!!!
 * Newbie question
 * Need Ruby guru to tell me what's wrong


 * Gängige Kürzel
 * Es hat sich eingebürgert, gegebenenfalls die folgenden Kürzel der Betreffzeile voranzustellen:


 * [ANN] oder ANN: für Ankündigungen (announcements)


 * [BUG] oder BUG: wenn Sie einen Fehler (bug) gefunden haben


 * [OT] oder OT: wenn Sie ein Posting schreiben, das wenig oder nichts mit dem Thema der Newsgroup zu tun hat (off-topic ist)


 * [RCR] oder [rcr] wenn Sie eine Änderung an Ruby selbst vorschlagen wollen (Ruby Change Request)


 * Anfängerfragen
 * Wenn Sie Ruby-Anfänger sind, sollten Sie das bei Ihren Fragen kenntlich machen, da Sie sonst Gefahr laufen, eine für Sie unverständliche Antwort zu erhalten. Am besten fügen Sie an passender Stelle in der Betreffzeile den Hinweis ein, dass es sich um die Frage eines newbie beziehungsweise nuby handelt. Beide Wörter bedeuten Neuling wobei nuby ausschließlich im Zusammenhang mit Ruby verwendet wird und kein korrektes Englisch darstellt.

Formatierunghinweise
Die allgemeinen Formatierungsrichtlinien sind eine Frage des gesunden Menschenverstandes und der Höflichkeit. Sie ermöglichen es Dritten, einen Schriftwechsel nachzuvollziehen (in Echtzeit oder beim Durchsuchen von Archiven).


 * TOFU unerwünscht
 * Als TOFU bezeichnet man Antworten auf eine Mail oder ein Posting, die mit einer Antwort beginnen und dann den kompletten Text der Ausgangsnachricht enthalten (TOFU = Text oben Fullquote unten). Fügen Sie zitierten Text VOR Ihrer Antwort ein und zitieren Sie nur relevante Teile einer Mail.


 * Verwenden Sie reinen Text
 * Nutzen Sie weder HTML, noch RTF oder gar Word. Die meisten Mailprogramme und Newsreader bieten diese Möglichkeit. Sollte das von Ihnen eingesetzte Programm dazu nicht in der Lage sein, verwenden Sie bitte einanderes (freies) Programm oder nutzen Sie einen webbasierten Dienst, der dies ermöglicht.


 * Bandwürmer unerwünscht
 * Schreiben Sie Zeilen mit weniger als 70 Zeichen, es sei denn, eine größere Zeilenlänge ist (etwa bei der Angabe von Internetadressen oder der Wiedergabe von Quellcode) unvermeidlich.


 * Anhänge unerwünscht
 * Verwenden Sie keine Attachments sondern fügen Sie Beispiele aus Dateien direkt in den Text der Mail ein.


 * Verwenden Sie Absätze
 * Die Verwendung von durch Leerzeilen getrennten Absätzen erhöht die Lesbarkeit von Texten.


 * Beschränken Sie sich auf ASCII
 * comp.lang.ruby und ruby-talk werden von Menschen frequentiert, die höchst unterschiedliche Zeichensätze nutzen. Einzig bei Verwendung von ASCII-Zeichen können Sie sicher sein, dass ihre Nachricht für alle lesbar ist.

Wir können leider nicht hellsehen
Wenn Sie bei einem Problem um Hilfe bitten, ist es wichtig, dass Sie von Anfang an alle relevanten Informationen mitteilen. Die übersinnlichen Fähigkeiten der Mitglieder dieser Newsgroup halten sich in engen Grenzen. Bitte achten Sie aber gleichzeitig darauf, sich auf relevante Informationen zu beschränken und das Problem nachvollziehbar, vollständig, kurz und prägnant darzustellen. Sofern angebracht sollten Sie mitteilen


 * welche Ruby-Version (ruby -v) Sie nutzen


 * welchen Compiler in welcher Version Sie verwendet haben, um Ruby zu übersetzen. Bei Kommandozeilenprogrammen können Sie hierfür meist die Option -v oder --version verwenden (beispielsweisegcc --verbose), bei Programmen designed for Windows finden Sie die Versionsnummer in englischen Sprachversionen unter Help -> About und in deutschen unter ? -> Info'.


 * welches Betriebssystem Sie in welcher Version nutzen (uname -a). Geben Sie bei Windows-Versionen unbedingt auch die Sprachversion an. Ein Problem mit einer deutschen Version lässt sich nicht notwendig mit einer englischen Version reproduzieren -und umgekehrt.


 * die ausgegebenen Fehlermeldungen


 * ein möglichst einfaches Beispiel, mit dem sich das Problem reproduzieren lässt

Fehler in Ruby
Sofern Sie einen Fehler in Ruby melden, sollten Sie unbedingt eine Kopie (Cc:) Ihres Postings an ruby-bugs@ruby-lang.org schicken. Prüfen Sie bitte vorher, dass der Fehler noch nicht bekannt ist; die Datenbank mit bereits eingereichten Fehlern finden Sie Internet unter der Adresse http://www.ruby-lang.org/cgi-bin/ruby-bugs.

Suchet, dann werdet ihr finden
Versuchen Sie zunächst mit vertretbarem Aufwand herauszufinden, ob Ihre Frage vielleicht schon einmal gestellt und beantwortet worden ist. Wenn Sie eine schon hundertmal beantwortet Frage stellen, machen Sie sich wahrscheinlich unbeliebt. Je nachdem, worum es geht, sollten Sie auf der Ruby-Homepage, in der Ruby-FAQ und sonstiger Dokumentation suchen, google verwenden, um in älteren comp.lang.ruby-Postings zu suchen und so weiter.

Links
Die Netiquette (in deutscher Sprache) hat eine eigene Homepage unter http://www.usenetverwaltung.org/netiquette/index.html

Näheres zum Zitieren im Usenet finden Sie unter


 * http://learn.to/quote/


 * http://afaik.nimmich.org/usenet/faq/zitieren/

Weitergehende Informationen zur '''Formatierung von Mails und Postings finden Sie unter:


 * http://piology.org/news/


 * http://piology.org/mail/

Einen besonderen Stolperstein bei der Beachtung der Netiquette bildet Microsoft Outlook Express. Die wichtigsten Schwierigkeiten, die dieses Programm verursacht, sind unter http://www.wschmidhuber.de/oeprob/index.html aufgelistet.

Allen Verwendern des Programms seien die häufig gestellten Fragen zu Microsoft Outlook Express wärmstens ans Herz gelegt.

Für Eilige gibt es Erste Schritte für die Benutzung von Outlook Express (das absolut Notwendigste)'''

Wer ist Matz?
Matz (alias Yukihiro Matsumoto) ist derjenige, dem Sie Ruby zu verdanken haben; behandeln Sie ihn pfleglich. Er ist sehr beschäftigt, also haben Sie Geduld, wenn Sie ihm eine Frage stellen. Auf der Ruby-Homepage können Sie mehr über ihn und seine Arbeit erfahren. comp.lang.ruby ist auf seinen Vorschlag hin von Conrad Schneiker gegründet worden. Anders als viele Schwarzseher gedacht hatten, gelang die Einrichtung der Gruppe im ersten Anlauf - mit 200 Ja-Stimmen.

Welche Verbindung besteht zwischen Mailingliste und Newsgroup?
Die Mailingliste existiert länger. Als die Newsgroup eingerichtet wurde, entwickelten sich Mailingliste und Newsgroup auseinander. Mitte 2001 schuf Dave Thomas ein Gateway, das die Newsgroup und die Mailingliste miteinander abglich, indem es alle Postings nach comp.lang.ruby in Mails an ruby-talk und alle Mails an ruby-talk in Postings nach comp.lang.ruby umwandelte. Um dies zu erreichen, waren gerade einmal 200 Zeilen Ruby notwendig. Das Gateway war aufgrund von Fluktuationen im Newsfeed nicht perfekt. Manchmal gingen Nachrichten verloren oder erscheinen doppelt.

Durch den Abgleich enthielt das Online-Archiv der Mailingliste den größten Teil des Traffics der Newsgroup - ausgenommen waren jene Postings, die vor der Einrichtung des Gateways geschrieben worden waren.

Was hat es mit den 5-stelligen Nachrichtennummern auf sich?
Ursprünglich trug jede Nachricht, die an die Mailingliste ausgeliefert wurde, eine Betreffzeile, die mit einem Text wie [ruby-talk:12345] begann.

Die Nachrichtennummern waren praktisch, weil sie in aufsteigender Folge jeweils nur einmal vergeben wurden und damit eine einfache Möglichkeit bildeten, auf eine bestimmte Nachricht zu verweisen. Ihr großer Nachteil bestand darin, dass sie dem Threading im Wege standen. Matz hat sie nach einer Anfang 2002 durchgeführten Abstimmung entfernt.

Die News-Header verweisen weiterhin auf diese Nummer - für den Fall, dass sie jemand suchen sollte. Auf der Mailingliste findet sich die Zahl jetzt im Headerfeld X-Mail-Count:

Sie können auf eine Nachricht verweisen, indem Sie ihre Nummer an die ruby-talk.org-Adresse anhängen. http://ruby-talk.org/12345 beispielsweise verweist auf Nachricht 12345.

comp.lang.ruby/ruby-talk-Slang
Neben den im Usenet und auf Mailinglisten gängigen Akronymen wie IIRC (if I recall correctly; wenn ich mich richtig erinnere), IMHO (in my humble opinion; meiner unmaßgeblichen Meinung nach) oder auch AKA (also known as, alias), gibt es auch einige nur in comp.lang.ruby bzw. ruby-talk übliche Abkürzungen. Weitere Informationen zu den nachfolgend aufgelisteten Abkürzungen finden Sie unter http://www.rubygarden.org/ruby?RubyAbbreviations


 * Coral
 * Anderer Name für das Buch The Ruby Way


 * DRY
 * Don't repeat yourself (wiederhole dich nicht)


 * IANYM
 * I am not Yukihiro Matsumoto (ich bin nicht Yukihiro Matsumoto)


 * irb
 * interactive Ruby shell (interaktive Ruby-Shell)


 * iv.
 * instance variable (Instanzvariable)


 * Nuby
 * newbie to Ruby (Ruby-Neuling)


 * Pickaxe
 * Anderer Name für das Buch Programming Ruby


 * POLS
 * Principle of least surprise (Prinzip der erwartungsgemäßen Funktion, wörtlich: Prinzip der geringsten Überraschung)


 * RAA
 * Ruby application archive (Ruby-Anwendungsarchiv)


 * RAA.succ
 * Ruby application archive successor (Nachfolger für das Ruby-Anwendungsarchiv)


 * RCR
 * Ruby change request (Ruby-Änderungsersuchen, Bitte um eine Änderung an Ruby)


 * Rite
 * Ruby der nächsten Generation (in der Entwicklung)


 * Rubyish
 * nach Ruby-Art, à la Ruby


 * Rubyist
 * Rubyist (Ruby-Anhänger)


 * YAGNI / YANGI / YANGNI
 * You ain't gonna need it (Du brauchst das nicht)


 * YWFWA
 * Yes we freakin' well are - Aber klar doch!

Was verbirgt sich hinter POLS?
POLS ist die Abkürzung für das Principle of Least Surprise, (wörtlich übersetzt: Prinzip der geringsten Überraschung), das bisweilen auch als Law of Least Astonishment (wörtlich übersetzt: Prinzip der geringsten Verwunderung) bezeichnet wird. Im Deutschen kann man den Sinn am ehesten mit Prinzip der erwartungsgmäße Funktion wiedergeben.

Die Bezeichnung ist zwar nicht von der Ruby-Gemeinschaft geprägt worden, wird von dieser jedoch häufig verwendet -teilweise auch zu häufig und fälschlich. Schließlich versucht jede Sprache oder Software, dieses Prinzip auf einer gewissen Ebene zu befolgen. Gibt es ein System, dass bewusst darauf ausgelegt wurde, nicht intuitiv zu sein?

Es ist unpassend, POLS als eine Art Beschwörung zu verwenden, wenn ein Aspekt des Verhaltens von Ruby nicht den persönlichen Erwartungen entspricht. Ruby entwickelt sich permanent weiter und Matz nimmt Vorschläge, Bedürfnisse und Vorschläge immer wieder zum Anlass, Änderungen vorzunehmen. Er lässt sich aber nicht bestechen oder erpressen. Sie können gerne Vorschläge unterbreiten, aber denken Sie genau darüber nach, ob sie wirklich POLS beschwören müssen.

Mailinglisten zu Ruby
Eine Liste von Mailinglisten zu Ruby und Informationen dazu, wie Sie diese abonnieren und wieder abbestellen können, finden Sie unter http://www.ruby-lang.org/en/ml.html

Sollten Ihnen weitere Mailinglisten zu Ruby bekannt sein, teilen Sie dies bitte mit.

Ruby-Benutzerbefragung
Wenn Sie ein Ruby-Neuling sind oder bislang noch nicht am Ruby User Survey, der Ruby-Benutzerbefragung, teilgenommen haben, wäre es nett, wenn Sie sich die Zeit nehmen und anonym etwas über Ihren Programmierhintergrund und Ihre Interessen im Zusammenhang mit Ruby berichten würden. Das Ergebnis wird von Zeit zu Zeit der Ruby-Gemeinschaft mitgeteilt. Das unterstützt uns bei der Hilfe zur Selbsthilfe und bei einer schnelleren Vergrößerung der Ruby-Gemeinschaft zu unser aller Nutzen. Die Benutzerbefragung finden Sie unter http://dev.rubycentral.com/survey.html

Wie finde ich Ruby-Software?
Die wichtigsten Adressen für Ruby-Software sind:


 * Ruby Application Archive (RAA)


 * RubyForge

Wenn Sie dort keine passende Software finden, sollten Sie zunächst bei FreshMeat Station machen. Sollen Sie dort ebenfalls nicht fündig werden, bleibt Ihnen noch die Suche mit Hilfe von Google.

Autor(en)
Diese FAQ wurde von Josef 'Jupp' Schugt auf der Basis der englischsprachigen FAQ geschrieben, die von Conrad Schneiker initiiert wurde und für die nun Hal Fulton verantwortlich ist.

Feedback erwünscht
Korrekturen und Vorschläge sind erwünscht. Behalten Sie aber im Hinterkopf, dass diese FAQ eine kurze und einfache Enführung für Nutzer von comp.lang.ruby sein soll. Die Mailadresse von Josef 'Jupp' Schugt lautet [mailto:jupp@rubyforge.org jupp@rubyforge.org]

Die Mailadresse von Hal Fulton lautet [mailto:hal9000@hypermetrics.com hal9000@hypermetrics.com]

Have fun
Spaß beim ernsthaften (oder auch weniger ernsthaften :-) zu haben, war einer der Gründe, Ruby relativ einfach, einheitlich und trotzdem leistungsfähig zu machen. Hoffentlich helfen Sie dabei mit, dass auch comp.lang.ruby* Spaß macht. Viel Vergnügen.