Django!
by Michele
E’ il nome di un framework web ispirato da Ruby on Rails che permette di realizzare applicazioni web molto velocemente utilizzando Python. Ci sono un sacco di framework per sviluppare applicazioni web scritte in Python, la più importante è sicuramente Zope. A parte Zope, nessun altro framework ha mai integrato così bene tutto in un unico prodotto, ed ecco perché Django sta riscontrando un sacco di successo anche se la maggior di questo deve essere attribuito alla scia che si sta portando dietro Rails. Questi nuovi framework hanno interessato da subito gli sviluppatori perché portano con se il massimo in fatto di design pattern e di velocità di sviluppo. Django è basato su MVC, non è ormai più concepibile un framework web senza la separazione dei dati dalla loro rappresentazione.
Ho approfittato di questi giorni di malattia per “giocare” un pò con Django. A prima vista mi è sembrato meno completo di Rails, infatti non auto genera il codice per unit test. Diversamente da Rails, per la generazione del modello dati, si creano gli oggetti Python e si danno in pasto al comando di amministrazione che genera la base dati SQL. Questo legame forte fra oggetti del modello ed SQL permette di aggiornare il modello stesso in un unico punto. Per assurdo non è richiesta neanche la conoscenza di SQL ( almeno nella fase di setup
).
In Django è presente un sistema di forwarding delle url simile a mod_rewrite e un sito per l’amministrazione. Veramente sorprendente il sito dell’amministrazione che permette automaticamente di gestire il modello dati appena creato con un’interfaccia che si auto modella.
Ho provato la versione 0.90 con MySQL 5 come db server, tutto su Mac OS X 10.4 con Python 2.3. Ho seguito il tutorial “Writing your first Django app” e in definitiva mi è sembrato interessante. Python lo conosco già da diversi anni e in Django mi ritrovo tutti i concetti di questo linguaggio. In Rails ancora fatico a capire alcune cose perché ovviamente solo da poco tempo ho messo le mani su Ruby.
Commenti
misà che c’è un errorino in questo articolo, IIRC django si è evoluto da solo per lungo tempo prima di essere reso pubblico quindi le similitudini con rails sono più che altro “affinità elettive”.
Comunque son curioso di sapere altre cose sul framework, ad esempio opinioni sull’interfaccia di amministrazione autogenerata. Attendo speranzoso un prossimo articolo
Non sapevo questa cosa, visto che è stato reso pubblico dopo Rails ho pensato che l’autore si fosse basato sul lavoro fatto su Rails. Comunque sono intenzionato a provare a scrivere un applicazione di esempio da zero.
Django, framework per Python
La piccola rivoluzione dei framework
Michele aggiunge complessità al problema, presentandoci un nuovo framework, stavolta per Python.
Ora, magari mi sbaglio, ma se qualcuno cerca e sceglie bene secondo me fa un buon investimento per il futuro.
Questi framework mi sembrano interessanti. Ma se alla fine per usarli bisogna avere un server personale.. non tutti gli hoster offrono il mod_perl. figuriamoci quello per python oppure ruby..
Se anche chi ha inventato PHP avesse fatto il tuo stesso ragionamento oggi neanche PHP avremmo disponibile su tutti i server. Per Rails ci sono un “sacco di servizi di hosting”:http://wiki.rubyonrails.com/rails/pages/RailsWebHosts e altri ne nasceranno in futuro. Bisogna credere e sponsorizzare questi progetti per avere un alternativa open source seria a Java, perché, mi dispiace, ma PHP non è un’alternativa seria.
Hai ragione. Bisogna credere in questi framework. Io però volevo solo dire che non essendo ancora molto diffusi, è difficile portarli fuori dai propri computers. Certo la lista che hai scritto è incoraggiante.
Un’altra cosa. Perchè non reputi php un valida alternativa a java ( sempre che siano confrontabili) ? Con la versione 5 php diventa ancora più potente. Ma anche qui gli hoster preferiscono non avere problemi di sicurezza e compatibilità e non aggiornano i server.
Il paragone fra PHP e Java non è sul linguaggio ma sul tipo di utilizzo che se ne fa. Ci sono persone che sono convinte che si possa realizzare un’architettura complessa con PHP, io penso che sia molto difficile e poco mantenibile proprio perché il supporto OOP di PHP è penoso. E’ vero, la versione 5 di PHP ha un grande supporto OOP e ne sono felice ma comunque rimane un linguaggio nato per essere inserito all’interno delle pagine HTML. I vantaggi che PHP 5 introduce poi sono vani visto che questa nuova versione non viene installata praticamente da nessun provider.
Scusa ma credo sia il caso tu dia una occhiata alla nuova versione di Django, riguardo agli unit test. A me risulta che li generi e come in automatico.
Quando ho scritto questo post non erano presenti ma se tu mi confermi che l’hanno inserito nell’ultima versione sono felice perché considero django un ottimo framework, anche perchè scritto con il mio linguaggio preferito