Viele Menschen verwechseln Ruby und Ruby on Rails. Trotz einiger grundsätzlicher Unterschiede sorgen ihre ähnlichen Namen und ihr gemeinsamer Ursprung immer wieder für Verwirrung – vor allem bei neueren Entwicklern.

Dieser Artikel klärt diese Verwirrung auf, indem er ihre gemeinsame Geschichte erforscht und einen Überblick darüber gibt, wann du mit Ruby programmieren oder direkt mit Ruby on Rails bauen solltest.

Von Ruby zu Rails

Was ist der Unterschied zwischen Ruby und Ruby on Rails?

Ruby ist eine weit verbreitete, objektorientierte Open-Source-Allzweck-Skriptsprache, die auf der Programmiersprache C basiert. Es ist eine plattformübergreifende Sprache, die von Windows, macOS und Linux unterstützt wird. Bei der Entwicklung von Ruby standen Einfachheit und Spaß für die Entwickler/innen im Mittelpunkt und sie ist sehr beliebt bei der Entwicklung von Webanwendungen.

Ruby on Rails, manchmal auch einfach „Rails“ genannt, ist ein Open-Source-Webentwicklungsframework, das auf dem MVC-Architekturmuster (Model-View-Controller) basiert. Du entwickelst mit Rails datenbankgestützte Webanwendungen und verwendest dafür die Sprache Ruby.

Schauen wir uns beides etwas genauer an.

Was ist Ruby?

Ruby wurde 1993 von dem japanischen Softwareprogrammierer Yukihiro Matsumoto, auch bekannt als Matz, entwickelt. Die erste Version von Ruby, Ruby 0.95, wurde am 21. Dezember 1995 veröffentlicht.

Ruby ist wie Perl und Python eine interpretierte Hochsprache, die die Produktivität von Programmierern steigern soll. Matz schuf Ruby als objektorientierte Sprache, ähnlich wie Ada, um ein perfektes Gleichgewicht zwischen Leistung und Einfachheit zu erreichen.

Laut Matz waren seine Leitgedanken bei der Entwicklung von Ruby, eine Programmiersprache zu schaffen, die ihm selbst Spaß macht, die andere Entwickler/innen gerne benutzen und die den Programmieraufwand begrenzt.

In den letzten zehn Jahren hat sich Ruby zu einer der beliebtesten Programmiersprachen entwickelt. Was viele Entwickler/innen an Ruby reizt, ist seine Einfachheit und die niedrige Einstiegshürde für Anfänger/innen.

Im Folgenden wollen wir einige der wichtigsten Eigenschaften von Ruby besprechen.

Vielseitige Programmiersprache

Ruby gilt als eine rein objektorientierte Sprache. Alles in Ruby ist ein Objekt. Selbst primitive Datentypen wie Ganzzahlen haben Methoden, Instanzvariablen und unterstützen die Methodenverkettung.

Du kannst zum Beispiel zwei verschiedene Methoden für eine ganze Zahl verwenden, um den absoluten Wert zu ermitteln und ihn auf die dritte Potenz zu erhöhen – und das alles in einer Zeile. Sieh dir den folgenden Code an. Hier wird abs verwendet, um den absoluten Wert von -3 zu ermitteln, und pow(3) hebt den absoluten Wert von -3 auf die Potenz von 3 an.

value = -3.abs.pow(3)

Ruby ist eine Allzweckprogrammiersprache, mit der Entwickler/innen verschiedene Arten von Anwendungen erstellen können. Sie unterstützt auch den funktionalen Programmieransatz, bei dem Programme aus einer Reihe von Anweisungen bestehen, die in Prozeduren gruppiert sind, die Funktionen entsprechen.

Bibliotheken

Ruby bietet Entwicklern eine große Auswahl an integrierten Bibliotheken. Außerdem gibt es einen Paketmanager namens RubyGems mit einer Sammlung von Paketen, sogenannten Gems, die von anderen Entwicklern in der Ruby-Community erstellt wurden. Diese Gems können auf den Fähigkeiten und Funktionalitäten bestehender Ruby-Anwendungen aufbauen oder diese verändern.

Jedes Gem enthält Code und entsprechende Testwerkzeuge, Dokumentation und eine Gemspec – eine Datei mit Informationen über das Gem. Die Gemspec enthält den Namen des Edelsteins, eine Beschreibung und alle Abhängigkeiten, die er benötigt.

Nehmen wir zum Beispiel das beliebte Gem k8s-client. Ruby-Entwicklerinnen und -Entwickler können dieses Gem zu ihrer Anwendung hinzufügen und so den Zugriff auf die Kubernetes-Client-Bibliothek ermöglichen.

Es gibt auch Gems für bestimmte Anwendungsfälle, wie nytimes_top_stories. Wie der Name schon sagt, kannst du dieses Gem in deine Anwendung einbinden, um aktuelle Schlagzeilen der New York Times abzurufen.

Verwendungszwecke für Ruby

Einige der häufigsten Einsatzgebiete von Ruby sind Webentwicklung, statische Website-Generatoren (Frontend-Entwicklung), serverseitige Anwendungen, DevOps, Automatisierung, Kommandozeilen-Tools und Datenverarbeitungsanwendungen.

Einige Beispiele sind:

Vorteile und Nachteile von Ruby

Ruby bietet viele Vorteile gegenüber anderen Programmiersprachen. Es hat aber auch ein paar Nachteile. Die folgenden Listen zeigen einige der Vorteile (und Nachteile) von Ruby auf. Berücksichtige diese Punkte, wenn du entscheidest, ob Ruby für deinen Anwendungsfall geeignet ist oder ob du lieber eine Sprache wie Python oder C# verwenden solltest.

Vorteile

  • Einfach zu verwenden und bietet sofort einsatzbereite Funktionen für die Entwicklung.
  • Viele Bibliotheken von Drittanbietern, die von einer freundlichen Gemeinschaft von Ruby-Entwicklern entwickelt werden.
  • Sie wurde entwickelt, um die Produktivität zu steigern und den Arbeitsaufwand zu minimieren – daher bietet sie schnellere Entwicklungszeiten als andere Sprachen.

Nachteile

  • Die Leistung kann aufgrund des hohen Speicherverbrauchs und der ineffizienten Garbage Collection langsam sein.
  • Eine Allzwecksprache, aber eher für die Webentwicklung geeignet – in anderen Bereichen wie der Desktop-Entwicklung schneidet sie schlecht ab.
  • Sie wird immer noch als Nischensprache angesehen, obwohl sie seit ihrer Einführung stark weiterentwickelt wurde. Deshalb zieht sie nicht so viele Entwickler/innen an wie ihre Pendants, z. B. Python.

Was ist Ruby on Rails?

Ruby on Rails ist eines der beliebtesten Frameworks für die Entwicklung von Webanwendungen mit Ruby und steht unter der MIT-Lizenz zur Verfügung. Es ist auch einer der häufigsten Gründe, warum Entwickler/innen Ruby lernen. Als Framework vereinfacht Ruby on Rails die Erstellung von Webanwendungen, indem es eine vorgefertigte Struktur und alle Komponenten bereitstellt, die für die Erstellung einer Webanwendung benötigt werden, sodass Entwickler nicht alles von Grund auf neu erstellen müssen.

Die Verzeichnisstruktur eines Ruby on Rails-Projekts
Die Verzeichnisstruktur eines Ruby on Rails-Projekts

Mit der MVC-Architektur kannst du mit Ruby on Rails komplette Anwendungen erstellen, die das Front- und Backend umfassen.

David Heinemeier Hansson veröffentlichte Ruby on Rails im Jahr 2004 als Open-Source-Projekt. Hansson entwickelte Ruby on Rails während seiner Arbeit an dem Projektmanagement-Tool Basecamp der Firma 37Signals. Ruby on Rails legt großen Wert auf das Paradigma „Convention over Configuration“ (CoC) und das Prinzip „don’t repeat yourself“ (DRY). CoC bedeutet, dass Entwickler weniger Code schreiben und weniger Konfigurationen vornehmen müssen, wenn sie vordefinierten Konventionen folgen. DRY vermeidet Redundanz und reduziert die Wiederholung von Softwaremustern.

Wie Ruby war auch Ruby on Rails in seinen Anfangsjahren stärker verbreitet und hat mit dem Aufkommen neuer Frameworks einen Rückschritt gemacht. Trotzdem ist es im Laufe der Jahre gereift und hat sich eine große Fangemeinde gesichert. Entwickler/innen entscheiden sich nach wie vor für Rails, weil es Konventionen folgt, die die Entwicklung strukturieren, den Code leicht lesbar und schreibbar machen und den Entwicklungsprozess und die Markteinführung beschleunigen.

Einsatzmöglichkeiten für Ruby on Rails

Während es für Ruby viele Anwendungsfälle gibt, ist Ruby on Rails viel zielgerichteter. Es ist ein Framework, das ausschließlich auf die Entwicklung von Webanwendungen ausgerichtet ist. Es mag zwar einen engen Fokus haben, aber was es kann, kann es gut. Mit Ruby on Rails wurden einige der beliebtesten Webanwendungen entwickelt, z. B. GitHub, Twitch, Soundcloud, Shopify, Hulu, Airbnb und BaseCamp.

Vorteile und Nachteile von Ruby on Rails

Als Open-Source-Framework bietet Ruby on Rails viele Vorteile, die Entwickler/innen mit unterschiedlicher Erfahrung zu schätzen wissen. Allerdings kommt auch das Framework nicht ohne Kompromisse aus. Da die Wahl eines Frameworks genauso wichtig ist wie die Entscheidung für eine Programmiersprache, solltest du die folgenden Punkte beachten, um die richtige Entscheidung zu treffen.

Pro

  • Ein Open-Source-Framework – kostenlos zu verwenden.
  • Profitiert von dem hoch entwickelten Ökosystem von Ruby.
  • Einige Sicherheitsmaßnahmen sind eingebaut und standardmäßig aktiviert, z. B. ein eingebauter Schutz gegen XSS-, CSRF- und SQL-Injection-Angriffe.
  • Eine große Anzahl von Bibliotheken (Gems) macht Ruby on Rails zu einem sehr produktiven Framework.
  • Ermöglicht ein schnelleres Prototyping und ist eine gute Option für MVPs.

Nachteile

  • Eine große Anzahl von Gem-Abhängigkeiten führt zu langsameren Boot-Zeiten, was sich negativ auf die Produktivität der Entwickler/innen auswirkt.
  • Die vordefinierte Struktur und die vorgefertigten Komponenten machen es einfach, normale Webanwendungen mit Ruby on Rails zu erstellen. Dies führt jedoch zu einem Mangel an Flexibilität, der Anpassungen erschwert.
  • Die schnellere Entwicklung geht mit einer langsameren Leistung einher, die oft durch Probleme mit der Server- und Datenbankarchitektur verursacht wird. Diese Probleme werden noch deutlicher, wenn du die Anwendung skalierst.

Ruby vs. Ruby on Rails: Die wichtigsten Unterschiede

Wir haben uns also die einzelnen Details von Ruby und Ruby on Rails angesehen. Schauen wir uns nun ihre grundlegenden Unterschiede an.

Funktion Ruby Ruby on Rails
Sprache vs. Framework Eine in C geschriebene Programmiersprache. Ein Webentwicklungs-Framework, das in Ruby geschrieben ist. Ruby on Rails hat keine eigene Syntax, weil es Ruby als Programmiersprache verwendet. Ruby on Rails wird verwendet, um die Fähigkeiten von Ruby bei der Entwicklung von Webanwendungen zu verbessern.
Sicherheit In Ruby ist alles ein Objekt. Das bedeutet, dass alle Daten gekapselt werden können, was die Sprache sicherer macht. Ruby on Rails erhöht die Sicherheit durch den Schutz vor Cross-Site-Scripting (XSS), die Verhinderung von SQL-Injection, den Schutz vor Cross-Site-Request-Forgery (CSRF) und die Verhinderung von Schwachstellen im Logging.
Grundsätze Ruby basiert auf dem Prinzip des User Interface Design und zielt darauf ab, die Produktivität der Entwickler zu erhöhen. Ruby on Rails legt Wert auf die Anwendung von CoC- und DRY-Prinzipien, um die Produktivität der Entwickler zu erhöhen und den Arbeitsaufwand zu verringern.
Verwendung Ruby ist eine Allzweckprogrammiersprache, die Entwickler/innen auf verschiedenen Plattformen wie dem Web, dem Desktop und anderen Softwaretools einsetzen können. Ruby on Rails wird ausschließlich für die Webentwicklung verwendet.

Ruby vs. Ruby on Rails: Was du zuerst lernen solltest

Nachdem wir nun die Unterschiede zwischen Ruby und Ruby on Rails besprochen haben, fragst du dich vielleicht, was du zuerst lernen solltest: die Sprache oder das Framework. Entscheide dich zuerst für die Sprache. Wenn du also Ruby on Rails beherrschen willst, solltest du zuerst Ruby selbst lernen. Ruby zuerst zu lernen, ist keine Voraussetzung, um Ruby on Rails zu lernen.

Es ist aber der beste Weg, und du wirst sowieso irgendwann Ruby lernen müssen. Es ist immer am besten, die Grundlagen der Programmiersprache zu lernen, auf der das Framework basiert, bevor du dich mit dem Framework beschäftigst.

Das gilt auch für andere Frameworks. Laravel ist zum Beispiel in PHP geschrieben und Nest.js in Typescript. Es ist also sinnvoller, PHP zu lernen, bevor du dich mit Laravel beschäftigst, oder Typescript zu lernen, bevor du dich mit Nest.js beschäftigst.

Zusammenfassung

In diesem Artikel ging es um die verständliche Verwirrung, die durch die ähnlich klingenden Namen Ruby und Ruby on Rails entsteht. Nachdem wir die Geschichte und Popularität von Ruby und Ruby on Rails erläutert und die wesentlichen Unterschiede zwischen den beiden erklärt haben, ist klar, dass sie nicht dasselbe sind.

Die Unterschiede wurden durch die Auflistung und Erläuterung einiger gängiger Verwendungszwecke von Ruby und Ruby on Rails, ihrer Vor- und Nachteile sowie durch die Auflistung einiger beliebter Websites, Anwendungen und Tools, die in Ruby geschrieben wurden oder das Ruby on Rails-Framework nutzen, deutlich gemacht.

Beide wurden entwickelt, um das Programmieren angenehm zu machen und die Produktivität zu steigern. Der Hauptunterschied ist jedoch, dass Ruby eine Programmiersprache ist, mit der du Desktop- und Webanwendungen erstellen kannst. Im Gegensatz dazu ist Ruby on Rails ein Webanwendungs-Framework, das die bemerkenswerten Fähigkeiten von Ruby erheblich erweitert.

Du kannst Ruby on Rails nicht verwenden, ohne Ruby zu benutzen. Ruby on Rails nutzt die bereits in Ruby vorhandene Sicherheit und fügt weitere Sicherheitsfunktionen hinzu, was es zu einem sehr sicheren Framework macht. Außerdem basiert Ruby auf dem Prinzip des User Interface Design, während Ruby on Rails nach dem Prinzip von DRY und CoC entwickelt wurde.

Du kannst dein Ruby- oder Rails-Projekt auf der Anwendungs-Hosting-Plattform von Kinsta bereitstellen. Schau dir zunächst einige Schnellstart-Beispiele an, um deine Anwendung auf den Weg zu bringen.

Steve Bonisteel Kinsta

Steve Bonisteel is Technical Editor bij Kinsta. Hij begon zijn schrijverscarrière als verslaggever en achtervolgde ambulances en brandweerwagens. Sinds eind jaren negentig schrijft hij over internetgerelateerde technologie.