Luca Annunziata

Chrome 31 e il codice per dominarli tutti

Nuove funzioni che consentono di scrivere una sola versione delle proprie web-app garantendosi prestazioni assolute su tutte le piattaforme. La compilazione avviene al volo sul proprio PC

Roma - 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
Notizie collegate
  • TecnologiaChrome 32 abbatte il rumore del WebLa beta appena rilasciata presenta miglioramenti soprattutto sul piano dell'usabilità. Dando una mano ai navigatori in ogni situazione, anche se usando Windows 8 in versione Metro
40 Commenti alla Notizia Chrome 31 e il codice per dominarli tutti
Ordina
  • Appello alla redazione: fate un articolo su ASM.JS, perchè è una cosa che tecnicamente surclassa NaCl.

    ASM.JS permette di continuare ad usare JavaScript ed ottenere performance (misurate) che sono la metà del codice nativo C/C++ compilato. Si tratta di compilare codice C/C++ in codice JavaScript, da far girare in qualsiasi browser con quelle performance.

    Per dimostrare la fattibilità hanno ricompilato Unreal 3 (il gioco) in JavaScript+WebGL con ASM.JS e lo hanno caricato e giocato dentro Firefox. Poi per dimostrare quanto margine avevano ancora, hanno compilato allo stesso modo DOOM e lo hanno giocato su uno schermo virtuale piazzato dentro lo scenario del gioco Unreal (in pratica mentre giocavi ad UNREAL dentro Firefox, ti imbattevi in una stanza dove c'era uno schermo dove il personaggio di unreal poteva giocare a DOOM).
  • - Scritto da: bradipao
    > Appello alla redazione: fate un articolo su
    > ASM.JS, perchè è una cosa che tecnicamente
    > surclassa
    > NaCl.
    >
    > ASM.JS permette di continuare ad usare JavaScript
    > ed ottenere performance (misurate) che sono la
    > metà del codice nativo C/C++ compilato.
    Perdere il 50% di prestazioniDeluso e lo chiami miglioramento???
    non+autenticato
  • contenuto non disponibile
  • - Scritto da: Dr Doom
    > Perdere il 50% di prestazioniDeluso e lo chiami
    > miglioramento???

    Forse mi sono spiegato male: prendi un sorgente C/C++, lo compili con ASM.JS e ti esce un JavaScript che gira nel browser. Le performance di questo JavaScript che gira nel browser sono "addirittura" il 50% di quelle del C/C++ compilato nativamente.

    Tu dirai: ma come dimezzo le performance? Si, ma è un JavaScript che gira in un browser.
  • - Scritto da: Dr Doom

    > Perdere il 50% di prestazioniDeluso e lo chiami
    > miglioramento???

    è meglio delle altre alternative basate su js

    ho il dubbio che non ti sia chiaro che
       convenienza per il programmatore ==> perdita di performance

    e no, non si può usare il C per tutto, perchè è dannatamente difficile, e rende praticamente impossibile creare programmi grandi e complessi

    e comunque è svariate volte più lento dell'assembly, quindi perchè non usiamo quest'ultimo ( già che ci siamo )?

    senza contare che implementare un algoritmo in hardware lo accelera di 3-4 ordini di grandezza, quindi perchè non usiamo vhdl e realizziamo asic custom o, al limite, usiamo gli fpga?

    vedi, i modi per rendere veloce il software ci sono, ma costano in termini di tempo, denaro e fatica, e il tempo umano costa molto molto di più del tempo macchina
    non+autenticato
  • - Scritto da: collione
    > - Scritto da: Dr Doom
    >
    > > Perdere il 50% di prestazioniDeluso e lo chiami
    > > miglioramento???
    >
    > è meglio delle altre alternative basate su js
    >
    > ho il dubbio che non ti sia chiaro che
    >    convenienza per il programmatore ==>
    > perdita di
    > performance
    >
    > e no, non si può usare il C per tutto, perchè è
    > dannatamente difficile, e rende praticamente
    > impossibile creare programmi grandi e
    > complessi

    Terza riga dell'articolo:
    "l'esecuzione di codice scritto in C/C++ all'interno del browser"

    almeno leggere prima di sparare razzate?A bocca aperta
    non+autenticato
  • - Scritto da: Dr Doom

    > Terza riga dell'articolo:
    > "l'esecuzione di codice scritto in C/C++
    > all'interno del
    > browser"
    >
    > almeno leggere prima di sparare razzate?A bocca aperta

    vedo che hai problemi seri nel comprendere l'italiano

    io stavo parlando di asm.js non dell'articolo!!!! e asm.js usa javascript e non c come linguaggio
    non+autenticato
  • - Scritto da: collione
    > - Scritto da: Dr Doom
    >
    > > Terza riga dell'articolo:
    > > "l'esecuzione di codice scritto in C/C++
    > > all'interno del
    > > browser"
    > >
    > > almeno leggere prima di sparare razzate?A bocca aperta
    >
    > vedo che hai problemi seri nel comprendere
    > l'italiano
    >
    > io stavo parlando di asm.js non dell'articolo!!!!
    > e asm.js usa javascript e non c come
    > linguaggio
    se vuoi parliamo anche di calcio, ma l'articolo originale parlava proprio di c...
    non+autenticato
  • - Scritto da: Dr Doom

    > se vuoi parliamo anche di calcio, ma l'articolo
    > originale parlava proprio di
    > c...

    vedo che ti piace rigirare la frittata

    io ho risposto a questo http://punto-informatico.it/b.aspx?i=3931215&m=393...

    quando parlavi di 50%, ti riferivi ad asm.js o a ciò di cui parla l'articolo?

    io ho capito che il riferimento fosse ad asm.js e quindi ho risposto di conseguenza

    o vuoi fare come l'altra volta, con la storia dei microkernel che non usa nessuno, finita con me che citavo il fatto che l4 è usato in tutti i processori base-band di qualcomm? ovviamente tali processori sono integrati in tutti i SoC qualcomm montati su milioni di smartphone e compagnia
    non+autenticato
  • - Scritto da: collione
    > o vuoi fare come l'altra volta, con la storia dei
    > microkernel che non usa nessuno, finita con me
    > che citavo il fatto che l4 è usato in tutti i
    > processori base-band di qualcomm? ovviamente tali
    > processori sono integrati in tutti i SoC qualcomm
    > montati su milioni di smartphone e
    > compagnia
    E la tua fonte, è tuo cuGGino che lavora alla Qualcomm?
    non+autenticato
  • - Scritto da: Dr Doom

    > E la tua fonte, è tuo cuGGino che lavora alla
    > Qualcomm?

    ma documentarsi, prima di sparare vaccate e fare figuracce, è così difficile?

    http://www.nicta.com.au/media/previous_releases3/2...

    qualunque pollo lavori nel settore embedded ( io sono uno di questi ), sa che i bbp di qualcomm usano l4

    l'ho detto ad altri e lo dico pure a te: "capisco che siete gamer adolescenti, ma almeno non fate gli arroganti, visto che non siete del settore e certe cose non le capite/sapete"
    non+autenticato
  • per motivi di sicurezza e questi rientrano dalla finestra con la stessa idea balzana?
    Google sta andando sempe di più verso una deriva pericolosa.
    non+autenticato
  • - Scritto da: AxAx
    > per motivi di sicurezza e questi rientrano dalla
    > finestra con la stessa idea
    > balzana?
    > Google sta andando sempe di più verso una deriva
    > pericolosa.
    Qui lo ripetiamo da anni, ma qualcuno non lo vuole capire e si fa prendere per i fondelli dal tutto gratis e tutto open.
    non+autenticato
  • la tua agenda la conosciamo fin troppo bene

    solo apple fa cose stupende, vero!?!

    in fondo Dio è infallibile, è scritto pure nella Bibbia
    non+autenticato
  • - Scritto da: Lesto
    > - Scritto da: AxAx
    > > per motivi di sicurezza e questi rientrano dalla
    > > finestra con la stessa idea
    > > balzana?
    > > Google sta andando sempe di più verso una deriva
    > > pericolosa.
    > Qui lo ripetiamo da anni, ma qualcuno non lo
    > vuole capire e si fa prendere per i fondelli dal
    > tutto gratis e tutto
    > open.
    si tratta di codice "dentro al browser" ciò che rende pericoloso activex è il fatto che si tratta di codice "fuori dal browser" eseguito altrettanto "fuori dal browser".
    Ti sembra la stessa cosa?
    P.S. funziona pure sul tuo amato safaruccio quindi zitto e tracanna.
    non+autenticato
  • In pratica reinventano la ruota.
  • - Scritto da: mauromol
    > In pratica reinventano la ruota.
    una delle due citate è quadrataA bocca aperta
    non+autenticato
  • - Scritto da: Dr Doom
    > - Scritto da: mauromol
    > > In pratica reinventano la ruota.
    > una delle due citate è quadrataA bocca aperta

    Ed e' anche bucherellata.
    Molto bucherellata.