WebAssembly เป็นโค้ดประเภทใหม่ที่สามารถเรียกใช้ภายในเว็บเบราว์เซอร์สมัยใหม่ เมื่อใช้ร่วมกับการใช้โค้ดน้อย ก็มีศักยภาพในการเปลี่ยนแปลงวิธีที่นักพัฒนาซอฟต์แวร์สร้างแอปพลิเคชันสำหรับเว็บ

การครอบงำจาวาสคริปต์

จากบทความเรื่อง "Medium" ในปี 2019 มีเว็บไซต์มากกว่า 1.6 พันล้านเว็บไซต์ทั่วโลก และ JavaScript เป็นภาษาการเขียนโปรแกรมที่โดดเด่นซึ่งมีผู้ใช้ถึง 95% นี่ไม่ใช่เรื่องน่าประหลาดใจใหญ่ ท้ายที่สุดแล้ว JavaScript เป็นภาษาการเขียนโปรแกรมเดียวที่ได้รับการสนับสนุนโดยเบราว์เซอร์ทั้งหมด หรือเปล่า?

ขอบคุณ WebAssembly สิ่งนี้จึงเปลี่ยนไป

WebAssembly คืออะไร?

World Wide Web Consortium (W3C) ออกแบบและพัฒนา WebAssembly มีการประกาศครั้งแรกในปี 2558 และการสาธิตครั้งแรกเกิดขึ้นอีกสองปีต่อมาในปี 2560

บางคนคิดว่า WebAssembly หรือ Wasm เป็นภาษาโปรแกรมใหม่ แต่นั่นไม่เป็นความจริงทั้งหมด มันเป็นโค้ดประเภทหนึ่ง แต่ไม่ใช่โค้ดที่โปรแกรมเมอร์ตั้งใจให้เขียนด้วยลายมือ แต่ WebAssembly จะเป็นเป้าหมายในการคอมไพล์สำหรับภาษาโปรแกรมที่ใช้กันทั่วไป เช่น Python, C, C++ หรือ Rust ด้วยการทำหน้าที่เป็นเป้าหมายในการคอมไพล์ ภาษาเหล่านี้สามารถเรียกใช้ภายในเบราว์เซอร์ ทำลายความครอบงำของ JavaScript บนเว็บ นอกจากนี้ยังช่วยแก้ไขปัญหาประสิทธิภาพของ JavaScript ด้วยการสร้างภาษาการเขียนโปรแกรมที่แต่เดิมใช้เพื่อสร้างระบบองค์กรขนาดใหญ่ที่มีความสำคัญต่อภารกิจ เช่น C++ ซึ่งสามารถเข้าถึงได้ในเบราว์เซอร์

มันทำงานอย่างไร?

WebAssembly รับซอร์สโค้ดที่เขียนในภาษาอื่นและทำให้เข้ากันได้กับการใช้งานภายในเว็บเบราว์เซอร์ กระบวนการมีลักษณะดังนี้:

  1. ซอร์สโค้ด (เช่น Python, C++ หรือ Rust): คุณมีแอปพลิเคชันที่เขียนด้วยภาษาที่เข้ากันได้ซึ่งคุณต้องการเรียกใช้ในเบราว์เซอร์
  2. รหัสไบต์ WebAssembly: คุณเลือกรหัสไบต์ WebAssembly เป็นเป้าหมายการคอมไพล์ ด้วยเหตุนี้ คุณจะได้รับไฟล์ .wasm
  3. รหัสเครื่อง (opcode): เบราว์เซอร์โหลดไฟล์ .wasm และคอมไพล์เป็นรหัสเครื่องที่เกี่ยวข้องของระบบโฮสต์

หากคุณต้องการทราบวิธีสร้างแอปพลิเคชันแรกของคุณด้วย Wasm เราขอแนะนำ "บทความ OpenSource.Com" ใน "วิธีเขียน 'Hello World' ใน WebAssembly" สำหรับคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำงานของกระบวนการคอมไพล์ โปรดดูตอนพอดแคสต์ที่ยอดเยี่ยมใน Software Engineering Daily

ฉันคิดว่าฉันได้รับมัน แต่คุณสามารถยกตัวอย่างได้ไหม?

หากทั้งหมดนี้ฟังดูเป็นนามธรรมเกินไป ไม่ต้องกังวล! มีโอกาสสูงที่คุณจะใช้เว็บแอปพลิเคชันที่ขับเคลื่อนโดย WebAssembly อยู่แล้ว

ตัวอย่างที่ดีสองตัวอย่าง ได้แก่ Figma แอปพลิเคชันการออกแบบออนไลน์ยอดนิยมสำหรับการสร้างแบบจำลองที่ซับซ้อน และ Google Earth บริการแผนที่ 3 มิติของ Google

ในบล็อกโพสต์จากปี 2017 CTO ของ Figma เขียนว่า:

“เนื่องจากแอปที่คอมไพล์เป็น WebAssembly สามารถทำงานได้เร็วเท่ากับแอปที่มาพร้อมเครื่อง จึงมีศักยภาพที่จะเปลี่ยนวิธีเขียนซอฟต์แวร์บนเว็บ” — Evan Wallace, CTO ของ Figma

จากนั้นเขาก็อธิบายต่อไปว่า Figma เขียนด้วยภาษา C++ ซึ่งเป็นหนึ่งในภาษาที่สามารถคอมไพล์เป็นโค้ด WebAssembly ได้ ด้วยการทำเช่นนี้ Figma จึงสามารถเร่งความเร็วในการโหลดได้ 3 เท่า และบรรลุประสิทธิภาพที่ใกล้เคียงกับเนทีฟ

ในทางกลับกัน Google Earth เคยเป็นแอปพลิเคชัน Chrome เท่านั้น จนถึงปี 2019 ไม่สามารถเข้าถึง Google Earth จากเบราว์เซอร์อื่นได้ เนื่องจากใช้ Native Client (NaCl) ซึ่งเป็นโซลูชันเฉพาะ Chrome เท่านั้น จากนั้นทีมวิศวกรที่อยู่เบื้องหลัง Google Earth ได้นำ WebAssembly มาใช้ เนื่องจากเบราว์เซอร์ทั้งหมดสนับสนุน WebAssembly การนำมาใช้ทำให้ทุกคนสามารถเข้าถึง Google Earth ได้ ไม่ว่าพวกเขาจะใช้เบราว์เซอร์ใดก็ตาม

ในทั้งสองกรณี WebAssembly เป็นทางออกที่เหมาะสมสำหรับปัญหาทางวิศวกรรมที่ซับซ้อน (และธุรกิจ) คุณจะนำแอปพลิเคชันขนาดใหญ่มาสู่เว็บได้อย่างไร โดยไม่สูญเสียประสิทธิภาพหรือต้องเขียนแอปพลิเคชันทั้งหมดใหม่ทั้งหมดตั้งแต่ต้น Figma และ Google Earth เป็นสองตัวอย่างที่ดีของประเภทการใช้งานที่ WebAssembly ได้รับการออกแบบมาเพื่อ

WebAssembly และโค้ดต่ำ

ทั้งหมดนี้เกี่ยวข้องกับการพัฒนาซอฟต์แวร์แบบ low-code อย่างไร? ทั้งสองอย่างนี้เป็นเทคโนโลยีที่อาจก่อให้เกิดการเปลี่ยนแปลง

WebAssembly มีศักยภาพในการเปลี่ยนแปลงอนาคตของการพัฒนาเว็บและขยายประเภทของแอปพลิเคชันที่สร้างขึ้นสำหรับเว็บ ในทางกลับกัน การใช้โค้ดต่ำมีศักยภาพในการเปลี่ยนแปลงวิธีที่นักพัฒนาสร้างซอฟต์แวร์ด้วยการเร่งการส่งมอบแอปพลิเคชันเว็บแบบกำหนดเองได้มากถึง 10 เท่า ตามรายงานของ Forrester ที่ปรึกษาด้านไอที มันเป็นวิธีใหม่ในการพัฒนาและปรับใช้เว็บแอปพลิเคชันแบบกำหนดเองอย่างรวดเร็ว

ที่ Five เรากำลังสร้างสภาพแวดล้อมการพัฒนาในเบราว์เซอร์ที่ไม่ขึ้นกับภาษาที่รองรับ Wasm ในอนาคต นักพัฒนาซอฟต์แวร์จะสามารถเขียนโค้ดได้ไม่เพียงแค่ใน JavaScript หรือ TypeScript เท่านั้น แต่ยังเขียนได้เกือบทุกภาษาภายใน Five อีกด้วย จากนั้นโค้ดนี้จะถูกคอมไพล์เป็น Wasm และสามารถใช้เพื่อพัฒนาและปรับใช้เว็บแอปพลิเคชันที่ไม่ขึ้นกับอุปกรณ์ Inside Five เรากำลังรวมพลังของ WebAssembly เข้ากับ low-code ในแพลตฟอร์มเดียว

อยากรู้ว่าจะลองดูไหม? ลงทะเบียนเพื่อดาวน์โหลดสภาพแวดล้อมการพัฒนาของเราฟรีผ่านทาง "เว็บไซต์" ของเรา!

TL; DR: WebAssembly และโค้ดต่ำ

WebAssembly (หรือ Wasm) เป็นเป้าหมายในการคอมไพล์สำหรับภาษาการเขียนโปรแกรมยอดนิยมมากมาย เช่น Python, Go, C#, C, Rust และ C++ เบราว์เซอร์หลักทั้งหมด (Firefox, Chrome, Safari และ Edge) รองรับ Wasm แอปพลิเคชันยอดนิยมสองรายการที่ใช้ Wasm คือ Figma และ Google Earth

ด้วยการคอมไพล์โค้ดลงใน Wasm นักพัฒนาสามารถสร้างและรันเว็บแอปพลิเคชันประสิทธิภาพสูงได้ในเกือบทุกภาษาการเขียนโปรแกรม Five ซึ่งเป็นสภาพแวดล้อมการพัฒนาแบบ low-code ผสมผสานแนวโน้มสำคัญสองประการในการพัฒนาเว็บ Wasm และการพัฒนาแบบ low-code โดยให้วิศวกรซอฟต์แวร์ใช้โค้ดเต็มได้เกือบทุกที่ภายใน Five integrated development Environment (IDE)

เผยแพร่ครั้งแรกที่ https://five.co เมื่อวันที่ 13 ตุลาคม 2022