
WebAssembly 3.0
WebAssembly 3.0
WebAssembly 3.0 เป็นเวอร์ชั่นใหม่ล่าสุดของมาตรฐาน WebAssembly ที่ได้รับการประกาศเป็นมาตรฐาน "live" เมื่อเดือนกันยายน 2025 โดยมีการอัปเดตที่สำคัญและขยายฟีเจอร์อย่างมากเมื่อเทียบกับเวอร์ชั่น 2.0 ที่ออกมาเมื่อสามปีก่อน
ฟีเจอร์สำคัญของ WebAssembly 3.0
- รองรับการใช้ที่อยู่หน่วยความจำแบบ 64 บิต (i64) แทนที่ 32 บิต (i32) ทำให้ขนาดพื้นที่หน่วยความจำที่แอปพลิเคชันสามารถใช้งานได้ขยายจาก 4GB เป็น 16 exabytes (16EB) ซึ่งมีความสำคัญมากสำหรับแอปนอกระบบเว็บที่ต้องการพื้นที่หน่วยความจำขนาดใหญ่ ถึงแม้ในระบบเว็บจะจำกัดไว้ที่ประมาณ 16GB ก็ตาม
- รองรับการใช้งานหน่วยความจำหลายออบเจ็กต์ (multiple memories) ในโมดูลเดียวกัน ทำให้สามารถบริหารหน่วยความจำแบบแยกส่วนได้ดีขึ้น
- มีการเพิ่มการสนับสนุนการเก็บข้อมูลแบบ Garbage Collection เพื่อจัดการหน่วยความจำอัตโนมัติ โดยคอมไพเลอร์สามารถใช้โครงสร้างข้อมูลต่างๆ อย่างมีประสิทธิภาพมากขึ้น
- เพิ่มการสนับสนุนประเภทข้อมูลแบบ Typed References ที่ช่วยให้ลดการตรวจสอบชนิดข้อมูลที่ต้องทำตอนรันไทม์
- เพิ่มฟีเจอร์ tail calls, การจัดการ exception, และ SIMD vector instructions ที่ผ่อนคลายข้อจำกัดเรื่องประสิทธิภาพในการใช้งานข้ามแพลตฟอร์ม
- มีโปรไฟล์การทำงานแบบ deterministic execution profile เพื่อให้ผลลัพธ์ของคำสั่งฟลอยทิ้งและคำสั่ง SIMD มีความแน่นอนเหมือนกันในทุกแพลตฟอร์ม
- ปรับปรุง API JavaScript ที่รวมถึงฟังก์ชันการจัดการสตริงในตัว ช่วยให้การใช้งานกับ JavaScript เรียบง่ายและทรงพลังมากขึ้น
- ได้เปลี่ยนมาใช้เครื่องมือ SpecTec ในการทำเอกสารสเปค ทำให้มาตรฐานมีความน่าเชื่อถือและตรวจสอบได้ง่ายขึ้น
การใช้งานและความหมาย
WebAssembly 3.0 ทำให้สามารถจัดการแอปพลิเคชันที่มีความซับซ้อนและต้องการหน่วยความจำมากได้ดีขึ้น ทั้งในบริบทของแอปพลิเคชันเว็บและนอกเว็บ เป็นการขยายขอบเขตการใช้งาน WebAssembly ให้หลากหลายมากขึ้น และรองรับภาษาโปรแกรมระดับสูงใหม่ๆ ที่เริ่มรองรับการคอมไพล์ไปยัง WebAssembly อาทิ Java, OCaml, Scala, Kotlin, Scheme, Dart
WebAssembly 3.0 เริ่มถูกนำมาใช้จริงในเว็บเบราว์เซอร์ใหญ่ๆ และเครื่องมือรันไทม์ที่เป็นสแตนด์อโลน เช่น Wasmtime ก็กำลังอัปเดตตาม
สรุปแล้ว WebAssembly 3.0 เป็นก้าวสำคัญที่ช่วยให้ WebAssembly เป็นแพลตฟอร์มที่ทรงพลังและยืดหยุ่นมากขึ้นสำหรับการรันโค้ดที่รวดเร็วและข้ามแพลตฟอร์มอย่างแท้จริง