Categorie
Opinioni Programmazione Tecnologia

5 Motivi Per Cui Django Stenta A Diffondersi

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 RailsSymphony 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?

30 risposte su “5 Motivi Per Cui Django Stenta A Diffondersi”

Diciamo che sono 5 motivi tutt’altro che convincenti. Tolti i piccoli problemi in fase di deploy (giuro, piccoli), certo i problemi di Django non sono questi.

Ormai lo uso da un anno e sto vedendo come sta maturando. Rispetto ad altri prodotti importanti e maturi (Zope?) ha una curva di apprendimento molto più bassa ed è di una semplicità di sviluppo disarmante (se si comprende l’MVC).
La pulizia con cui è scritto (il suo codice non è affatto “magico”, si capisce facilmente) e le batterie di Python danno una marcia in più.

Piuttosto al giorno d’oggi se vogliamo trovargli una pecca, potrebbe essere la mancanza di un supporto ad una qualsiasi libreria AJAX.

PS: Imho al giorno d’oggi un programmatore o un informatico in senso generale non può lamentarsi della mancanza di guide in italiano.

Ciao!

Personalmente sono agli inizi, però vorrei osare a dire cose per incoraggiare chi opta per una piattaforma di sviluppo libera.
Infatti ho installato molto facilmente Django e tutto il necessario in locale con Debian APT e penso che in futuro un VPS con Debian sarebbe l’ideale.

L’inglese tecnico non è difficile, qualche passaggio complicato può essere affrontato con un dizionario, oppure con un traduttore usato in ambedue in versi. Imparando a scrivere qualcosa si migliora la lettura.
Testi “discorsivi” circa il Python che sono stati tradotti ci sono e possono aiutare, specie i novizi della programmazione.
In breve: l’unica difficoltà che ho avuto con Django muovendo i primi passi con la documentazione è stata la configurazione di Apache per esportare l’applicazione dal server integrato.

Oltre alla pazienza di cercare di capire cosa stessi facendo è stato essenziale copiare nel giusto percorso tutti i templates.

Concludo per ora che Django è piacevole e coinvolgente. Trovo indispensabile un hosting ben fornito e che sia specializzato sul FLOSS (ad esempio Unbit) oppure un VPS entry-level.
Forse non avrà la diffusione di altri strumenti perché, data l’offerta attuale, è interessante solo per chi intende usarlo per soggetti che ne sostengano le spese, che non sono particolarmente elevate.

Ciao!

@neon

Per l’installazione io ho trovato più difficoltà di quanto non abbia trovato per altri framework e ci ho messo molto di più di 5 minuti perchè se hai un sistema “pulito” tutto fila liscio altrimenti spuntano fuori le grane e da quanto leggo un pò dappertutto non sono poche.

Poi se conosci Python credo sia una soluzione “comoda” in quanto hai delle solide basi per sviluppare il tuo progetto… altrimenti devi comunque farci l’abitudine a programma in un altro linguaggio

punto 1) L’installazione di Django per uno sviluppatore è di una semplicità disarmante: si può usare sqlite (e scrivere i programmi sfruttando le api per db unificate) ed il server scritto direttamente in python. La configurazione è semplicissima (ci ho messo 5 minuti neanche mi pareva vero).

Le cose ovviamente cambiano nel momento in cui bisogna portare un progetto sui server per l’utilizzo effettivo, lì non c’è mamp lamp o wamp che tenga. Bisogna configurare ogni cosa per bene qualunque sia il linguaggio che si utilizza quindi Django non c’entra nulla (come dice giustamente Fullo).

punto 3) vedi sopra… se sviluppi una webapp anche stupidissima non puoi pretendere di affidarti ad un hosting condiviso

punto 5) secondo me python è un linguaggio ad oggetti molto più versatile e semplice da scrivere rispetto a php5 inoltre django andrebbe paragonato a framework di pari livello come zend e non codeigniter che pur essendo un ottimo prodotto non è assolutamente di pari categoria.

Insomma il punto è: se io so già programmare in python perché dovrei imparare ad usare php solo per sviluppare webapp quando posso farlo nel linguaggio che conosco bene?

Secondo la mia modestissima opinione il motivo per cui Django e RoR non hanno successo in Italia è dovuto semplicemente al fatto che noi siamo il paese dei webdeveloper che si inventano tali e che realizzano siti su hosting condivisi spacciandoli per webapp.

PS Fullo è di parte 😛

Il problema non è tanto nel framework quanto nella sua esaltazione da parte di alcuni sviluppatori che si sono innamorati troppo delle loro creature e quindi di Django che gli ha permesso di realizzarle.

Django è un buon framework ma sinceramente non mi sento di osannarlo come fanno molto in giro perchè rispetto ai concorrenti diretti ha i suoi pregi ed i suoi difetti.

Tutto qua.

Quindi secondo te il “maggior” problema risiede nel framework e non in una differente causa tipo la poca pubblicità/sponsorizzazione che lo circonda?

Sicuramente sono daccordo con te nell’attribuire una causa al supporto lato server ma essendo noi italiani il fanalino di coda per quanto riguarda Internet ed l’informatica perchè ti stupisci se non si trova un adeguato supporto in lingue differenti dall’inglese? 10 anni fa non mi ricordo altrettanto nutrito il supporto italiano al php, o sbaglio.

Django è giovane. Forse non è “LA” risposta ma è sicuramente un passo in avanti che un giorno potrà portare alla realizzazione di strumenti più potenti ma anche facili da gestire.

completamente daccordo a metà. Come te penso che il tanto decantato Django stia vivendo dello stesso periodo di celebrità attraverso cui è passato RoR nei primi anni di vita e che di rivoluzionario non abbia veramente nulla.

Però. E qui parlo per tutti i framework, chi più chi meno, necessitano di mettere mano sul server e quindi a prendere in gestione VPS per poter ottimizzare le performance.

Diciamo che si imbarca nello sviluppo di un applicazione per il web, che sia php, ruby, python o anche perl, e lo vuole fare seriamente DEVE prendere un VPS. Non ci si scampa. MySQL deve essere ottimizzato (le installazioni di default fanno ridere), PHP necessita di un paio di librerie aggiuntive che mancano sempre (come APC o eAccelerator) ed Apache/Lighttp va configurato per il verso.

CodeIgniter l’ho usato per piccole cose personali e ne sono stato soddisfatto, ma fino a quando non diventerà un framework PHP5 non lo considererò mai per sviluppare un possibile progetto “commerciale” in PHP. Piuttosto preferisco muovermi su strumenti come Symfony, Zend Framework e qualche libreria eZ Component.

Di Mac non so, non l’ho specificato ma io ho installato Django su Linux.

Il collo di bottiglia più grande forse è solo l’hosting, che in italiano scarseggia (c’è solo unbit mi sembra)!

Io su Mac ho trovato non poche difficoltà a patchare la versione di MySQL per installare il modulo per Python tanto che alla fine ho abbandonato MAMP e adesso lavoro con Apache e MySQL senza ausilii esterni per avviarli e gestirli (MAMP è comodo perchè ti dà phpMyAdmin oltre che eAccelerator…)

Per il resto secondo me rispetto a framework PHP lo vedo un pò più “difficile” da usare per chi non ha il pieno controllo della macchina su cui lavora.

Adesso che l’ho installato ed incomincerò ad utilizzarlo sicuramente apprezzerò anche i sui pregi 😉

Guarda secondo me non c’è niente di difficile riguardo l’installazione: io uso solitamente XAMPP e far lavorare Django con mysql non è stato niente di particolarmente complicato. Non mi va di piazzarti link la prima volta che commento 🙂 però ho scritto due righe di appunti sull’installazione e l’unica difficoltà è stata solo fare un link simbolico per il socket del database.

Sono d’accordo per l’hosting e sul discorso ssh (che fa comodo).

Per la documentazione, vale lo stesso per qualunque altra cosa: in italiano si trova sempre troppo poco.

Poi pero me Django non è il “non plus ultra” dei framework per lo sviluppo rapido: ha i suoi pro, ha sicuramente i suoi contro. È solo un altro valido strumento: la scelta del mezzo dipende sempre da quello che si vuole sviluppare.

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.