Ви вже описали, що це таке . Використання полягає в тому, що мова низького рівня, яка працює в усіх браузерах, досить швидка в більшості і дуже швидка в деяких. Те, що ви робите для цього, настільки ж відкрите, як і будь-яка інша мова програмування.
Випадок використання Mozilla, здається, найбільше захоплюється таким: Уже існують способи компіляції мов із LLVM-пакетами (найбільш чітко C та C ++) до JavaScript через Emscripten. asm.js дуже близький до того, що Emscripten вже видає, тому це дозволяє коду Emscripten (який вже вражає швидкість на сьогоднішніх компіляторах JavaScript JIT) стати ще швидшим, сприяючи меті перенесення існуючих баз коду до Інтернету. Знову ж таки, для чого саме ви це використовуєте, це ваше рішення. Перенос ігор - це один із випадків використання (до яких Mozilla, мабуть, активно займається), але є безліч речей, написаних на C та C ++, досить багато з яких можуть стати в нагоді для чийогось веб-сайту. Деяких я бачив, як розлітався (плюс деякі з моїх власних розробок), без жодних гарантій щодо доцільності:
- Перенесення алгоритмів загального призначення (наприклад, zlib, libjpeg, openssl, FFT-реалізацій) для розширення можливостей JavaScript / веб-сайтів робити більше, не створюючи нового веб-стандарту та залежно від окремих браузерів для його реалізації.
- Перенос інтерпретаторів, щоб інші мови, крім JavaScript, могли працювати в браузері, з меншими накладними витратами та мінімальними зусиллями переносу.
- Використання asm.js як бекенда для більшої кількості компіляторів, особливо тих, які не відповідають карті JavaScript і не потребують більшості його функцій та накладних витрат. Прикладом може бути мова, розроблена для швидкої чисельної роботи без розподілу пам'яті.
- Використання asm.js для створення JIT в JavaScript. Він може взагалі реалізувати будь-яку мову - наприклад, ActionScript .
- У цьому ж ключі перенесення існуючих компіляторів JIT для запуску у браузері (пор. Перекладачі перекладачів, фактично з нульовими накладними витратами над JS). Це, мабуть, можливо лише тоді, коли компілятори JIT автоматично генеруються, як у PyPy.