- Gamma NT - https://congngheweb.vn -

WebAssembly: Dạng thức nhị phân mới trợ giúp biên soạn ứng dụng cho các website

Ngày nay, công nghệ phát triển đòi hỏi tiêu chuẩn của các website [1] cũng phải nâng cấp và ngôn ngữ lập trình JavaScript cũng không nằm ngoài phạm vi thay đổi. Thực tế, trong suốt những năm qua, các lập trình viên vẫn tìm cách phát triển các chương trình biên dịch mã của các ngôn ngữ khác sang JavaScript nhằm khắc phục những hạn chế này.

Một số dự án khác lại tìm cách thêm những tính năng mới cho ngôn ngữ lập trình này, điển hình như TypeScript của Microsoft, hay tăng tốc độ xử lý của nó như dự án asm.js của Mozilla. Hiện tại, nhờ có sự hợp tác của 3 ông lớn Google [2], Microsoft và Mozilla, tất cả những cải tiến này sẽ được tập hợp lại trong một dạng thức nhị phân mới trợ giúp biên soạn ứng dụng cho các website [3] có tên WebAssembly.


WebAssembly là dạng mã nhị phân mới đang được cân nhắc nhằm thay thế JavaScript?

Định dạng mới này cho phép các lập trình viên soạn mã cho trình duyệt [4] (hiện chủ yếu tập trung vào ngôn ngữ C/C++), và sau đó sẽ được JavaScript xử lý. Như vậy, thay vì phải phân tích toàn bộ mã, công việc tiêu tốn khá nhiều thời gian (đặc biệt với mảng web cho điện thoại), thì nay họ có thể giải mã WebAssembly nhanh hơn rất nhiều. Nói cách khác, WebAssembly sẽ cung cấp cho lập trình viên một mục tiêu biên soạn duy nhất mà sau đó sẽ trở thành tiêu chuẩn web cho tất cả các trình duyệt.

Trước đây, JavaScript là các tập tin văn bản đơn thuần được tải xuống từ máy chủ sau đó được phân tích và biên soạn bởi các công cụ JavaScript trong trình duyệt. Nay đội ngũ WebAssembly quyết định sẽ dùng khuôn nhị phân vì ở định dạng này, mã được nén nhiều lần hơn so với chuẩn văn bản JavaScript. Hơn nữa, máy có thể giải mã nhị phân nhanh gấp 23 lần nguyên mẫu hiện tại so với việc phân tích mã asm.js. Với cái bắt tay giữa Mozilla và Google cùng 2 dự án nhằm cải thiện tốc độ web lần lượt là asm.js và Native Client, WebAssembly hứa hẹn sẽ tận dụng tối đa lợi thế để phát huy khả năng.


Tuy nhiên, JavaScript sẽ không hoàn toàn bị thay thế bởi WebAssembly. Cả 2 định dạng mã sẽ luân phiên đảm nhận các vai trò khác nhau.

Bước đầu, định dạng này sẽ cung cấp những tính năng tương tự asm.js. Các nhà phát triển web [5] có thể dùng công cụ Emscripten cho WebAssembly như trên asm.js. Thêm vào đó, đội ngũ kỹ sư này cũng dự định thay đổi ngôn ngữ WebAssembly của thư viện polyfill sang JavaScript để có thể chạy trên bất cứ trình duyệt nào, kể cả những trình duyệt không hỗ trợ WebAssembly. Sau đó, nhóm có dự định xây dựng thêm nhiều công cụ khác như trình biên dịch, gỡ rối… và hỗ trợ nhiều ngôn ngữ hơn như Rust, Go và C#.

Họ cũng lưu ý rằng định dạng này sẽ không thay thế JavaScript mà sẽ chỉ biên soạn nhiều ngôn ngữ hơn cho web. Trong tương lai rất có thể WebAssembly sẽ được dùng song song với JavaScript. Ví dụ, định dạng mới này sẽ được dùng trong nhiều ứng dụng như hoạt hình, hình ảnh, file nén… trong khi Javascript sẽ được dùng để viết giao diện người dùng. 

 

Theo Trí Thức Trẻ