Negli ultimi anni, tra i framework per lo sviluppo di applicazioni orientate al web, si è fatto un gran parlare di Django che sembra aver fatto breccia nel cuore e nella mente di molti sviluppatori per svariate ragioni. Premesso il fatto che se Python è stato scelto da Google come unico linguaggio se volete che le vostre applicazioni possano essere ospitate sui web server dell’azienda di Mountain View tramite Google AppEngine, e che Django è l’unico framework per cui viene fornito un specie di supporto un motivo ci sarà, io sinceramente trovo ancora un pò scomodo e non vantaggioso come molti sostengono in giro, sviluppare applicazioni web con questo framework MVC.
Ecco sostanzialmente le ragioni per cui non trovo Django così fantastico come si dice in giro.
Installazione tutt’altro che semplice
Il primo grande ostacolo che si trova è proprio l’installazione che è tutt’altro che elementare sia in locale (su Windows e su Mac) che in remoto sul vostro web server. Se infatti siete degli amanti di MAMP, WAMP, XAMMP e simili che fino ad ora vi hanno permesso di testare in locale i vostri script in PHP e MySQL, troverete non poche difficoltà nell’installazione non tanto di Django quanto del modulo di MySQL per Python e sinceramente senza l’appoggio di un database vi potete divertire ben poco a sviluppare applicazioni che abbiano un senso.
Passando all’installazione lato server i problemi non sono minori, anzi. Se non avete la possibilità di accedere via ssh al vostro spazio web potete anche sognarvi di usare Django per le vostre applicazioni web. Se per esempio siete su Dreamhost e quindi avete questa possibilità, l’installazione è tutt’altro che semplice come potete leggere nel wiki. L’ideale sarebbe quindi avere un VPS (Virtual Private Server) se non addirittura un server dedicato, ma non tutti purtroppo se lo possono permettere.
Documentazione tutta in Inglese
Se siete degli sviluppatori o pseudo tali e non avete una buona conoscenza dell’inglese (almeno quello volgarmente detto tecnico) vi consiglio di darvi all’ippica perchè siete tagliati fuori. In ogni caso anche se siete poliglotti e l’inglese per voi non è un problema, scommetto che avere della documentazione scritta in italiano non vi dispiacerebbe vero? Ecco un’altra nota dolente: la documentazione ufficiale è tutta in inglese.
Il Django book è davvero un’ottima risorsa, però almeno all’inizio per prendere confidenza con il nuovo ambiente di sviluppo leggere qualcosa in italiano non farebbe affatto male. Purtroppo a parte qualche tutorial e qualche guida su come risolvere i problemi più comuni, in italiano non si trova praticamente niente.
Vi consiglio pertanto un bel corso di inglese prima di iniziare.
Hosting difficile da trovare
Come detto in precedenza per installare Django ci vuole per forza di cose un accesso SSH, quindi non potrete ospitare i vostri capolavori su un qualsiasi spazio web. Specialmente in Italia, se avete un normalissimo contratto di hosting, magari a basso prezzo, non potrete installare il framework MVC (che io sappia a parte UnBit non ci sono altri provider che offrono normali servizi di hosting Django-ready). Quindi o vi toccherà emigrare all’estero presso Dreamhost o altri celebri provider che fanno dell’overselling il loro cavallo di battaglia oppure dovrete seriamente pensare di mettere mano al portafogli e prendervi un VPS o se proprio potete spendere un bel server dedicato.
Performance eccezionali?
Ok, ma per la vostra idea geniale ci vuole una realizzazione efficientissima altrimenti la vostra applicazione web 2.0 sarà lentissima quando milioni di persone la utilizzeranno contemporaneamente: ecco perchè vi serve Django!!!
A me la storia delle prestazioni fantasmagoriche di Django non convince troppo. Rispetto a PHP sarà pure più efficiente ed ottimizzato… ma come potete leggere nei punti sopra, quasi sempre le applicazioni sviluppate con Django sono ospitate o su VPS o su server dedicati che magari usano Lighttpd se non LiteSpeed impostazioni di cache a livello di MySQL che rendono le query verso il database, tutto questo sommato alla possibilità di cachare le pagine tramite Django le molto rapide ecc ecc…
Provate ad hostare le vostre applicazioni fatte in PHP (tanto per fare un esempio) su un VPS o un server dedicato come sopra e… se non programmate con i piedi le prestazioni non saranno molto differenti.
CodeIgniter & Co.
Ok l’ultimo mito che è rimasto da sfatare è la semplicità con cui si programma in Django che non è paragonabile a nessun altro framework. Quando si guarda uno screencast e le cose le fa un altro è tutto semplice. Se poi le cose sono degli esempietti stupidi sono ancora più semplici.
Django è un framework MVC (Model-View-Controller) come ce ne sono a decine in giro per i linguaggi più svariati. Se non sapete da dove iniziare la vostra applicazione, il fatto che avete a disposizione Django non vi aiuterà molto. Rispetto a framework pesanti come Ruby On Rails o Symphony ha sicuramente il suo perchè e sicuramente vi aiuterà a sviluppare applicazioni più snelle e più veloci. Sempre se riuscite ad installarlo, sempre se avete dove installarlo, sempre se riuscite a sviluppare in locale e poi mettere tutto online ecc ecc
Ora dico io: ci sono degli ottimi framework MVC come CodeIgniter che vi offrono la stessa semplicità di sviluppo, più o meno le stesse basi da cui partire ma non dovrete diventare matti nel trovare una soluzione per installarlo in locale piuttosto che su un servizio di hosting che non prosciughi le vostre tasche.
Perchè andarvi a complicarvi la vita con Django?
Forse adesso non parlo con cognizione di causa perchè mi ha fatto diventare matto per installarlo in locale e poi in remoto e non sarò riuscito ancora ad apprezzarne i vantaggi… però a tutt’oggi definirlo il Visual Basic per il Web mi sembra un paragone abbastanza pittoresco. D’altronde Django solo per installarlo necessita di 3 giorni di ferie: io Visual Basic lo ricordo di molto più semplice utilizzo o sbaglio?
Spero di avere qualche sostenitore. Voi come la pensate?




{ 23 commenti… Leggili qui sotto o aggiungine uno }
← Commenti più vecchi
Sono d’accordo con Simone. Non ripeto le stesse cose se non dire che è un ottimo framework.semplice potente. Solo due cose. 1) Come fai a paragonare Python con php? sono 2 mondi diversi. 2) cosa centra ora Codeigniter? io l’ho usato per parecchio tempo…non mi sembra nemmeno paragonabile la cosa a livello di potenzialità, lunghezza del codice e soprattutto modularità.
Ho installato Django in 10 min. Il tutorial ti porta via quanto? mezz’ora? 20 min? e hai già un’applicazione funzionante e dinamica..
← Commenti più vecchi