Veel mensen halen Ruby en Ruby on Rails door elkaar. Als gevolg daarvan zorgen hun vergelijkbare namen en gedeelde oorsprong, ondanks een aantal belangrijke verschillen, nog steeds voor verwarring – vooral bij nieuwere developers.

Dit artikel zal die verwarring uit de weg ruimen, hun gedeelde geschiedenis verkennen en een inleiding geven over wanneer je zou kunnen coderen met Ruby of meteen zou willen beginnen met Ruby on Rails.

Van Ruby naar Rails

Wat is het verschil tussen Ruby en Ruby on Rails?

Ruby is een veelgebruikte open-source, objectgeoriënteerde scripttaal voor algemeen gebruik, gebouwd op de programmeertaal C. Het is een cross-platform taal die wordt ondersteund op Windows, macOS en Linux. Ruby is ontworpen met eenvoud (en plezier) voor developers als belangrijkste focus en is populair bij het ontwikkelen van webapplicaties.

Ruby on Rails, soms gewoon “Rails” genoemd, is een open-source framework voor webontwikkeling gebaseerd op het model-view-controller (MVC) architectuurpatroon. Je gebruikt Rails om database-gedreven webapplicaties te ontwikkelen en het gebruikt de taal Ruby.

Laten we wat dieper op beide ingaan.

Wat is Ruby?

Ruby werd in 1993 gecreëerd door de Japanse softwareprogrammeur Yukihiro Matsumoto, ook bekend als Matz. De eerste versie van Ruby, Ruby 0.95, werd uitgebracht op 21 december 1995.

Ruby is, net als Perl en Python, een geïnterpreteerde high-level programmeertaal, ontworpen om de productiviteit van programmeurs te vergroten. Matz creëerde Ruby als een object-georiënteerde taal, net als Ada, zodat het een perfecte balans heeft tussen prestaties en eenvoud.

Volgens Matz waren zijn uitgangspunten bij het maken van Ruby het creëren van een programmeertaal waarin hij graag codeerde, die leuk was voor andere developers om te gebruiken en die de hoeveelheid inspanning die nodig was bij het programmeren beperkte.

In de afgelopen tien jaar heeft Ruby consequent een van de populairste programmeertalen gemaakt. Wat veel developers aantrekt in Ruby is de eenvoud en de lage instapdrempel voor beginners.

Laten we enkele van de essentiële kenmerken van Ruby bespreken.

Veelzijdige programmeertaal

Ruby wordt beschouwd als een pure objectgeoriënteerde taal. Alles in Ruby is een object. Zelfs primitieve datatypes zoals gehele getallen hebben methoden, instance variabelen en ondersteunen method chaining.

Je kunt bijvoorbeeld twee verschillende methoden gebruiken op een geheel getal met behulp van de puntnotatie om de absolute waarde te vinden en deze te verheffen tot de derde macht, allemaal in één regel. Kijk eens naar de onderstaande code. Hier wordt abs gebruikt om de absolute waarde van -3 te vinden en pow(3) verheft de absolute waarde van -3 tot de macht 3.

value = -3.abs.pow(3)

Ruby is een programmeertaal voor algemeen gebruik die developers kunnen gebruiken om verschillende soorten applicaties te maken. Het ondersteunt ook de functionele programmeerbenadering, waarbij programma’s een verzameling instructies zijn die zijn gegroepeerd in procedures die gelijkwaardig zijn aan functies.

Bibliotheken

Ruby biedt een breed scala aan ingebouwde bibliotheken voor developers. OOk biedt het een pakketbeheerder genaamd RubyGems met een verzameling pakketten, gems genaamd, gemaakt door andere developers binnen de Ruby gemeenschap. Deze gems kunnen voortbouwen op bestaande Ruby applicaties of de mogelijkheden en functionaliteiten ervan wijzigen.

Elke gem bevat code en bijbehorende testtools, documentatie en een gemspec – een bestand met informatie over de gem. De gemspec bevat de naam van de gem, een beschrijving en eventuele dependencies die nodig zijn.

Neem bijvoorbeeld de populaire gem k8s-client. Ruby developers kunnen deze gem toevoegen aan hun applicatie om toegang te krijgen tot de Kubernetes client bibliotheek.

Er zijn ook gems voor bepaalde use cases, zoals nytimes_top_stories. Zoals de naam al zegt, kun je deze gem in je app opnemen om recente krantenkoppen van de New York Times op te halen.

Toepassingen voor Ruby

Enkele van de meest voorkomende toepassingen voor Ruby zijn webontwikkeling, statische sitegenerators (front-end ontwikkeling), server-side applicaties, DevOps, automatisering, commandoregeltools en gegevensverwerkingstoepassingen.

Enkele voorbeelden zijn:

Voor- en nadelen van Ruby

Ruby biedt veel voordelen ten opzichte van andere programmeertalen. Het heeft ook een paar nadelen. De lijsten hieronder benadrukken enkele voordelen (en nadelen) van Ruby. Neem deze punten in overweging bij de beslissing of Ruby geschikt is voor jouw applicatie of dat je beter een taal als Python of C# kunt gebruiken.

Voordelen

  • Gemakkelijk te gebruiken en biedt out-of-the-box mogelijkheden voor ontwikkeling.
  • Veel externe bibliotheken, ontwikkeld door een fijn community van Ruby developers.
  • Ontworpen om de productiviteit te verhogen en het werk te minimaliseren – dus het heeft snellere ontwikkeltijden dan andere talen.

Nadelen

  • Prestaties kunnen traag zijn vanwege hoog geheugenverbruik en inefficiënte garbage collection.
  • Een taal voor algemeen gebruik, maar meer geschikt voor webdevelopment – het scoort slecht op andere gebieden zoals desktopontwikkeling.
  • Wordt nog steeds gezien als een nichetaal ondanks dat er veel aan is ontwikkeld sinds de introductie. Hierdoor trekt het niet zoveel developers aan als zijn tegenhangers, zoals Python.

Wat is Ruby on Rails?

Ruby on Rails is een van de populairste frameworks voor het ontwikkelen van webapplicaties met Ruby en is beschikbaar onder de MIT Licentie. Het is meteen ook een van de meest voorkomende redenen waarom developers Ruby leren. Als framework vereenvoudigt Ruby on Rails het maken van webapplicaties door een kant-en-klare structuur en alle componenten te bieden die nodig zijn om een webapplicatie te bouwen, zodat developers niet alles vanaf nul hoeven te maken.

De kant-en-klare structuur van een Ruby on Rails project.
De kant-en-klare structuur van een Ruby on Rails project.

Door gebruik te maken van de MVC architectuur kun je met Ruby on Rails full-stack applicaties maken die de front-end en de back-end coveren.

David Heinemeier Hansson bracht Ruby on Rails uit als een open-source project in 2004. Hansson creëerde Ruby on Rails terwijl hij werkte aan het projectbeheerprogramma Basecamp van het bedrijf 37Signals. Ruby on Rails legt veel nadruk op het “convention over configuration” (CoC) paradigma en het “don’t repeat yourself” (DRY) principe. CoC betekent dat developers minder code schrijven en minder configuraties uitvoeren als ze vooraf gedefinieerde conventies volgen. DRY voorkomt redundantie en vermindert de herhaling van softwarepatronen.

Net als Ruby was Ruby on Rails meer in opkomst in de beginjaren en heeft het een stapje terug gedaan toen nieuwe frameworks opkwamen. Ondanks dat is het in de loop der jaren volwassen geworden en heeft het een aanzienlijke aanhang gekregen. Developers kiezen nog steeds voor Rails omdat het conventies volgt die structuur brengen in de ontwikkeling, waardoor de code gemakkelijk te lezen en te schrijven is en het ontwikkelingsproces en de tijd om op de markt te komen versnelt.

Toepassingen voor Ruby on Rails

Hoewel Ruby veel gebruiksmogelijkheden heeft, is Ruby on Rails veel gerichter. Het is een framework dat alleen gericht is op het ontwikkelen van webapplicaties. Het mag dan een smalle focus hebben, wat het doet, doet het goed. Ruby on Rails is gebruikt om enkele van de populairste webapplicaties te maken, zoals GitHub, Twitch, Soundcloud, Shopify, Hulu, Airbnb en BaseCamp.

Voordelen en nadelen van Ruby on Rails

Als open-source framework biedt Ruby on Rails verschillende voordelen die developers met uiteenlopende ervaring kunnen waarderen. Het framework komt echter niet zonder compromissen. Omdat het kiezen van een framework net zo belangrijk is als het kiezen van een programmeertaal, kun je het volgende overwegen om er zeker van te zijn dat je de juiste keuze maakt.

Voordelen

  • Een open-source framework – gratis te gebruiken.
  • Profiteert van Ruby’s hoogontwikkelde ecosysteem.
  • Heeft een aantal beveiligingsmaatregelen ingebouwd en standaard ingeschakeld, waaronder ingebouwde bescherming tegen XSS, CSRF en SQ injectie aanvallen.
  • Een groot aantal bibliotheken, of gems, maakt Ruby on Rails een zeer productief framework.
  • Zorgt voor snellere prototyping en is een goede optie voor MVP’s.

Nadelen

  • Een groot aantal gem dependencies resulteert in langzamere opstarttijden, wat een negatieve invloed heeft op de productiviteit van developers.
  • De voorgedefinieerde structuur en out-of-the-box componenten maken het gemakkelijk om gewone webapps te bouwen met Ruby on Rails. Dit resulteert echter in een gebrek aan flexibiliteit dat aanpassen moeilijk maakt.
  • Met snellere ontwikkeltijden gaan tragere prestaties gepaard, vaak veroorzaakt door problemen met de server- en databasearchitectuur. Deze problemen worden duidelijker bij het schalen van de applicatie.

Ruby vs Ruby on Rails: belangrijkste verschillen

We hebben de individuele details van Ruby en Ruby on Rails bekeken. Laten we nu eens kijken naar hun fundamentele verschillen.

Kenmerken Ruby Ruby op Rails
Taal vs Framework Een programmeertaal geschreven in C. Een framework voor webontwikkeling geschreven in Ruby. Ruby on Rails heeft geen eigen syntaxis omdat het Ruby als programmeertaal gebruikt. Ruby on Rails wordt gebruikt om de mogelijkheden van Ruby bij het bouwen van webapplicaties te vergroten.
Beveiliging In Ruby is alles een object. Dit betekent dat alle gegevens kunnen worden ingekapseld, waardoor de taal veiliger wordt. Ruby on Rails tilt de beveiliging naar een hoger niveau door bescherming te bieden tegen cross-site scripting (XSS), SQL injectie te voorkomen, bescherming te bieden tegen cross-site request forgery (CSRF) en logging kwetsbaarheden te voorkomen.
Principes Ruby is gebaseerd op het principe van user interface design, met als doel de productiviteit van developers te verhogen. Ruby on Rails benadrukt het gebruik van CoC en DRY principes om de productiviteit van developers te verhogen en de hoeveelheid werk te verminderen.
Gebruik Ruby is een programmeertaal voor algemeen gebruik die developers op verschillende platforms kunnen gebruiken, zoals het web, de desktop en andere softwaretools. Ruby on Rails wordt uitsluitend gebruikt voor webontwikkeling.

Ruby vs Ruby on Rails: Wat eerst te leren

Nu we de verschillen tussen Ruby en Ruby on Rails hebben besproken, vraag je je misschien af welke je eerst moet leren: de taal of het framework. Kies eerst de taal. Dus, als je Ruby on Rails onder de knie wilt krijgen, leer dan eerst Ruby op zichzelf. Eerst Ruby leren is geen vereiste om Ruby on Rails te leren.

Het is echter wel de beste manier om te leren, en uiteindelijk zul je Ruby moeten leren. Het is altijd het beste om de basis te leren van de programmeertaal waarop het framework is gebaseerd voordat je in het framework springt.

Dit geldt ook voor andere frameworks. Laravel is bijvoorbeeld geschreven in PHP en Nest.js is geschreven in Typescript. Het is dus voordeliger om PHP te leren voordat je in Laravel springt of Typescript te leren voordat je in Nest.js springt.

Samenvatting

In dit artikel hebben we de begrijpelijke verwarring besproken die ontstaat door de gelijknamige namen Ruby en Ruby on Rails. Nu we de geschiedenis en populariteit van Ruby en Ruby on Rails hebben doorgenomen en de belangrijke en essentiële verschillen tussen de twee hebben uitgelegd, is het duidelijk dat ze niet hetzelfde zijn.

De verschillen werden duidelijk door enkele van de meest voorkomende toepassingen van Ruby en Ruby on Rails op te sommen en uit te leggen, hun voor- en nadelen, en door enkele populaire sites, apps en tools op te sommen die in Ruby zijn geschreven of het Ruby on Rails framework gebruiken.

Ze zijn allebei gemaakt om programmeren leuker te maken en de productiviteit te verhogen. Het belangrijkste verschil is echter dat Ruby een programmeertaal is die je kunt gebruiken om desktop- en webapplicaties te bouwen. Ruby on Rails daarentegen is een framework voor webapplicaties dat de opmerkelijke mogelijkheden van Ruby sterk uitbreidt.

Je kunt Ruby on Rails niet gebruiken zonder Ruby te gebruiken. Ruby on Rails maakt gebruik van de beveiliging die al aanwezig is in Ruby en voegt meer beveiligingsfuncties toe, waardoor het een zeer veilig framework is. Ruby is ook gebaseerd op het principe van user interface design, terwijl Ruby on Rails is ontwikkeld volgens het principe van DRY en CoC.

Je kunt je Ruby of Rails project deployen op Kinsta’s Applicatie Hosting platform. Begin met het bekijken van enkele Quickstart voorbeelden om je applicatie van de grond te krijgen.

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.