Considerazioni su Rails e Drupal
Premessa
Volete fare un sito web, avete provato qualcosa a manina, ma poi vi rendete conto che esistono framework e cms che rendono la vita molto più facile e vi permettono di concentrarvi solo su quello che vi interessa senza reinventare la ruota.Senza tirare in ballo tutte le possibili alternative alla moda, vorrei provare a soffermarmi su 2 progetti che mi interessano e provare a confrontarli. Si tratta del framework Ruby on Rails e del content management system Drupal.
Potrebbe sembrare una comparazione tra zucchine e carote, ma secondo me, ci sono degli elementi interessanti che potrebbero migliorare entrambi i progetti.
Breve descrizione
Ruby on Rails: framework "magico" ed espressivo, basato sul linguaggio Ruby, che astrae SQL, ha la libreria javascript Scriptacolous incorporata, è strutturato secondo il pattern Model View Controller (MVC) ed è estensibile tramite pluginDrupal: cms modulare, maturo, documentato, che si può estendere facilmente tramite i moduli che rendono subito disponibili tantissime funzionalità.
Tipo di pubblico e filosofia
R: Malgrado gli scaffold permettano di creare facilmente una tabella e l'interfaccia per leggerci e scriverci, Rails rimane (e rimarrà) un framework, quindi riservato ai programmatori.La filosofia principale è DRY (Do not repeat yourself) e pulizia, quindi scrivere solo lo stretto necessario nel posto giusto (nelle view solo html, nei modelli il controllo dei dati, nei controller l'interazione) e riusare il più possibile il codice che si è scritto. Implementare solo lo stretto necessario e mantenere la configurazione via web essenziale, semmai raffinarla incrementalmente.
D: Essendo un cms che fornisce una web GUI per l'installazione e delle API, si può dire che è adatto a tutti. Anche se per personalizzazioni particolari bisognerà almeno capire qualche linea di PHP.
In Drupal, tutto è possibile, perché è un CMS flessibile, tags, forum, blog,.. basta implementare (o scaricare) un modulo, attivarlo e a volte configurarlo.
Plugin e moduli
R: I plugin aggiungono delle funzionalità al framework e possono essere scaricati, installati, sincronizzati con un comando (vedi script/plugin help)Più che aggiungere delle funzionalità complete, offrono dei widget(es Google Maps) da richiamare nella propria applicazione o estendono i metodi disponibili per un modello(es tagging).
D: I moduli implementano degli hook, per esempio hook_cron, per azioni da eseguire a scadenze regolari o hook_perm per riservare delle azioni solo a certi tipi di utente. In questo modo ogni modulo si interfaccia col cms e fornisce le sue funzionalità integrate col sistema.
Localizzazione
R: Malgrado Ruby on Rails sia stato fatto da un non anglofono, non c'é nessuna indicazione mainstream per localizzare un'applicazione Rails. Comunque se volete localizzare la vostra interfaccia e i vostri contenuti potete usare il plugin GlobalizeD: l'interfaccia è localizzata dal modulo ufficiale locale, mentre per i contenuti anche qui ci sono diverse soluzioni.
Supporto e coerenza
R: Ruby on Rails non vuole inventare la ruota e malgrado sia possibile fare un "blog" in 15 minuti, usa un scm fatto in python e un forum in PHP, quindi è un framework semplice e veloce, ma fino a un certo punto.. occhio alla propaganda.I principali hosting supportano Ruby/Rails, ma non tutti.
C'é un sito che riguarda Rails in italiano, ma visto che è un po' vuoto seguite quello su Ruby.
D: La quantità e la qualità dei moduli di Drupal coprono davvero tante esigenze, basta vedere il sito di Drupal quanti servizi offre.
PHP5 è supportato, ma gli hosting sono restii a migrarci.
Ci sono 2 siti che trattano di Drupal in italiano, ma questo dovrebbe essere più ufficiale.
Critiche
R: Una critica che si sente spesso è la mancanza di un sistema di localizzazione predefinito, come già detto ci sono diversi modi per farlo, ma nessuno ufficiale.I plugin sono frammentati e non sono molto flessibili, dopo Rails-engines sarà la volta di Plugems?
D: Può fare tante cose, ma non è ancora all'altezza del blog Wordpress, dell'ecommerce OSCommerce, del forum PhpBB,..
C'é troppo da configurare e scompattare, purtroppo la flessibilità e la gestione di molti moduli ha questo inconveniente.
Marketing
R: Malgrado la giovinezza di Rails, il marketing che c'é dietro è molto forte. In una libreria generalista è arrivato prima il libro in italiano di Rails che non quello di Ruby o Python.Poi fanno RailsConf ovunque, anche in Italia.
D: C'é la drupalcon e un libro (non disponibile in italiano).
Best Practises
R:http://rails100.pbwiki.com/D:http://www.drupalsites.net/weblink/most-voted-links
Conclusioni
Non c'é un vincitore e tutto dipende da quello che volete fare.. Potete costruire una casa con ponteggi regolabili, impalcature e cemento o farvi scaricare da una gru dei prefabbricati e decorare quelli.R: Se volete fare un sito su misura, essenziale, strutturato e volete controllare con facilità html, modelli propri e relazioni tra tabelle, usate Ruby on Rails.
D: Se volete un sito che funzioni fin da subito, che possa diventare facilmente un blog, forum, galleria immagini, e che si possa estendere appoggiandosi a delle fondamenta collaudate (autenticazione, gestione permessi,..), scegliete Drupal.