31 คะแนน โดย xguru 2022-02-07 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แนะนำ WebAssembly (WASM) ตั้งแต่ว่าคืออะไร ทุกวันนี้ถูกใช้งานที่ไหน และคาดการณ์ถึงด้านที่จะถูกนำไปใช้ในอนาคต

คุณสมบัติของ WASM

  • พกพาได้: เป็น bytecode ที่มีมาตรฐาน จึงรันได้ทั้งบนเบราว์เซอร์และเซิร์ฟเวอร์

  • ใช้งานได้หลากหลาย: ภาษาอย่าง C, Rust, Go, Python, Ruby ฯลฯ สามารถคอมไพล์เป็น Wasm ได้

  • ประสิทธิภาพระดับเนทีฟ: โดยเฉลี่ยช้ากว่าเนทีฟราว 1.45~1.55 เท่า แต่เร็วกว่า JavaScript เสมอ

  • เวลาเริ่มต้นรวดเร็ว: เร็วกว่า Docker container 10~100x และในเบราว์เซอร์ก็ยังเร็วกว่าการ parse/interpret JavaScript

  • ปลอดภัย: ถูกพัฒนาโดยคำนึงถึงเว็บเป็นหลัก จึงปลอดภัยผ่าน memory sandboxing และการจำกัดความสามารถต่าง ๆ

ด้านที่ WASM มีประโยชน์

  • ปรับปรุงความเร็วของ JavaScript

  • มอบความเข้ากันได้ระหว่างภาษาโปรแกรมต่าง ๆ

  • เป็นรันไทม์สำหรับระบบปลั๊กอินหลายภาษา

  • ใช้เป็น embedded sandboxing engine เพื่อนำไลบรารีจาก third party หลากหลายตัวมาใช้อย่างปลอดภัย

  • อนาคตของ containerization: เร็วกว่า Docker มี footprint เล็กกว่า และปลอดภัยกว่า

  • แพลตฟอร์ม FaaS/Serverless

  • บล็อกเชน: สามารถใช้เป็นรันไทม์ประสิทธิภาพสูงสำหรับรัน smart contract ได้

การคาดการณ์และโอกาส

  • สถาปัตยกรรมแอปพลิเคชันรูปแบบใหม่

→ สามารถแยก microservices ออกเป็นคอมโพเนนต์ที่เล็กลงได้อีก

  • Brownfield Deployment

→ การผสานรวม Docker และ Wasm container ที่ orchestration layer

  • กรอบงาน Serverless/Edge ที่เป็นมาตรฐาน

→ ปัจจุบัน Fastly, Lambda, Fission ฯลฯ ต่างสร้างแพลตฟอร์มของตัวเอง แต่ก็มีความเป็นไปได้ที่จะเกิดมาตรฐานร่วม

→ "Terraform of Serverless"

  • การจัดการแพ็กเกจ

→ ทุกภาษาต่างมี package ecosystem ของตัวเอง

→ WASM จำเป็นต้องมี package manager แม้จะมี WAPM อยู่แล้ว แต่แทบอยู่ในสภาพหยุดพัฒนา

บทสรุป

  • WebAssembly ดีขนาดนี้ แล้วทำไมถึงยังไม่ถูกใช้อย่างแพร่หลายมากกว่านี้?

→ การตลาดไม่ดี เพราะมันไม่ได้จำกัดอยู่แค่ Web หรือ Assembly ชื่อนี้จึงอาจผิดตั้งแต่ต้น

→ แม้จะทำการตลาดกับนักพัฒนาเว็บเป็นหลัก แต่ศักยภาพจริงนั้นไปไกลกว่าบราว์เซอร์

→ มาตรฐานของ WebAssembly ยังไม่สมบูรณ์

→ การทำงานร่วมกันระหว่างภาษายังแย่มาก

→ ประสบการณ์นักพัฒนายังขาดอีกมาก

  • แต่หลายด้านกำลังดีขึ้น และภายใน 1~2 ปีน่าจะไปถึงจุดที่พร้อมต่อการยอมรับใช้งาน

  • กิจกรรมด้าน WebAssembly รวมถึง ecosystem และ community กำลังเข้าสู่ช่วงเติบโตอย่างรวดเร็ว

1 ความคิดเห็น

 
xguru 2022-02-07

แม้ลองค้นหา WebAssembly/WASM ใน GeekNews คุณก็จะเห็นบทความจำนวนมากมาก

ขอลองไล่เฉพาะบทความหลัก ๆ ให้ดูครับ

→ องค์กรไม่แสวงหากำไรที่จัดตั้งขึ้นโดยมีเป้าหมายให้ WebAssembly ถูกใช้งานข้ามพ้นเบราว์เซอร์