Servo Browser Engine ก้าวสู่จุดหมายสำคัญกับการเปิดตัวเวอร์ชัน 0.0.1 หลังพัฒนามากว่าทศวรรษ

ทีมชุมชน BigGo
Servo Browser Engine ก้าวสู่จุดหมายสำคัญกับการเปิดตัวเวอร์ชัน 0.0.1 หลังพัฒนามากว่าทศวรรษ

หลังจากพัฒนามากว่าทศวรรษและมีคอมมิตมากกว่า 50,000 ครั้ง โครงการ Servo browser engine ก็ก้าวถึงจุดหมายสำคัญด้วยการเปิดตัวเวอร์ชันอย่างเป็นทางการครั้งแรก เครื่องมือรันเบราว์เซอร์ที่เขียนด้วย Rust ซึ่งเดิมพัฒนาโดย Mozilla Research ตอนนี้ถูกติดแท็กเป็นเวอร์ชัน 0.0.1 แล้ว นับเป็นการเปิดฉากใหม่ให้กับเทคโนโลยีเบราว์เซอร์ทดลองที่มุ่งหมายจะท้าทายการผูกขาดของเครื่องมือรันเว็บในปัจจุบัน

รากฐานทางเทคนิคของ Servo:

  • เขียนด้วยภาษาโปรแกรม Rust
  • ออกแบบแบบโมดูลาร์ที่มีคอมโพเนนต์นำกลับมาใช้ได้
  • CSS engine (Stylo) ใช้ร่วมกับ Firefox
  • รองรับ macOS, Linux, Windows, Android, OpenHarmony
  • ใช้ WebRender สำหรับการเรนเดอร์กราฟิก
  • มีการพัฒนามากกว่า 50,000 commits ตลอดระยะเวลากว่าทศวรรษ

เริ่มต้นกระบวนการเปิดตัวที่รอคอยมานาน

ทีม Servo ได้เริ่มกระบวนการปล่อยเวอร์ชันอย่างเป็นทางการ โดยวางแผนจะเผยแพร่เวอร์ชันที่ติดแท็กทุกเดือนจาก nightly builds ล่าสุดที่ผ่านการทดสอบด้วยมือเพิ่มเติม นี่แสดงถึงการเปลี่ยนแปลงจากแนวทางการพัฒนาก่อนหน้าของโครงการที่แม้จะมี build ให้ใช้แต่ไม่ได้กำหนดเวอร์ชันอย่างเป็นทางการ การประกาศเปิดตัวอธิบายว่าไบนารีเหล่านี้เป็น nightly builds เดียวกันที่เคยมีให้ดาวน์โหลดจากหน้าดาวน์โหลดอยู่แล้ว แต่ผ่านการทดสอบด้วยมือเพิ่มเติมเพื่อระบุปัญหาก่อนติดแท็ก สำหรับตอนนี้ ทีมใช้กระบวนการปล่อยเวอร์ชันแบบง่ายโดยไม่มีแผนเผยแพร่บน crates.io หรือแพลตฟอร์ม app stores เฉพาะทาง แต่จะมุ่งเน้นที่ GitHub releases เพื่อใช้อ้างอิงในอนาคต

จากบล็อก: วันนี้ ทีม Servo ได้ปล่อยเวอร์ชันใหม่ของ servoshell binaries สำหรับแพลตฟอร์มที่รองรับทั้งหมดทั้งหมดแล้ว โดยติดแท็ก v0.0.1

การทดสอบโดยชุมชนเผยผลลัพธ์ที่หลากหลายแต่มีความหวัง

การทดสอบโดยผู้ใช้ในระยะแรกแสดงให้เห็นว่า Servo จัดการกับเนื้อหาเว็บพื้นฐานได้ดี แต่ยังมีปัญหากับเว็บไซต์ที่ซับซ้อนมากขึ้น ผู้ใช้รายงานว่าเว็บไซต์ที่เน้นข้อความแสดงผลได้อย่างรวดเร็วและมีประสิทธิภาพ แต่เว็บไซต์ที่มีการปรับแต่งอย่างมากมักแสดงปัญหาในการเรนเดอร์โดยมีองค์ประกอบปรากฏไปทั่ว การใช้หน่วยความจำดูเหมือนจะสูงกว่า Firefox เล็กน้อยเมื่อเปิดแท็บเดียวกัน แม้ว่าจะไม่มากเกินไป ผู้ใช้หนึ่งคนระบุว่าการค้นหาภาพ Google ใช้เวลามากกว่า 10 วินาทีในการแสดงผลและผ่านสถานะที่บั๊กมาก ซึ่งบ่งชี้ว่าเครื่องมือรันยังมีงานปรับปรุงประสิทธิภาพอีกมากรออยู่ข้างหน้า อย่างไรก็ตาม ผู้ทดสอบหลายคนแสดงความประหลาดใจว่าตอนนี้เบราว์เซอร์ใช้งานได้ดีขนาดไหนแล้วเมื่อพิจารณาจากสถานะการทดลอง

ผลการทดสอบจากผู้ใช้:

  • จุดแข็ง: การแสดงผลเว็บไซต์ที่มีข้อความเยอะรวดเร็ว รองรับ CSS ได้อย่างเหมาะสม
  • จุดอ่อน: ปัญหาการแสดงผลเว็บไซต์ที่ซับซ้อน การเลื่อนหน้าจอกระตุก การใช้หน่วยความจำสูง
  • ประสิทธิภาพ: การค้นหารูปภาพของ Google ใช้เวลามากกว่า 10 วินาทีในการแสดงผล
  • ขนาดไฟล์: มากกว่า 100MB บน Mac ใกล้เคียงกับ Electron

ภาพรวมของตลาดเครื่องมือรันเบราว์เซอร์ที่กว้างขึ้น

การเปิดตัวของ Servo เกิดขึ้นท่ามกลางความสนใจที่เพิ่มขึ้นในเครื่องมือรันเบราว์เซอร์ทางเลือก โดยมักมีการเปรียบเทียบกับ Ladybird อีกโครงการเครื่องมือรันเบราว์เซอร์ที่กำลังเกิดขึ้น การอภิปรายในชุมชนเน้นย้ำถึงแนวทางเชิงปรัชญาที่แตกต่าง - Servo ได้รับประโยชน์จากมรดกของ Mozilla และพื้นฐาน Rust ในขณะที่ Ladybird ซึ่งสร้างโดยอดีตนักพัฒนา WebKit อย่าง Andreas Kling แสดงความก้าวหน้าอย่างน่าประทับใจแม้จะเขียนด้วย C++ ทั้งสองโครงการต่างเผชิญกับความท้าทายมหาศาลในการตามให้ทันวิวัฒนาการของมาตรฐานเว็บที่ถูกครอบงำโดยบริษัทใหญ่ การอภิปรายเผยให้เห็นว่าหลายคนในชุมชนเทคโนโลยีต่างกระตือรือร้นที่จะมีทางเลือกที่ใช้งานได้เพื่อทำลายสิ่งที่พวกเขามองว่าเป็นการผูกขาดของ Chrome / Safari ในเครื่องมือรันเว็บ

ภูมิทัศน์ของ Browser Engine ในปัจจุบัน:

  • Blink (Chromium/Chrome): นำโดย Google มีส่วนแบ่งการตลาดสูงที่สุด
  • WebKit (Safari): นำโดย Apple จำเป็นต้องใช้บน iOS
  • Gecko (Firefox): ของ Mozilla มีส่วนแบ่งการตลาดลดลง
  • Servo: อยู่ในช่วงทดลอง พัฒนาด้วย Rust มีสถาปัตยกรรมแบบโมดูลาร์
  • Ladybird: Engine ใหม่ที่เขียนด้วย C++ โดยอีกนักพัฒนาเดิมของ WebKit

สถาปัตยกรรมแบบโมดูลาร์ให้ความหวังสำหรับความยั่งยืน

ข้อได้เปรียบหลักสำหรับความอยู่รอดในระยะยาวของ Servo อยู่ที่การออกแบบแบบโมดูลาร์ องค์ประกอบต่างๆ เช่น เครื่องมือ CSS อย่าง Stylo ได้ถูกแบ่งปันกับ Firefox ไปแล้ว และโครงการอื่นๆ กำลังสร้างบนโครงสร้างพื้นฐานของ Servo ตัวอย่างเช่น Blitz browser engine ใช้ประโยชน์จากเครื่องมือ CSS และตัวแยกวิเคราะห์ HTML ของ Servo ในขณะที่ใช้ระบบเลย์เอาต์ของตัวเอง แนวทางแบบโมดูลาร์นี้อาจทำให้การพัฒนาเครื่องมือรันเบราว์เซอร์เข้าถึงได้ง่ายขึ้นโดยอนุญาตให้โครงการในอนาคตใช้องค์ประกอบที่ได้รับการพิสูจน์แล้วซ้ำ แทนที่จะต้องสร้างทุกอย่างจากศูนย์ นักพัฒนาหลายคนกำลังสำรวจองค์ประกอบเหล่านี้สำหรับกรณีการใช้งานแบบฝังตัว ตั้งแต่ UI ของเกมไปจนถึงเฟรมเวิร์กแอปพลิเคชันทางเลือก แม้ว่า WebView API ที่เสถียรสำหรับการฝังตัวทั่วไปจะยังไม่พร้อม

มองไปข้างหน้า

การเดินทางของโครงการ Servo สะท้อนทั้งความท้าทายอันยิ่งใหญ่ของการพัฒนาเครื่องมือรันเบราว์เซอร์และความต้องการที่ยังคงมีอยู่สำหรับความหลากหลายในเทคโนโลยีเว็บ แม้ว่าการเปิดตัวเวอร์ชัน 0.0.1 จะแสดงถึงขั้นตอนแรกเริ่มของวุฒิภาวะ แต่การกำหนดจังหวะการปล่อยเวอร์ชันอย่างสม่ำเสมอบ่งชี้ว่าโครงการกำลังเปลี่ยนผ่านจากการวิจัยล้วนๆ ไปสู่การพัฒนาที่มุ่งเน้นผลิตภัณฑ์มากขึ้น การตอบรับจากชุมชนแสดงให้เห็นถึงความสนใจอย่างมีนัยสำคัญที่จะเห็น Servo พัฒนาเป็นตัวเลือกที่สามที่ใช้งานได้ควบคู่ไปกับ Blink และ WebKit แม้ว่าเส้นทางข้างหน้าจะยังยาวไกลและต้องการความพยายามในการพัฒนาอย่างต่อเนื่องเพื่อให้ทัดเทียมกับทรัพยากรที่อยู่เบื้องหลังเครื่องมือรันที่确立แล้ว

อ้างอิง: The Servo Parallel Browser Engine Project