[Python] Gestionale come lo scrivo?(Was: Walks like Python. Runs like C).

Giovanni Porcari giovanni.porcari a softwell.it
Gio 22 Gen 2015 20:20:21 CET


> Il giorno 22/gen/2015, alle ore 18:13, enrico franchi <enrico.franchi a gmail.com> ha scritto:
> 
> 
> 
> 2015-01-20 19:42 GMT+00:00 Giovanni Porcari <giovanni.porcari a softwell.it>:
> 
> No guarda non è che non ci sia documentazione. Ce n'è tanta in rst, anche dentro ai sorgenti di genropy.
> Ci sono le docstring e ci sono vari documenti su vari aspetti della programmazione web con genropy.
> Però la qualità è molto modesta e non è nemmeno aggiornatissima. Per questo dico che non c'è.
> Nella mia testa una cattiva documentazione fa più danni di nessuna documentazione.
> 
> Oh, io mi fido di quello che dici tu: se dici che non c'e', per me non c'e' ;)
> Specie se dici che non e' aggiornata etc etc etc.
> 
> Insomma, il mio punto era che a volte basta una scintilla per fare partire le cose, tutto qui.
> 
>  
> Ci sono poi gli screencast di francesco: anche qui lo sviluppatore viene guidato passo dopo passo
> con gli screencast e la relativa pagina di spiegazione a partire dall'installazione fino
> alla scrittura di un applicazione di fatturazione completa. Non è forse tecnicamente descrivibile
> come documentazione ma comunque chiunque abbia provato, per quanto ne so, è riuscito a fare tutto.
> 
> E' certamente qualcosa di utile (si, probabilmente non e' documentazione). In Italiano immagino...
> 
> C'entra perchè, se avrai la pazienza di dare un occhio alle famose lezioncine di interfaccia,
> esiste una nutritissima collezione di widget che usi da python, un sistema di eventi lato
> client e uno store da cui i widget attingono.  Se guardi il codice di applicativi
> genropy e applicativi in wx o qt non ci sono molte differenze. Per questo ti dico
> la metafora template HTML e costruzione lato server è davvero lontana dalla nostra
> metodologia.
> 
> Si, ora non voglio divagare... ma e' una metafora parecchio lontana anche da come vengono fatte molte applicazioni web oggi. Non so dirti se si possa dire "la maggior parte delle", ma sicuramente un gran numero.

Qui confesso la mia ignoranza. Da quello che avevo visto di Django, tanto per fare un nome, 
vedevo una bella serie di template e python che lo popola.
Poi sono certo che ci sono altri framework che abbandonano questa metafora e fanno
cose differenti ma anche loro si dovranno porre il problema di 'spiegare' un modo di fare
differente da quello tradizionale.
> 
>  
> > Cioe'... e' vero che da un punto di vista sufficientemente alto Django e' un affare che ti fa pagine HTML dinamiche con una GUI smazzata in Javascript. Ma questo e' vero per *ogni* prodotto web. Cioe', la grana e' talmente grossa che non riesci a distinguere nulla: ovvero anche la distinzione che fai sotto dalla distanza a cui stai guardando Django va persa. Anche Genropy alla fine della fiera ti genera pagine HTML con pezzi di Javascript. Come Django, PHP, Rails.
> No, su questo no concordo :).
> Sono certo che *ogni* prodotto tradizionale funziona così.
> Ma in altri casi, come nel nostro, la metafora è completamente diversa.
> Noi, all'atto della richiesta di una pagina, rendiamo una paginetta HTML minimale (di fatto sempre la stessa) la quale fa costruire
> nel browser un client scritto in javascript che instaura un canale con una sua controparte nel server. Questa 'macchina' metà
> in python e metà in javascript crea i widget, li popola dinamicamente, riceve i risultati delle query e inserisce i dati
> nei widget opportuni, cambia al volo le proprietà dei widget stessi a seconda della business logic.
> Una pagina tradizionale vive poche decine di secondi. Una pagina di genropy per gestire un archivio clienti
> può essere richiesta alle 9 di mattina e chiusa alle 6 di sera. L'unica cosa che avrà dovuto transitare nella
> giornata saranno i dati.
> 
> Eh... ma oggi giorno tanto web e' fatto cosi'. Solo per citare uno dei prodotti piu' famosi, Angular. Single page, rich internet applications etc etc etc. Ci sono punti di contatto e differenze. Il problema e' che oggi il web e' "pagina dinamica" solo da un punto di vista superficiale. In realta', e' qualcosa di molto diverso in tantissimi casi.

Qui la mia ignoranza è sovrana. Tieni presente però
che noi offriamo una soluzione integrata dal database
ai widget, alle stampe. E per chi deve fare gestionali
è un molto comodo ;) 


> Questo stavo cercando di dirti prima quando dicevo che se ti metti al livello in cui si puo' asserire che alla fine dei conti Django e' template renderizzato + javascript... qualunque cosa lo e'. Per il semplice motivo che spesso e volentieri Django serve applicazioni che sia dal punto di vista di chi le programma che da quello di chi le usa sono qualcosa di completamente diverso.
>  
> Come al solito i tuoi interventi sono precisi e pertinenti e ti ringrazio del tempo che hai speso per rispondermi.
> Se poi avrai quella famosa oretta per vedere le lezioni su sandbox.genropy.org mi piacerebbe sentire cosa ne pensi.
> 
> Sigh.. ci sono andato solo per 10 minuti. Niente da dire, interessante, pulito, tutto bello. Poi un giorno se ci troviamo per una birra avrei alcune domande su scalabilita' e compagnia perche' sono curioso su alcune soluzioni tecniche come si comportano, se hai dati.
> 

Molto volentieri. Una birra ci sta sempre e confrontare delle idee è sempre stimolante.

Comunque se riesci a rubare altri  minuti guarda sta pagina esempio e dimmi che ne pensi.

http://sandbox.genropy.org/tutor/examples/comuni_italiani.py

Ci sono tre griglie che accedono rispettivamente a Regioni, Province e Comuni 
Selezionando una regione mostrano le province, selezionando una provincia
mostrano i comuni e selezionando un comune ne mostrano la pagina di wikipedia.

Al solito la pagina mostra anche il codice sorgente e se vuoi avere più spazio
basta cliccare la linguetta rossa o draggare lo splitter.

Se noti sono circa 60 righe di codice python. E mi pare anche
abbastanza leggibile. 

> Comunque da utente genropy l'avevo usata parecchio veh... certo, sara' stata una versione piuttosto vecchia (parliamo di... beh, di Pycon, presente). 

Si. Era preistoria e di strada ne abbiamo fatta tantissima ;)

Grazie ancora e buona serata

G



Maggiori informazioni sulla lista Python