Vì sao nên chú ý đến WebAssembly
(harshal.sheth.io)- Giới thiệu về WebAssembly (WASM), từ việc hiện nay nó đang được sử dụng ở đâu cho tới dự đoán về những lĩnh vực sẽ sử dụng trong tương lai
Đặc điểm của WASM
-
Tính di động: chạy ở bất kỳ đâu trên trình duyệt/máy chủ dưới dạng bytecode đã được tiêu chuẩn hóa
-
Tính phổ quát: nhiều ngôn ngữ như C, Rust, Go, Python, Ruby có thể biên dịch sang Wasm
-
Hiệu năng gần mức native: trung bình chậm hơn native khoảng 1.45~1.55 lần nhưng luôn nhanh hơn JavaScript
-
Thời gian khởi động nhanh: nhanh hơn Docker container 10~100x, và trên trình duyệt cũng nhanh hơn việc phân tích cú pháp/thông dịch Javascript
-
An toàn: được phát triển với web là trọng tâm nên an toàn thông qua sandbox bộ nhớ và giới hạn tính năng
Những lĩnh vực WASM hữu ích
-
Cải thiện tốc độ JavaScript
-
Cung cấp khả năng tương thích giữa các ngôn ngữ lập trình
-
Runtime cho hệ thống plugin đa ngôn ngữ
-
Sử dụng an toàn nhiều thư viện bên thứ ba dưới dạng engine sandbox nhúng
-
Tương lai của containerization: nhanh hơn Docker, footprint nhỏ hơn và an toàn hơn
-
Nền tảng FaaS/Serverless
-
Blockchain: có thể được dùng làm runtime hiệu năng cao để thực thi smart contract
Dự đoán và cơ hội
- Kiến trúc ứng dụng mới
→ Có thể chia nhỏ microservice thành các thành phần còn nhỏ hơn
- Brownfield Deployment
→ Tích hợp Docker và Wasm container trong lớp orchestration
- Framework Serverless/Edge được tiêu chuẩn hóa
→ Hiện tại Fastly, Lambda, Fission đang tự xây dựng nền tảng riêng, nhưng cũng có khả năng sẽ được tiêu chuẩn hóa
→ "Terraform of Serverless"
- Quản lý package
→ Mọi ngôn ngữ đều có hệ sinh thái package riêng
→ WASM cần một package manager. Có WAPM nhưng gần như đang ở trạng thái ngủ đông
Kết luận
- WebAssembly tốt như vậy thì tại sao vẫn chưa được dùng rộng rãi hơn?
→ Marketing chưa tốt. Nó không chỉ giới hạn ở Web hay Assembly nên ngay từ cái tên đã chưa phù hợp
→ Phần lớn hoạt động marketing nhắm vào web developer, nhưng tiềm năng thực sự vượt xa trình duyệt
→ Tiêu chuẩn WebAssembly vẫn chưa hoàn thiện
→ Khả năng tương thích giữa các ngôn ngữ vẫn còn rất kém
→ Trải nghiệm dành cho developer còn thiếu rất nhiều
-
Tuy vậy, nhiều mặt đang được cải thiện và trong 1~2 năm tới sẽ đạt tới trạng thái có thể chấp nhận được
-
Các hoạt động liên quan tới WebAssembly cùng hệ sinh thái và cộng đồng đang bước vào giai đoạn bùng nổ
1 bình luận
Ngay cả khi tìm kiếm WebAssembly/WASM trên GeekNews, bạn cũng có thể thấy có rất nhiều bài viết.
Tôi chỉ liệt kê các bài viết chính.
WebAssembly được công bố chính thức là khuyến nghị của W3C https://vi.news.hada.io/topic?id=1091
WebAssembly, liệu có thể mở rộng ra ngoài trình duyệt? Liên minh Bytecode xuất hiện https://vi.news.hada.io/topic?id=901
MS/Google/Arm và nhiều bên khác tham gia Liên minh Bytecode https://vi.news.hada.io/topic?id=4172
→ Tổ chức phi lợi nhuận được thành lập với mục tiêu đưa WebAssembly vào sử dụng vượt ra ngoài trình duyệt
Xu hướng của JavaScript trong năm 2020 và về sau - WebAssembly https://vi.news.hada.io/topic?id=2778
WebAssembly có thể chạy JavaScript nhanh như thế nào https://vi.news.hada.io/topic?id=5167
Amazon Prime Video hỗ trợ 8.000 loại thiết bị bằng cách sử dụng WebAssembly https://vi.news.hada.io/topic?id=5858
WebAssembly mang lại khả năng mở rộng mới cho network proxy https://vi.news.hada.io/topic?id=1722
Phát hành Wasmer 1.0 https://vi.news.hada.io/topic?id=3540
WebVM, máy ảo x86 serverless chạy trong trình duyệt https://vi.news.hada.io/topic?id=5893