Coniugare i vantaggi forniti dalle web application, quali neutralità, portabilità e sicurezza, con i vantaggi tipici delle applicazioni desktop, primo fra tutti la capacità di sfruttare appieno la potenza di calcolo dei computer client. Questo, a grandi linee, l’obiettivo perseguito da Google con il nuovo progetto open source Native Client , di cui è appena stata rilasciata una prima versione di test.
Tecnicamente parlando, Native Client è una tecnologia che permette alle web application di eseguire codice x86 nativo sul client , superando le limitazioni tipiche dei linguaggi di scripting. Questa caratteristica fa sì che le applicazioni web possano accedere alla piena potenza della CPU locale, e agire in modo molto simile al software desktop tradizionale.
“I PC di oggi possono eseguire miliardi di istruzioni per secondo, ma le attuali applicazioni web possono accedere solo a una piccola frazione di questa potenza di calcolo”, ha affermato Brad Chen, del Native Client Team di Google, in questo post . “Native Client è una tecnologia di ricerca, e l’obiettivo di questa release è mostrare tale tecnologia a ricercatori, esperti di sicurezza e community open source per ottenere il loro feedback e i loro contributi”.
Chen ha spiegato che Native Client potrà essere utilizzato, ad esempio, per aggiungere ad un sito di photo-sharing degli strumenti di fotoritocco che consentano all’utente di modificare le proprie immagini senza lasciare il sito. “Oggi sarebbe possibile fornire tale funzionalità utilizzando una combinazione di JavaScript e di elaborazione server side. Questo approccio, tuttavia, richiede il trasferimento delle immagini dal server al browser e viceversa, e potrebbe rivelarsi così lento da scoraggiare l’utente”, ha proseguito lo sviluppatore. “Con la possibilità di far girare in modo trasparente del codice nativo sulla macchina dell’utente, gli sviluppatori potranno implementare l’intero processo di elaborazione delle foto sulla CPU desktop, minimizzando in questo modo la quantità di dati trasferiti (le immagini rimangono infatti sul server, ndr) e le latenze”.
Native Client si compone di un motore runtime , di un plug-in per i browser e di tool per la compilazione basati sul noto software open source GCC.
Qualcuno ha già definito Native Client l’alternativa open source alla tecnologia ActiveX di Microsoft , ma in realtà – sebbene le due tecnologie abbiano finalità simili – l’approccio di Native Client è molto differente da quello adottato da BigM, e per certi versi più simile al progetto Alchemy di Adobe .
Chen sostiene che Native Client non è stato pensato per sostituire le tecnologie web esistenti , come AJAX, Flash, JavaFX o Silverlight. “Riteniamo che gli sviluppatori possano usare questa tecnologia insieme ad altre per creare applicazioni che offrano un’esperienza più ricca e dinamica di quanto fosse possibile fino ad oggi”.
Come ogni tecnologia che tenta di mettere a disposizione delle applicazioni web le risorse locali dei client, anche Native Client dovrà fare i conti con il fattore sicurezza : una web application capace di eseguire codice nativo sul client potrebbe infatti rivelarsi estremamente dannosa. Per scongiurare tale possibilità, Google ha spiegato che le applicazioni Native Client gireranno – come quelle Java – all’interno di una sandbox, e non potranno contenere certe sequenze di istruzioni. Il motore runtime sarà inoltre in grado di rilevare e bloccare in automatico ogni porzione di codice potenzialmente pericolosa, ma realizzare tutto rappresenterà una vera sfida per il progetto di Google: sfida che BigG spera di superare con l’aiuto della comunità.
Attualmente il plug-in di Native Client, scaricabile da qui , è compatibile con i browser Firefox, Safari, Opera e Google Chrome e con le versioni x86 di Windows, Linux e Mac OS X. Gli sviluppatori contano di portare presto il software anche su altre architetture hardware, quali ARM e PowerPC.
Il codice di Native Client è accompagnato dalla New BSD License .