Portable Native Client (PNaCl), semplicemente “pinnacle” per gli amici: la versione stabile di Chrome 31, appena rilasciata, incorpora una tecnologia per l’esecuzione di codice scritto in C/C++ all’interno del browser, con la possibilità di fare a meno di Javascript e non doversi preoccupare troppo di che tipo di PC o device utilizzi l’utente finale. Che sia un ARM, un x86 o chissà che altro, la stessa programmazione funzionerà su tutte le piattaforme.
PNaCL succede a NaCL, ovvero la precedente versione della tecnologia che Google aveva lanciato nel 2011: l’idea di base rimane la stessa, eseguire un binario in una sandbox sfruttando al massimo le performance disponibili grazie ai potenti processori moderni, ma senza necessità di compilare diverse versioni per le diverse piattaforme (32 o 64bit, per esempio). In pratica grazie a PNaCL il codice viene inserito in un binario “semi-compilato” in una versione intermedia, che viene ulteriormente compilata sulla macchina dell’utente finale per renderla pienamente compatibile con l’hardware in uso. Il risultato dovrebbe essere uno sprint notevole per tutte le funzioni e le attività che fino a oggi sono state troppo complesse per essere riprodotte in un browser: editing foto-video, compressione, conversione tra formati, tutto quanto richiede una grafica molto elaborata ecc.
Lo stesso codice, inoltre, può anche essere tradotto in Javascript per esportarlo su altri browser: in pratica, Google prova a unificare il percorso di sviluppo di una web-app, garantendo piena compatibilità con i browser concorrenti offrendo in modalità open source le librerie necessarie , sperando che gli sviluppatori si affezionino all’idea. Qualcosa di simile Microsoft lo fa da anni con ActiveX, ma forse anche a causa del confinamento della tecnologia a Internet Explorer non è mai decollata davvero. Mozilla, dal canto suo, è critica sull’iniziativa: PNaCL viene visto più come un passo indietro che avanti per il cosiddetto “open Web”, visto che introduce delle caratteristiche non-standard che mal si conciliano con l’idea di una Internet interoperabile e realmente funzionale.
Per ora PNaCL funziona sulle versioni di Chrome dalla 31 in avanti, su tutte le piattaforme desktop, e Mountain View ha anche approntato un sito con degli esempi (che dirotta sulla versione surrogata che sfrutta la libreria pepper.js sui browser non compatibili) per mostrarla in funzione.
Luca Annunziata