Bạn đã mô tả nó là gì . Việc sử dụng là nó là một ngôn ngữ cấp thấp mà làm việc trên tất cả các trình duyệt, khá nhanh ở hầu hết và rất nhanh trong một số. Những gì bạn làm về điều này cũng giống như những gì bạn làm với bất kỳ ngôn ngữ lập trình nào khác.
Trường hợp sử dụng Mozilla có vẻ quan tâm nhất là: Đã có nhiều cách biên dịch ngôn ngữ với các phụ trợ LLVM (nổi bật nhất là C và C ++) sang JavaScript, thông qua Emscripten. asm.js rất gần với những gì Emscripten đã phát ra, vì vậy điều này cho phép mã Emscripten (vốn đã nhanh chóng gây ấn tượng trên các trình biên dịch JavaScript JIT ngày nay) để trở nên nhanh hơn, tiếp tục mục tiêu chuyển các cơ sở mã hiện có lên web. Một lần nữa, chính xác những gì bạn sử dụng này là quyết định của bạn. Trò chơi porting là một trường hợp sử dụng (mà Mozilla rõ ràng có liên quan tích cực), nhưng có vô số điều được viết bằng C và C ++, một vài trong số đó có thể có ích cho trang web của ai đó. Một số tôi đã thấy xung quanh (cộng với một số phát minh của riêng tôi), không có gì đảm bảo về tính khả thi:
- Chuyển các thuật toán cho mục đích chung (ví dụ: zlib, libjpeg, openssl, triển khai FFT) để trao quyền cho JavaScript / trang web để làm nhiều hơn mà không phải tạo một tiêu chuẩn web mới và tùy thuộc vào từng trình duyệt để thực hiện nó.
- Các trình thông dịch porting, để các ngôn ngữ khác ngoài JavaScript có thể chạy trong trình duyệt, với ít nỗ lực chuyển và tối thiểu.
- Sử dụng asm.js làm phụ trợ cho nhiều trình biên dịch, đặc biệt là các trình biên dịch không ánh xạ tốt tới JavaScript và không cần hầu hết các tính năng và chi phí của nó. Một ví dụ có thể là một ngôn ngữ được thiết kế cho công việc số nhanh mà không cần cấp phát bộ nhớ.
- Sử dụng asm.js để tạo JIT trong JavaScript. Nó có thể thực hiện bất kỳ ngôn ngữ nào - ví dụ ActionScript .
- Trong cùng một hướng, chuyển các trình biên dịch JIT hiện có để chạy trong trình duyệt (xem các trình thông dịch porting, với chi phí không quá hiệu quả so với JS). Điều này có lẽ chỉ khả thi khi trình biên dịch JIT được tạo tự động, như với PyPy.