Ruby on Rails duikt de laatste jaren steeds vaker op als alternatief framework voor webapplicaties. Op de FOSDEM-conferentie eind februari waren er twee Belgische case study’s te zien die de voordelen ervan illustreerden: een content management systeem en een jobsite. Opvallend is dat de initiatiefnemers geen ervaring met Ruby on Rails hadden toen ze aan hun websites begonnen.
Bernard Dubuisson van CSA (Conseil Supérieur de l’Audiovisuel), een publieke instelling van de Franse Gemeenschap, vergelijkt Ruby on Rails (RoR) met html enkele jaren geleden: “Ik ben geen Ruby-specialist en eigenlijk zelfs geen ontwikkelaar. Ik ben gewoon op het juiste moment met Rails in aanraking gekomen, zoals heel wat mensen 15 jaar geleden met html in aanraking kwamen en merkten dat ze daarmee vrij gemakkelijk websites konden bouwen.”
De bestaande website van CSA was in ASP (Active Server Pages) gemaakt, maar scoorde niet erg goed op vlak van usability en was duur in onderhoud. De website kreeg ook te maken met nieuwe vereisten, zoals het beheer van een grote hoeveelheid informatie en links ertussen.”We hadden dus eigenlijk een contentmanagementsystem nodig dat veel verder ging dan de toenmalige website,” aldus Dubuisson. Hij bekeek daarop verschillende opensource opties.
De Lego-aanpak
Drupal kwam uit de verkennende studie naar boven als een eenvoudige oplossing, maar niet zo gemakkelijk aan te passen.”Dit is een beetje de Playmobil-aanpak,” zegt Dubuisson. Vervolgens keek hij naar PHP, maar daar moest je teveel op maat maken. Dubuisson noemt dit de Meccano-aanpak. Toen hij Ruby on Rails ontdekte, viel hij direct voor de ‘Lego-aanpak’ hiervan:”het framework is flexibel, eenvoudig aan te passen en je kan er complexe webapplicaties mee bouwen.” Met de hulp van een professionele Rails-consultant ging Dubuisson dan aan de slag. Voor de nieuwe website van CSA bouwde hij een volledig cms, waarbij de werknemers alle inhoud kunnen beheren met behulp van formulieren. Dezelfde pagina toont verschillende gegevens afhankelijk van de permissies van de gebruiker. Ook paginatie en validatie van formuliergegevens was heel eenvoudig geïmplementeerd.”Rails ondersteunt heel wat van deze functies al out-of-the-box.”
Schaalbaar en veilig
Peter Vandenabeele schaart zich achter Dubuisson:”Rails biedt inderdaad heel wat standaardfunctionaliteiten voor een website, bijvoorbeeld ook e-mail en RSS.” Vandenabeele werkte vorig jaar nog voor Fedict als open standaarden-expert, en is in januari van dit jaar aan zijn jobsite allejobsinleuven.be begonnen. Een belangrijke vraag was voor hem ook: welk framework te gebruiken?”Ik wou niet met PHP-code beginnen, want met weinig PHP-ervaring voorzag ik het risico dat ik spaghetticode zou gaan schrijven. Ik ken zelf geen Java, maar uit wat ik opving van anderen, leek me dat Java en de Java frameworks een te lange leercurve hebben voor mij. En ik had wat ervaring met C# op het opensource Mono-platform, maar daar kwam ik toch een aantal bugs in tegen. Met Python had ik in 2000 al wat gewerkt, maar de beperkingen in het objectmodel bevielen me toen niet zo. Toen viel mijn oog op Ruby: het is een propere taal, en Rails is een eenvoudig maar krachtig framework.” Vandenabeele had echter nog twee kritische vragen waarop hij een antwoord wou zien voor hij Rails zou gaan gebruiken.”Allereerst wou ik weten hoe het met de scalability zat. Ik ontdekte dat dit geen probleem is op het niveau van de programmeertaal, maar op het niveau van de database. Rails is gewoon een interface naar die database, in het geval van mijn website MySQL.” Ook op vlak van beveiliging zat het wel snor.”Beveiliging is een aspect van de architectuur. En Rails verplicht je door zijn ontwerp bijna om veilige toepassingen te ontwikkelen. Als je de standaardmethodiek volgt, krijg je een redelijk veilige webapplicatie.”
Korte leercurve
Uit de ervaringen van beide projecten blijkt dat Rails een korte leercurve heeft.”Aan de ontwikkeling van de website van CSA heb ik gespreid over 9 maanden zo’n 500 uur besteed,” rekent Dubuisson voor,”inclusief het leren van Ruby on Rails, en dat terwijl ik helemaal geen programmeurservaring had.” Daarnaast heeft de externe consultant die CSA inhuurde er ongeveer 12 dagen tijd aan gespendeerd.”In totaal hebben we minder dan 10 000 euro aan de ontwikkeling van de website gespendeerd, de manuren van onze interne ontwikkelaar niet meegerekend,” besluit Dubuisson. Bij Vandenabeele horen we een gelijkaardig verhaal. In de zomer van 2007 had hij al wel wat boeken over Ruby on Rails gelezen. Toch was het was pas in december, in gesprekken met Java- en Ruby-ontwikkelaars Tom Klaa-sen en Koen Van der Auwera van 10to1, dat hij de beslissing nam om Rails te omarmen. In dit framework leren programmeren bleek verrassend snel te gaan.”Rails heeft voor alle keuzes zinnige defaults, waardoor je met heel weinig code al veel bereikt.” Op een bepaald moment haalde Vandenabeele er consultant Bert Klaps bij, die nog nooit een letter Ruby-code had geschreven, maar wel uitgebreide C- en C++-ervaring had. Klaps is duidelijk over de leercurve:”Na een week inwerken had ik Rails onder de knie en was ik operationeel.” In een ander framework zou dit niet mogelijk zijn, meent hij.
Vandenabeele rekent uit dat hij er samen met Klaps en de consultants van 10to1 zo’n 70 mandagen aan gewerkt heeft. Op 7 januari begon hij met de ontwikkeling en 45 dagen later lanceerde hij de website.
Koen Vervloesem
Fout opgemerkt of meer nieuws? Meld het hier