วิศวกรจากกูเกิล, ไมโครซอฟท์, 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 อยู่แล้ว?
- asm.js นั้นดี แต่ก็ยังเป็น JavaScript ที่เบราว์เซอร์ยังต้อง parse โค้ดก่อนที่จะทำงานได้ เปรียบเทียบกับฟอร์แมตไบนารีของ WebAssembly ที่เป็นเนทีฟโค้ด เบราว์เซอร์สามารถถอดรหัสและใช้งานได้ทันที ( ในการทดลองพบว่าเร็วขึ้น 23 เท่า )
- สามารถหลีกเลี่ยงข้อจำกัดของ asm.js โดยใน WebAssembly นักพัฒนาสามารถเพิ่มฟีเจอร์ที่จำเป็นต่อประสิทธิภาพได้ง่ายกว่ามาก
ในขั้นแรก ทีมงานตั้งใจให้ WebAssembly มีฟีเจอร์เท่ากับ asm.js ในปัจจุบัน โดยนักพัฒนาสามารถใช้ Emscripten for WebAssembly ในการคอมไพล์ C++ โค้ดได้เลย
ที่มา: TechCrunch , WebAssembly FAQ
Comments
WebAseembly => WebAssembly
โดยสามารถให้นักพัฒนาสามารถ compile => โดยสามารถให้นักพัฒนา compile / โดยให้นักพัฒนาสามารถ compile
นั้นเอง => นั่นเอง
มาตราฐาน => มาตรฐาน
ขอบคุณครับ แก้ไขแล้วครับ
ขอบคุณครับ แก้ไขคำให้เป็นภาษาไทยและเพิ่มอธิบายข้อเปรียบเทียบ WebAssembly กับ asm.js เข้าไปครับ
มันจะทำให้ มีช่องโหว่มากขึ้นมั้ยเนี่ยครับ สำหรับผู้ใช้ Browser
@ Virusfowl
I'm not a dev. not yet a user.