Rails 5.1 Consulting und Schulung vom Autor:
www.wintermeyer-consulting.de/rails/

1.1. Ruby in der Version 1.8.x, 1.9.2 oder 1.9.3?

Schnelle Antwort: Nehmen Sie Ruby 1.9.3 oder 1.9.2.
Viele Bücher und Dokumentationen, die Sie bereits gesehen haben, funktionierten auch mit Ruby 1.8.x. Warum machen wir jetzt so ein Bohei und nehmen nicht einfach Ruby 1.8.x – was mit etwas Glück sogar schon auf Ihrem System installiert ist? So groß ist der Unterschied zwischen 1.9.2 bzw. 1.9.3 und 1.8.x rein mathematisch gesehen ja gar nicht (die Zahl 1,9 ist zu 1,8 nur rund 5 % höher)?!
Hier die Antworten:
  • Der Unterschied zwischen Ruby 1.9.x und Ruby 1.8.x ist gigantisch. Lassen Sie sich durch die reine Versionszahl nicht beirren. Um mal das einfachste Argument herauszunehmen: Ruby 1.9.3 ist viel performanter als Ruby 1.8.x. Was heißt viel? Je nach Benchmark zwischen 2- und 6-mal so schnell (in Einzelbereichen sogar Faktor 10 und mehr).
  • Viele Rails-Autoren kommen aus dem englischsprachigen Raum und da kommt man mit Ruby 1.8.x und US-ASCII ganz gut zurecht. Für alle anderen Sprachen sieht es aber schlechter aus. Erst mit der Version 1.9.x gibt es eine gute Multi-Encoding-Umgebung. Man muss sogar sagen, dass Ruby 1.9.x so ziemlich jeder anderen Programmiersprache diesbezüglich davonrennt.[1]
  • Rails 4 wird nicht mehr mit Ruby 1.8.x funktionieren. Sie verschließen sich also Upgrade-Möglichkeiten.[2]


[1] Der mäßige Umgang mit UTF-8 und Co. in Ruby 1.8 ist fast schon ironisch. Schließlich ist der Erfinder von Ruby (Yukihiro Matsumoto a.k.a. Matz) ein Japaner, und da sollte man davon ausgehen, dass nicht nur ASCII unterstützt wird. Der Grund für die späte Implementierung waren allerdings die arrogante Art der Entwicklung von UTF-8 bzw. UTF-16. Die entsprechenden Gremien sahen sich am Anfang nicht veranlasst, mal einen tieferen Blick in die asiatische Schriftkultur zu werfen. Deshalb war der erste Wurf für europäische Schriften OK, aber für den asiatischen Kulturraum ein Witz. Es wurde nachgebessert und entsprechend zog auch Ruby nach. Die Multi-Encoding-Unterstützung in Ruby 1.9 ist dann auch so gut, dass man auf andere Programmiersprachen mit Mitleid herabblickt.

[2] Siehe auch https://twitter.com/#!/dhh/status/54618472692449280 Tweet von David Heinemeier Hansson: As a general note, if you're starting a new Rails app, you should be running Ruby 1.9.2. Rails 4 will require it. Ruby 1.8.x is legacy.