เปิดตัว WebAssembly ฟอร์แมตไบนารีแบบใหม่สำหรับเว็บเบราว์เซอร์

by gie3D
18 June 2015 - 15:13

วิศวกรจากกูเกิล, ไมโครซอฟท์, Mozilla และ WebKit ร่วมกันเปิดตัว WebAssembly เทคโนโลยีฟอร์แมตไบนารี "แบบใหม่" สำหรับเว็บเบราวเซอร์

นักพัฒนาสามารถคอมไพล์ภาษาโปรแกรม (ปัจจุบันเน้นที่ C/C++ ในอนาคตจะเพิ่มภาษาอื่นเข้าไป เช่น Rust, Go หรือ C#) ให้มาอยู่ในรูปแบบของฟอร์แมตไบนารีสำหรับเว็บ ทำงานบน JavaScript เอนจินบนเบราว์เซอร์ได้เลยโดยไม่ต้อง parse โค้ด Javascript ที่เป็นข้อความอีกต่อไป ผลคือการประมวลผลเร็วขึ้น (ต้นแบบปัจจุบันทำงานได้เร็วกว่าการ parse asm.js โค้ด 23 เท่า) และข้อดีอีกอย่างคือขนาดของโค้ดที่คอมไพล์ให้อยู่ในรูปแบบของไบนารีฟอร์แมตจะมีขนาดเล็กกว่า JavaScript

WebAssembly ยังเป็นเทคโนโลยีใหม่ที่หวังว่าเบราว์เซอร์ทุกตัวจะรองรับ (ซึ่งจากรายชื่อผู้เข้าร่วม รายใหญ่ก็มากันครบ) แต่ทางทีมผู้พัฒนาก็ออก Polyfill library เพื่อให้เบราว์เซอร์ในปัจจุบันสามารถทำงานกับ WebAssembly ได้ก่อน (Polyfill ทำหน้าที่ในการแปลง WebAssembly ฟอร์แมตไบนารีให้กลับมาอยู่ในรูปแบบของ JavaScript ที่เบราว์เซอร์สามารถทำงานได้)

ทำไมถึงต้อง WebAssembly ในเมื่อมี asm.js อยู่แล้ว?

  1. asm.js นั้นดี แต่ก็ยังเป็น JavaScript ที่เบราว์เซอร์ยังต้อง parse โค้ดก่อนที่จะทำงานได้ เปรียบเทียบกับฟอร์แมตไบนารีของ WebAssembly ที่เป็นเนทีฟโค้ด เบราว์เซอร์สามารถถอดรหัสและใช้งานได้ทันที (ในการทดลองพบว่าเร็วขึ้น 23 เท่า)
  2. สามารถหลีกเลี่ยงข้อจำกัดของ asm.js โดยใน WebAssembly นักพัฒนาสามารถเพิ่มฟีเจอร์ที่จำเป็นต่อประสิทธิภาพได้ง่ายกว่ามาก

ในขั้นแรก ทีมงานตั้งใจให้ WebAssembly มีฟีเจอร์เท่ากับ asm.js ในปัจจุบัน โดยนักพัฒนาสามารถใช้ Emscripten for WebAssembly ในการคอมไพล์ C++ โค้ดได้เลย

ที่มา: TechCrunch, WebAssembly FAQ

Blognone Jobs Premium