[Python] Why do really need all these web framework?

Enrico Franchi enrico.franchi a gmail.com
Mer 20 Apr 2011 15:52:47 CEST


Giorgio Zoppi wrote:

> vorrei aprire una discussione. In questi ultimi anni vi e stata una
> esplosione di framework per la programmazione web. Quello che non mi
> spiego, perche? Ce veramente
> bisogno di una cosi ampia scelta? Su cosa specializzarsi?

Io non so da quanto frequenti la community Python/Python web. Se la 
frequenti da prima del boom di Rails (e conseguente di Django), ti 
ricorderai che prima c'era la stessa cosa con i template engine e in 
genere oggetti per web (che all'epoca chiamavamo comunque framework).

In parte perche' per scriversi il proprio ci andava veramente poco.

In Python e' cosi: ci vuole poco codice per fare le cose. E se sei 
bravo, ce ne va anche meno, perche' essenzialmente ti affidi alla 
meta-programmazione.

Questo vale anche per i framework full-stack che si fanno oggi: specie 
se per un paio di componenti ci si appoggia all'esistente. Per dire, uno 
dei pezzi piu' rognosi e' l'orm, ma basta appoggiarsi a sqlalchemy o 
qualcuno che ci sta sopra ed e' fatta.

Perfino wsgi e' "quasi pronto" per lavorarci direttamente: aggiungerci 
sopra uno strato minimo per fare la cosa giusta e' veramente rapido.

Quindi perche'? Perche' e' *semplice*. E' divertente. E si capiscono un 
sacco di cose.

Io personalmente mi sono gia' scritto i miei due mini-frameworks (uno a 
tempo record in un pomeriggio sopra CGI e faceva tutto quello che mi 
serviva per quell'applicazione -- specifica -- che aveva appunto 
requisiti di deployment bizzarri -- o cgi o php --). Questo anni fa. 
Quindi "ho gia' dato" e mi sono divertito.

Per le mie esigenze userei Django oppure se devo fare cose esotiche 
web.py (non web2py). Poi magari oggi riguarderi web.py vs. flask. 
Qualche anno fa web.py mi era piaciuto molto: poche righe di codice, si 
poteva leggere direttamente il sorgente e saltare la documentazione, e 
in piu' di capivano un sacco di cose.

Ce ne e' bisogno? C'e' bisogno di centinaia di distro linux? Di una 
decina di shell? Non so quanti browser "minori", filemanager, window 
managers etc etc etc? L'open source funziona cosi'. I progetti che 
"restano" sono poi pochi rispetto a tutto questo. E', volendo, un 
approccio quasi darwiniano.

IMHO a *te* conviene guardarti i 2-3-4 piu' diffusi e scegliere fra 
quelli. Eventualmente avere due o tre soluzioni note (uno super-leggero 
per cose esoteriche, django per il resto, magari zope se ti piace).

BTW, hai visto quante diverse librerie ci sono in Java per fare le 
diverse cose?

-- 
.
..: -enrico-



Maggiori informazioni sulla lista Python