Những tính năng mới của WebAssembly

Ngoc Huynh

Người bạn đồng hành của JavaScript giúp cho các ứng dụng web nhanh hơn có thể sẽ nhận được nhiều hỗ trợ ngôn ngữ hơn và tối ưu hóa trình duyệt hơn.

Với cam kết giúp các ứng dụng web nhanh hơn, WebAssembly – một dạng thức lập trình khả chuyển (portable code format), đang ngày càng vượt xa so với triển khai ban đầu của nó và nhận được nhiều sự ủng hộ tại World Wide Web Consortium, hiện WebAssembly đã sẵn sàng để phù hợp với nhiều cải tiến về ngôn ngữ và hiệu năng.

WebAssembly, được giới thiệu với sự quảng bá lớn vào năm 2015, là một định dạng cấp thấp nhằm vượt quá hiệu suất của JavaScript khi thực hiện các hoạt động tính toán chuyên sâu trong trình duyệt.

WebAssembly cung cấp định dạng mã nhị phân nhỏ hơn, tải nhanh hơn và có hiệu suất tốt hơn so với JavaScript. Nó có thể hữu ích trong các ứng dụng như các chương trình CAD dựa trên web, các mô hình 3D, máy tính và trò chơi.

Các nhà trình duyệt hỗ trợ WebAssembly

Sự hỗ trợ dành cho WebAssembly trong các trình duyệt là rất quan trọng. Và điều đáng mừng là bốn nhà cung cấp trình duyệt lớn – Apple, Google, Microsoft, và Mozilla – đều đã quyết định hỗ trợ WebAssembly.

WebAssembly đã đạt được trạng thái MVP vào tháng 3. Các triển khai cũng đang được thực hiện trong các trình duyệt Firefox và Chrome. Microsoft hỗ trợ WebAssembly MVP với các phiên bản beta của Edge thuộc chương trình Insider mà không cần có flag. Công cụ trình duyệt trong Safari, WebKit đã cung cấp một sự triển khai đầy đủ của WebAssembly vào tháng Sáu.

Bên cạnh đó, một thư viện 3D được gọi là Draco đã được Google phát hành sử dụng WebAssembly. Được sử dụng để nén và giải nén các mảng và đám mây hình học 3D, Draco có bộ giải mã WebAssembly cho hiệu năng tốt hơn.

WebAssembly có thể được sử dụng với JavaScript trong các ứng dụng, trong đó JavaScript được sử dụng cho scripting và WebAssembly được sử dụng cho hiệu năng tính toán. WebAssembly JavaScript APIs có thể tải các mô đun của WebAssembly vào một ứng dụng JavaScript.

WebAssembly sẽ nhận được nhiều sự hỗ trợ của ngôn ngữ hơn

Mục tiêu chính của WebAssembly là cho phép code được viết bằng các ngôn ngữ khác ngoài JavaScript có thể chạy trong trình duyệt. Công nghệ này đóng vai trò như là một trình biên dịch dành cho các ngôn ngữ khác. Hiện tại, C ++ là ngôn ngữ tiếp theo có thể sử dụng với WebAssembly.

Về mặt kỹ thuật hiện chúng ta đã có thể sử dụng các ngôn ngữ khác với WebAssembly, và đã có các triển khai thực nghiệm để làm việc với định dạng. Tuy nhiên, những ngôn ngữ này hiện nay không thể đạt được hiệu năng lý tưởng, sử dụng bộ nhớ, hoặc tích hợp DOM.

Vì thế, WebAssembly có thể sẽ được tăng cường để hỗ trợ các ngôn ngữ sử dụng garbage collection cấp cao hơn như Java, C# và Python.

Các cải tiến khác đang được xem xét cho WebAssembly bao gồm:

• Shared memory và multithreading. Đây có lẽ là yêu cầu hàng đầu của người dùng C ++. Đề xuất đang được thực hiện và sẽ hoàn thành vào năm 2018.
• Tối ưu hoá nội bộ trong các trình duyệt
• Các khả năng xử lý ngoại lệ (exception handling) và SIMD, để cho phép code được biên dịch chạy nhanh hơn.

Chia sẻ bài viết ngay

Nguồn bài viết : http://www.infoworld.com