Dal punto di vista degli sviluppatori, la novità più interessante introdotta con il rilascio di Chrome 31 da parte di Google è sicuramente l'integrazione del Portable Native Client (PNaCl o più familiarmente "Pinnacle"); si tratta di una feature, già presente nella versione beta dell'aggiornamento, che permetterà agli sviluppatori di compilare il proprio sorgente una sola volta in modo che sia compatibile con qualsiasi ecosistema hardware e di includere applicazioni in qualunque sito Web.
Sostanzialmente PNaCl è stato concepito per l'esecuzione di codice nativo all'interno dei browser, grazie ad esso si potrà per esempio compilare sorgenti scritti in C e C++ in un unico eseguibile che sarà in grado di funzionare, senza la necessità di alcuna installazione accessoria, su tutte le versione di Chrome per l'ambiente Desktop e su sistema operativo Chrome OS implementato dalla stessa Mountain View.
In pratica PNaCl esegue il wrapping di bytecode basato sull'infrastruttura di compilazione Low Level Virtual Machine in un eseguibile portabile, quest'ultimo potrà essere ospitato all'interno di un Web sever come qualsiasi altro componente di una Web applications; a Chrome spetterà poi il compito di convertire l'eseguibile in codice ottimizzato per l'architettura di riferimento nel momento in cui un client accede ad una determinata risorsa basata su PNaCl.
L'azione combinata del browser e di PNaCl escluderà l'incombenza di dover ricompilare un'applicazione a seconda dell'architettura hardware in dotazione su un dispositivo (x86, ARM..); questa nuova funzionalità si basa su un altro progetto di Big G, il NaCl (Native Client), pensato in particolare per la portabilità del codice nei browser, per estenderne gli ambiti di utilizzo e per il miglioramento delle prestazioni nell'esecuzione di applicazioni complesse.
PNaCl è un feature dedicata a Chorme, quindi gli sviluppatori dovranno utilizzare il supporto di librerie esterne, come per esempio pepper.js (che consente il deployment di codice nativo sia tramite eseguibile PNaCl che via JavaScript) per la compatibilità con altri browser.
Via: PNaCl