Con il rilascio di Ruby on Rails 3.2 di un paio di mesi fa e con Django 1.4 già caldo sulla griglia di partenza, è giunto il momento di tornare a fare il punto della situazione su questi due conosciutissimi web framework.
Cercherà quindi di fornire alcuni dati sulla qualità tecnica, qualità degli strumenti di sviluppo e sulla loro diffusione per dare modo a chi si avvicina per la prima volta a queste piattaforme di orientarsi meglio.
Qualità Tecnica
Dal punto di vista tecnico c'è poco da dire: i due framework sono ormai praticamente sullo stesso livello. Ovviamente Rails e Django non sono completamente sovrapponibili, esistono infatti molti punti in cui i rispettivi sviluppatori hanno scelto approcci quasi opposti (si veda ad esempio il modo in cui Rails e Django wrappano le tabelle di un database). Tuttavia, in fin dei conti, svantaggi e vantaggi si bilanciano.
Comunque, se proprio dobbiamo trovare un difetto, molti sviluppatori lamentano la sensazione di magia che si ha nell'utilizzo di Rails: esso infatti utilizza tutta una serie di procedure automatiche (come lo scaffolding) che, se da un lato risparmiano al programmatore la fatica di scrivere un gran numero di linee di codice, dall'altro danno la sensazione di non avere tutto sotto controllo. Django da questo punto di vista ha un comportamento più spartano che alcuni preferiscono.
Qualità degli strumenti
Un altro aspetto da tenere in considerazione è la qualità e la quantità di strumenti di sviluppo dedicati quali IDE, debugger, ambienti di test e chi più ne ha più ne metta. Da questo lato Python (il linguaggio di Django) ha qualche vantaggio essendo massivamente diffuso anche in settori molto lontani dallo sviluppo web. D'altro canto Rails è la porta d'ingresso a Ruby e gli sviluppatori lo sanno. Questo significa che tutti gli strumenti che vi troverete ad utilizzare con Ruby saranno sicuramente cuciti attorno a Rails.
In definitiva Rails gode di una serie di strumenti più vasta e di migliore qualità rispetto a Django ma quest'ultimo può sfruttare tutto il sottobosco di applicazioni di Python.
Per quanto riguarda gli IDE la situazione è più o meno in parità . Ogni IDE Python che si rispetti ha il supporto a Django e ogni IDE per lo sviluppo web (vedi Apatana) supporta Rails.
Diffusione e Community
Misurare la diffusione di un framework e la sua comunità è un compito arduo. Ci sono però un paio di strumenti che possiamo utilizzare. Il primo è Google, cercando su Google Insight il nome dei due software si ottiene un interessante report da cui ho tratto l'immagine precedente.
Il grafico evidenzia un avvicinamento di Django a Rails nel volume di query al motore di ricerca, dovuto però più al calo di Rails che all'incremento del framework Python.
Un altro indice interessante è l'interesse "tecnico" che essi muovono. Possiamo ad esempio misurare il numero di libri che riguardano Rails e Django cercando in Amazon.com. Il risultato parla chiaro: otteniamo 290 risultati contro 72. Una vittoria netta che diventa ancora più marcata se osserviamo anche il numero di domande su StackOverflow: 29.850 con il tag Django rispetto alle 67.655 di Rails. A quanto pare quindi Rails resta ancora il framework con la maggior quantità di materiale tecnico dedicato.
In definitiva Rails continua ad essere l'alternativa a PHP più diffusa e che sembra avere alle spalle la comunità più grande. Ciononostante qualitativamente i due framework si equivalgono e chissà se in futuro le cose non cambino.