giovedì, ottobre 14, 2010

QT Developer Days 2010

Sono appena tornato da quel di Monaco (o meglio, Unterschleissheim) dove ho partecipato al Qt Developer Days 2010. Sono andato col supporto, decisamente forzato, della mia azienda che mi ha fatto penare così tanto per questa trasferta che sono diventato più forte verso le avversità della vita (e ho imparato dove sono i fusibili nella Panda, leggendo il manuale in tedesco).

Come ben sapete Qt è ora di proprietà di Nokia ed è stato molto interessante vedere un grosso evento organizzato da un potente produttore di telefoni cellulari in un momento in cui la concorrenza è decisamente agguerrita.
C'erano un migliaio di persone, con un'organizzazione molto ben fatta ed un hotel/centro congressi veramente al top (ovviamente la mia ditta mi ha prenotato una stanza a 50km di distanza).

All'inizio ci sono state un po' di sessioni plenarie, interessanti ma di scarso valore aggiunto. Sono volate un po' di battute (tipo: se avete cellulari Nokia metteteli in modalità silenzioso col tasto in alto, tutti gli altri, beh spegneteli che si fa prima) e c'è stato un intervento del CTO di Nokia, seguito da uno di Dreamworks che ha fatto vedere un paio di trailer in anteprima (i tool di sviluppo che usano per fare i film son/saranno fatti con le Qt).
Poi è cominciata la conferenza vera e propria con 4 o 5 sessioni parallele su diversi temi. La qualità di queste sessioni è stata molto altalenante, si andava da presentazioni molto ben fatte, dettagliate a robe un po' buttate lì tenute da gente che aveva evidenti problemi a parlare in pubblico.

Impressioni e dati di fatto

Sicuramente Nokia sta investendo in Qt tutto il suo futuro. Il CTO ha parlato a lungo su questo ed ha detto che useranno Qt come piattaforma principale su tutti i cellulari nuovi, dove sarà l'unico ambiente per lo sviluppo di applicazioni e, finché l'hardware lo permette, anche sui cellulari vecchi.
Symbian non lo abbandonano, come speravo io, ma hanno già in programma un Symbian 4 per fine 2010 ed anche un 5 per l'anno prossimo. Mi è sembrato ci capire che verrà usato sui cellulari di fascia bassa, mentre per gli smartphone, pad, eccetera verrò usato MeeGo (che è un Linux più standard di Android). Ovviamente il mio 5800 rimarrà col suo merdoso Symbian S60v5.

Hanno sviluppato QtQuick e ci lavoreranno ancora per renderlo definitivamente l'ambiente di sviluppo che permetta di sviluppare applicazioni senza usare C++. Già adesso hanno mostrato applicazioni molto complesse scritte completamente in QtScript/DeclarativeUi senza una riga di C++. Senz'altro è il passo obbligato, altrimenti voglio vedere come riuscire a tenere in piedi un mercato software sul modello app store per la piattaforma Qt con tutti i balzelli di firma digitale che ha Symbian senza avere dietro l'hype dell'iPhone che li difende dalle critiche.

Altre tecnologie interessanti sono l'integrazione di WebKit con C++ per chi vuole fare delle applicazioni web stand-alone un po' più complesse. In pratica si usa HTML(5) come interfaccia grafica e si usa il C++ per la "business logic" (quante parolone che ho imparato). QtWebKit ha dei metodi per esportare gli oggetti C++ in Javascript per poterli usare direttamente. Devo ammettere che questa cosa mi ha impressionato non poco: una chiamata a addToJavaScriptWindowObject() e via, l'oggetto C++ è visibile in Javascript.

Ai presentatori, in maggior parte dipendenti di Nokia, è stata data grande libertà e da bravi geek hanno fatto le loro innovazioni. Uno, bravo, ha fatto le slide completamente in html5, con le transizioni in css3 e ha fatto una buona impressione. Un altro l'ha fatta con QtQuick e ha avuto qualche problema col testo che andava oltre lo schermo (non scalava con la risoluzione più bassa del proiettore). Un terzo ha voluto far vedere delle demo usando la versione beta dell'ambiente di sviluppo: crash. Un quarto ha perso una parte dei foglietti con la traccia del talk ed ha fatto soffrire insieme a lui tutta la sala.

C'era la possibilità di fare l'esame di certificazione a metà prezzo e così adesso sono anche un Nokia Certified Qt Developer. Sono certo che i milioni di euro ora sono molto più vicini.

Ah, può essere che mi cerchino per aver dato fuoco ad una Panda della Avis in mezzo all'aeroporto di Monaco. In tal caso non mi conoscete, ma sappiate che avevo le mie ragioni.

13 commenti:

  1. Ottima l'alternativa Webkit, perchè non si concentrano su quella zio po?

    Qtscript? E' un linguaggio a sè stante? Ne sentivamo il bisogno? (quanto dello shader opengl, suppongo)

    RispondiElimina
  2. "addToJavaScriptWindowObject() e via, l'oggetto C++ è visibile in Javascript." belin finalmente ci sono arrivati XD Asp.net lo fa da 5 anni

    RispondiElimina
  3. Mi stai dicendo che in ASP un oggetto C++ server-side diventa improvvisamente accessibile in javascript client-side?

    RispondiElimina
  4. non sono sicuro in c++, ma sono discretamente sicuro in c#

    RispondiElimina
  5. "Discretamente" non mi basta.

    In particolare sono stupito dal passaggio client-server. Per farlo, ASP dovrebbe mettere su un canale sicuro fra il browser ed il server (xmlhttprequest, websocket?), pubblicare ed inserire in qualche modo l'interfaccia nella pagina, in modo che il js sappia cosa fare.

    Mi sembra assai, assai complesso, con un sacco di punti deboli. Se mi dici ActiveX o Silverlight è un conto, ma se dici javascript... docs or didn't happen.

    RispondiElimina
  6. QtScript è javascript con qualcosa in più che non ricordo. Se conosci javascript conosci anche QtScript.

    RispondiElimina
  7. Quello che mi lascia più basito è il fatto che sia passato sotto silenzio questo:
    "Già adesso anno già mostrato applicazioni"
    I giorni passati in giro per l'europa non perdonano ;-)

    addToJavaShivers()

    RispondiElimina
  8. The grammar police is here! They discovered Rlieh !!

    Come faremo ??

    RispondiElimina
  9. AAAAAAllora..
    Se vuoi passarti un oggetto da JavaScript a C# puoi serializzarlo con JSon e passarlo avanti indietro che e' una gioia.
    Questo funziona anche con AJAX per cui ti spedisci l'oggetto tramite Ajax lato server, lo deserializzi, lo lavori, e lo spedisci di nuovo al client.
    E' questo quello che volevi fare o ho capito male?

    RispondiElimina
  10. Serializzare e JSON è un discorso diverso. Tu hai scritto:

    "addToJavaScriptWindowObject() e via, l'oggetto C++ è visibile in Javascript." belin finalmente ci sono arrivati XD Asp.net lo fa da 5 anni. [...] Non sono sicuro in c++, ma sono discretamente sicuro in c#

    Io ho chiesto documentazione. Attendo :-)

    RispondiElimina
  11. Beh non ci vuole molto a scrivere una estensione di Object del tipo:
    myObject.ToJavascript() che internamente serializza a json e rende disponibile l'oggetto in javascript..

    RispondiElimina
  12. Bene. Serializzare e passare roba era un discorso diverso che non c'entra molto con quello che stava dicendo il Venza. Qt lavora con sia il browser che gli oggetti sullo stesso telefono, quindi non c'e' un passaggio intermedio.

    Scrivi il tuo oggetto, lo pubblichi come accessibile via js, e da quel momento lo e'. E' forse piu' simile a COM come modello, ecco, ma ASP.Net non lo faceva 5 anni fa --che era quello che stavo cercando di capire

    RispondiElimina
  13. Cioe' io scrivo un oggetto in C, lo pubblico in javscript, ne cambio la proprieta' e dall'altra parte C se ne accorge?

    RispondiElimina

Ricordatevi che i commenti vengono moderati!!!