วันจันทร์ที่ 20 มีนาคม พ.ศ. 2560

WebAssembly

Web Assembly Binary ใหม่สำหรับเว็บเบราว์เซอร์

             Web Assembly ถูกคิดค้นพัฒนาโดย วิศวกรจาก กูเกิล , ไมโครซอฟท์ , Mozilla และ Webkit เทคโนโลยีฟอร์แมตไบนารี แบบใหม่ สำหรับเว็บเบราว์เซอร์

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

ในขั้นแรก ทีมงานตั้งใจให้ Web-Assembly มีฟีเจอร์เท่ากับ asm.js ในปัจจุบัน โดยนักพัฒนาสามารถใช้ Emscripten for Web Assembly ในการคอมไพล์ C++ โค้ดได้เลย
         Web Assembly เป็น Virtual Instruction ที่วิ่งบน Browser และ Environment อื่นๆ เช่น Node.js ทำให้ความหวังของการทำโปรแกรมครั้งเดียว ไปวิ่งบนเครื่องไหนก็ได้ใกล้ความจริงเข้ามามากและที่สำคัญอีกอย่างคือ โปรแกรมเหล่านี้สามารถรันบน web browser ได้ แปลว่าเราไม่ต้องลงโปรแกรม ไปเว็บแล้วก็วิ่งโปรแกรมที่เขียนด้วยภาษา Native ได้ทันทีประการสุดท้ายคือ การที่ Web Browser กลายเป็น Virtual VM ที่เราเอาโปรแกรมไปวิ่งได้ แปลว่าเรามีเครื่องใหม่ที่จะรันอีกมหาศาล กำลังเครื่องจะเพิ่มขึ้นมาก และผู้ใช้จ่ายตังค์ซื้อมาเองโปรแกรมที่เขียนด้วย C/C++ อย่างเดียวก็ port กันไม่ไหวแล้วยิ่งตอนนี้ browser หลักๆต่างเห็นชอบกับมาตรฐานนี้แล้ว ยิ่งต้องรีบศึกษากันเลยนะครับ



////////////////////////////////////////////////////////////////////

Cr. FB : Panutat Jimmy Tejasen
     https://www.blognone.com/
     https://github.com/WebAssembly/design/blob/master/FAQ.md

////////////////////////////////////////////////////////////////////

ไม่มีความคิดเห็น:

แสดงความคิดเห็น