Home
Ruby on Rails

08 Settembre 2005

Ruby on Rails

di

Un framework basato su Ruby per la realizzazione di applicazioni web. La sfida? Ridurre all'osso i tempi di sviluppo.

Ruby on Rails è un framework basato su Ruby per la realizzazione di applicazioni web-based. Si lo so, da questa frase non si capisce davvero di cosa si sta parlando, per cui iniziamo a fare un po’ di chiarezza, spiegando il significato di qualche termine:

· Ruby è un linguaggio di programmazione interpretato, completamente orientato agli oggetti. Vanta moltissime librerie pur essendo un linguaggio relativamente giovane, è semplice, estensibile, portabile. Come se non bastasse è free.

· Un framework è una struttura software incompleta, l’architettura di un sistema definita da un insieme di classi che ne definiscono le funzioni principali. Lo sviluppatore può lavorare all’interno di questa “cornice” personalizzandola secondo le proprie esigenze.

· Una applicazione web (o web-based) è un servizio erogato da un server attraverso il World Wide Web o una intranet. Questo genere di architettura consente, a chi fornisce il servizio, di apportare modifiche e miglioramenti in modo centralizzato, senza che gli utenti debbano installare software sul loro computer salvo, solitamente, un browser web. Alcune applicazioni web molto note sono Ebay, Amazon o Wikipedia.

L’obbiettivo di Ruby on Rails (RoR) è una maggiore produttività ottenuta realizzando applicazioni più facilmente e più rapidamente. L’idea è quella di scrivere meno codice possibile, affidandosi alla generazione automatica della gerarchia delle directory e delle principali classi. Questo solitamente porta a meno errori e una struttura generale più chiara e leggibile, evitando quello che qualcuno chiama “spaghetti code” (codice piuttosto ingarbugliato, come un piatto di spaghetti).

RoR si affida ad una architettura chiamata model-view-controller (MVC) nella quale i dati o la loro rappresentazione (model), la gestione dell’interfaccia utente (view) e le funzioni di interazione (controller) sono mantenute nettamente separate. Generalmente una struttura MVC funziona in questo modo:

1. l’utente interagisce con l’interfaccia, per esempio premendo un bottone.

2. Un controller riceve il comando inviato dall’utente.

3. Il controller accede alla struttura di dati (model) modificandola o aggiornandola.

4. La gestione dell’interfaccia accede alla struttura di dati e genera una appropriata interfaccia utente (nel caso di una applicazione di e-commerce, può generare una lista degli articoli presenti in un “carrello”).

5. L’interfaccia utente attende una nuova interazione da parte dell’utente.

Questo stile di programmazione può sembrare una manna per qualunque sviluppatore, in effetti sul sito di RoR si può trovare un video tutorial che mostra come sia possibile creare una web application (nella fattispecie un blog) in circa 15 minuti. Non male! Eppure nella rete ci sono pareri discordanti a riguardo. È poi così facile trovare un errore in tutto quel codice autogenerato? Un programmatore esperto, che ha chiara la strutttura del framework e conosce molto bene il linguaggio non doverebbe avere troppi problemi, ma questa operazione potrebbe essere una vera condanna per qualcuno con meno esperienza.

In altre parole se è vero che RoR rende sicuramente le cosè più semplici è altrettanto vero che lo sviluppo di una applicazione web non è un gioco da ragazzi, e comporta un certo grado di consapevolezza anche per evitare gravi problemi di sicurezza (creare un metodo pubblico, quando invece dovrebbe essere privato, potrebbe non essere una buona idea…).

È difficile dare un giudizio complessivo su questo framework: in rete il dibattito è molto acceso. Da un lato ci sono i sostenitori di un design orientato alle pagine (realizzato per esempio con php e con delle query verso il database che risiedono sulla stessa pagina) dall’altro chi preferisce un design basato su framework. Senza dimenticare poi la diatriba fra gli affezionati di framework basati su altri linguaggi come Java o Pearl.

Come accade più spesso di quanto si possa pensare, in campo informatico, le valutazioni sostanziali di carattere tecnico si confondono con “guerre di religione” a sostegno dell’una o dell’altra fazione. A mio parere l’unico giudizio fondato sulle potenzialità di RoR può basarsi solo sul successo che esso avrà nella comunità degli sviluppatori, quindi non resta altro che stare a vedere.

Chi volesse qualche esempio di RoR all’opera in una situazione reale, può dare un’occhiata al sito S5 Presents, di cui ho già parlato in un precedente articolo, per passare a qualcosa di più complesso con Basecamp e Backpack.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.