Il W3C ha conferito a WebAssembly lo status di standard raccomandato.

Consorzio W3C ha annunciato sull'assegnazione alla tecnologia WebAssembly dello status di raccomandazione. WebAssembly offre un codice intermedio universale di basso livello indipendente dal browser per l'esecuzione di applicazioni compilate da diversi linguaggi di programmazione. WebAssembly è posizionato come una tecnologia più promettente e portabile tra i browser per la creazione di applicazioni web ad alte prestazioni. WebAssembly può essere utilizzato per affrontare attività che richiedono elevate prestazioni, come la codifica video, l'elaborazione audio, la manipolazione grafica e 3D, lo sviluppo di giochi, operazioni crittografiche, calcoli matematici e la creazione di implementazioni portabili di linguaggi di programmazione.

WebAssembly ricorda molto Asm.js, ma si differenzia per il fatto che è un formato binario non legato a JavaScript. In WebAssembly non è necessario utilizzare un garbage collector, poiché si applica una gestione della memoria esplicita. Grazie all'uso del JIT per WebAssembly è possibile raggiungere un livello di prestazioni vicino al codice nativo. Tra i principali obiettivi di WebAssembly ci sono la garanzia di portabilità, la prevedibilità del comportamento e l'identità dell'esecuzione del codice su diverse piattaforme. Ultimamente, WebAssembly è anche promosso come una piattaforma universale per l'esecuzione sicura di codice in qualsiasi infrastruttura, sistemi operativi e dispositivi, senza limitarsi ai browser.

W3C ha standardizzato tre specifiche relative a WebAssembly:

  • WebAssembly Core – descrive una macchina virtuale a basso livello per l'esecuzione del codice intermedio WebAssembly. Le risorse associate a WebAssembly vengono fornite in formato «.wasm», simile al file «.class» in Java e contenente dati statici e segmenti di codice per lavorare con questi dati.
  • WebAssembly Web API – definisce un'interfaccia di programmazione basata sul meccanismo Promise per richiedere ed eseguire risorse «.wasm». Il formato delle risorse WebAssembly è ottimizzato per iniziare l'esecuzione senza attendere il caricamento completo del file, migliorando la reattività delle applicazioni web.
  • WebAssembly JavaScript Interface – fornisce un'API per l'integrazione con JavaScript. Consente di ottenere valori e passare parametri alle funzioni WebAssembly. L'esecuzione di WebAssembly è conforme al modello di sicurezza di JavaScript e tutta l'interazione con il sistema principale avviene in modo analogo all'esecuzione di codice JavaScript.

In futuro si prevede di preparare specifiche per funzionalità come:

  • Multithreading con memoria condivisa e accesso atomico alla memoria;
  • Operazioni vettoriali basate su SIMD, che consentono di parallelizzare l'esecuzione dei cicli;
  • Tipi di riferimento per riferimenti diretti agli oggetti dal codice WebAssembly;
  • Possibilità di chiamare funzioni senza sprecare spazio aggiuntivo nello stack;
  • Integrazione con i moduli ECMAScript – possibilità di caricare codice WebAssembly da JavaScript come moduli, conformi alle specifiche ECMAScript 6;
  • Modalità con garbage collector;
  • Interfacce di debug;
  • WASI (WebAssembly System Interface) – API per l'interazione diretta con il sistema operativo (API POSIX per lavorare con file, socket, ecc.).

    Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster