Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Greenpeace
PyCon Due, un resoconto in esclusiva per P.it (5/6)
Scritto da Paolo De Nictolis il 20-05-2008 ore 09:11
Di nuovo in sessione plenaria, ci arriva la voce dell’engineering di Google con Brian Fitzpatrick, una frizzante parentesi, di sicuro il talk più pieno di verve di tutte le giornate. Fitzpatrick vuole parlarci del buon marketing, ovvero come rendere un buon prodotto attraente, senza dover mentire su di esso: un talk che è un po’ marketing, un po’ customer service, un po’ usabilità. C’è un minimo di imbarazzo, ed un leggero glissare, ad una domanda finale piuttosto scontata - perché Google non rende disponibile il codice di tutti i propri programmi? - ma sicuramente le coloratissime slide dell'ingegnere Google (in realtà un umanista convertito sulla via di Damasco) non rimarranno dimenticate.

Si ricomincia nel primo pomeriggio con Alex Martelli ed il Google App Engine (GAE), la tanto discussa offerta di hosting di applicazioni (per ora solo web app Python, ma Martelli promette novità in futuro) sulla potente infrastruttura di Google, con qualche ovvio limite sui servizi offerti. Dopo averci parlato dell'interfaccia di configurazione per il deployment, Martelli si concentra sul GAE SDK per lo sviluppo di applicazioni in locale. Questo richiede Python 2.5 ed offre un file di configurazione della web app in formato YAML; il deployment sul server locale, ovvero dev_appserver, avviene con dev_appserver.py. L’applicazione proposta è delle più complesse, ovvero Hello, world!, ma viene mostrato subito come usare il package di logging e gli handler della request, sia del GAE che dell'interfaccia WSGI.

<center>2487732760_d7c0da2d16.jpg</center>

Il package google.appengine.ext.webapp offre non solo un semplice supporto a WSGI, ma soprattutto la consapevolezza del main, che permette di semplificare la gestione dello stato delle richieste. Viene poi spiegato come servire file statici, usando l’URL mapping nel file di configurazione YAML, e si discute la natura di sandbox del GAE: non vi è alcun accesso al file system, né possibilità di usare i socket, piuttosto che sottoprocessi e thread. Il login degli utenti usa di default quello degli account Google, ma lo sviluppatore può utilizzare, gestendolo però a mano, qualsiasi sistema alternativo. Dopo aver discusso l’invio di e-mail ed urlfetch, le slide finali si dilungano alquanto sul Datastore del GAE, di tipo relazionale SQL, ma molto limitato.

Alle 16.00 scatta l’ora dell’inglese Menno Smits e di IronPython. Vediamo brevemente Python in azione su .NET - in mattinata Bajo, il più convincente sosia vivente di Stallman, aveva mostrato il debugging e profiling con VS - ma soprattutto si parla di una bella applicazione IronPython, il foglio di calcolo Resolver One. Ma andiamo con ordine. Smits spende due parole (per forza di cosa una panoramica non certo esaustiva) su .NET e sul progetto IronPython, sottolineando il grosso vantaggio di avere a disposizione le librerie .NET, anche di terze parti. Sorvola velocemente sul progetto IronClad, nato per usare in maniera trasparente in IronPython le librerie Cython, ovvero quelle del compilatore Python standard.

Usa poi la shell interattiva di IronPython, ovvero ipy.exe (dopo aver configurato la variabile d’ambiente IRONPYTHONPATH nella cartella, che ospita l'installazione standard di Python, almeno 2.4) per creare da linea di comando, una WinForm, con relativo gestore dell'evento clic su un Button. Egli illustra quindi un'altra applicazione, un catalogatore di file MP3, che usa la libreria ID3Sharp per estrarne gli ID3, ed un pattern già tipico di F#, e che diventerà ricorrente man mano che prende forma il Dynamic Language Runtime (DLR): usare il designer di Visual Studio per creare una form e compilarla come assembly, importare l’assembly inIronPython (o IronRuby, o tutto quello che conseguirà), ed usarlo.

Infine, vediamo in azione il già citato Resolver One, un foglio di calcolo per ambienti finanziari che usa Python come macro language, sviluppato con eXtreme Programming e che è forse oggi la più grande applicazione IronPython esistente: il fatto che sia possibile creare un foglio di calcolo con circa 35.000 linee di codice la dice lunga su quella che è la vera forza di IronPython, ovvero l'avere lo sterminato universo .NET alle spalle. La sorpresa più bella arriva però dalle domande finali: mentre tutti chiediamo a Smits se è previsto un IronPython integrato in Visual Studio, tocca ad Hettinger, presente fra il pubblico, annunciare la disponibilità di IronPython Studio, un progetto sponsorizzato da ClariuS Consulting e creato grazie alla Visual Studio 2008 Shell, del quale ci aveva parlato su P.it Paolo Raviola. Un'avvertenza: anche se di Python non ve ne importa assolutamente nulla e volete continuare a programmare in C# o VB, finché morte non vi separi, usando IronPython Studio comincerete ad imparare come funziona davvero .NET, dietro le quinte dei form designer. Da provare.
Precedente: Agente di Windows e computer parlante
Successiva: Scrivere applicazioni web sicure (2/3)
Intervento di Jacopo Cocchi a.k.a. diobrando del 21-05-2008 ore 15:17, Udine (UD)
Barone
Barone
(261 interventi)
Iscritto il 18-09-2004
Per quanto mi riguarda l'intervento del Fritz è stato uno dei più interessanti perchè troppo poco si parla della percezione e dell'usabilità richiesta dagli utenti.
Questo è un limite che salta fuori quando vi sia un approccio di sviluppo che ha quasi esclusivamente a che fare e che si preoccupa + della parte di codebehind che sugli studi necessari invece ad un buon design del frontend (e che spesso si discostano dalle tradizionali branche scientifico-informatiche per le quali in questo settore, ovviamente, vi è spesso carenza nelle realtà delle PMI).
Limite forse colmato in parte dal crescere di interesse verso le webapp che obbligano, volenti o nolenti, a curare maggiormente l'aspetto dell'interfaccia.

Sul fronte IronPython sono perfettamente d'accordo con te e in disaccordo con quanto affermato da Di gregorio nel talk sul confronto tra i vari dialetti "pitoneschi".
Il motivo per preferire in futuro a CPython l'interpretazione NET non sta solo nelle prestazioni offerte dalla VM (e qui cmq c'è la speranza che PyPy diventi pronto per essere produttivo, prima o poi) ma quella appunto di godere di tutti quei benefici che si hanno rimanendo all'interno dell'infrastruttura Microsoft, utilizzando il framework, avendo la possibilità di consumare oggetti e librerie, creati con altri linguaggi ma sempre .NET ecc. ecc.

Il problema, a cui purtroppo non vi è ancora soluzione (almeno non totale) è che sì vi è integrazione anche al livello di tool ma purtroppo è solo parziale.
Qualche mese fa' avevo fatto una ricerca in proposito e scritto i risultati e purtroppo le vie apparivano ora come allora 3:
- IronPythonStudio ovvero una versione slim di VS orientata ad IronPython
- il pacchetto CTP per ASP Developer
- l'integrazione di Ironpython tramite il programma di estendibilità dell'SDK di Visual Studio Shell

Questo significa che ad oggi NON è ancora possibile estendere un'installazione preesistente di VisualStudio ed utilizzarlo nella sua completezza, ma con il supporto per IronPython.
Ed è quello che io, ma non solo io, mi auguro avvenga il prima possibile.

Detto ciò IronPython resta un progetto molto promettente in considerazione del fatto che la versione 2.0, a breve su questi schermi, supporterà anche Silverlight.
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.287 secondi.