Django Framework LogoAvendo deciso di ributtarmi a capofitto nel fantastico mondo del webdesign, mi sono studiato in giro le varie soluzioni per uno sviluppo rapido e coerente delle proprie applicazioni web. Per chi avesse dormito negli ultimi 10 anni, sono finiti infatti i tempi dello sviluppo pseudo-artigianale con il notepad: oggi esistono soluzioni ben più complete che permettono di sfruttare appieno le conoscenze acquisite in questo settore, che implementano con successo molti dei design pattern più utili. Tuttavia questo entusiasmo ha portato a una massiccia proliferazione di framework e content management system variegati, con il risultato che il termine della ricerca lascia nella testa un senso di confusione e indecisione: quale framework scelgo per lo sviluppo della mia applicazione web?

La domanda è complessa, e non è facile dare una risposta unica senza tenere conto delle esigenze particolari di ognuno. Tuttavia, per quanto mi riguarda penso di aver trovato la soluzione. Dopo aver dato un’occhiata veloce a vari framework PHP (tra cui CakePHP e Zend Framework) e al celeberrimo Ruby on Rails (per gli amici RoR), mi sono imbattuto in Django … e dopo aver completato il tutorial in un’oretta mi sono sentito molto sollevato. E’proprio quello che cercavo!

Lasciamo perdere lo slogan

The web framework for perfectionists with deadlines

che è praticamente uguale a quello di tutti gli altri framework, quindi non aggiunge nulla al discorso (sono tutti convinti che la propria soluzione sia la più very agile Object Relational Mapped fast template system bla bla blah). Andiamo subito ai fattori che mi hanno convinto di più:

  • E’un framework Python: ora io non voglio iniziare guerre di religione su quale sia il linguaggio migliore per il webdesign. Tuttavia, pur non conoscendo bene Python, sono stato in grado da subito di scrivere codice in modo molto intuitivo ed elegante. Su questo punto potete leggere un po’di pareri sparsi: qui,qui e qui giusto per iniziare
  • Pur non essendo ancora uscita la release 1.0 (siamo a 0.95) è utilizzato in parecchi progetti e ha una buona comunità con cui interagire
  • La gestione del backend è semplicemente spettacolare. Tutti noi sappiamo quanto sia palloso programmarsi da soli le aree di login, i form di inserimento dati, i check sui permessi e così via. Basta dare una rapida occhiata a questo tutorial per capire come assieme al framework venga fornita un interfaccia di backend di tutto rispetto e completamente personalizzabile, sia nel modo di gestire i form, sia nella grafica. E tale personalizzazione viene effettuata al momento di definire il modello dati
  • Il framework viene fornito di default con tutti i pacchetti più comuni per la gestione dei principali problemi di web-design: ORM, URL Rewriting, sistema di templating, gestione cache e internazionalizzazione. Da questo punto di vista Django è molto più maturo rispetto a quanto visto, ad esempio, in CakePHP

Vorrei concludere questa breve panoramica con una nota: io credo che Django sia ottimo soprattutto come motore per un sito “editoriale”, cioè per gestire una community dove si voglia permettere ai partecipanti di inserire dei materiali sul sito. Inoltre potrebbe tornare utile anche per gestire cataloghi on-line. Visto che per il momento il mio obbiettivo principale è il refactoring di tgplanes.com, questo è un punto che ha giocato un ruolo determinante nella mia scelta.

Unico punto a sfavore: come siamo messi con gli hosting python-enabled in Italia? Ci sarà da rivolgersi oltreoceano, o passare ad un Virtual Server? Chi sa qualcosa parli ora o taccia per sempre!

Sarà solamente un flirt, o si andrà verso il matrimonio? Solo il tempo potrà dirlo smiley