เครื่องมือ Web Engine Servo แสดงศักยภาพแม้จะมีปัญหาการแสดงผล ชุมชนถกเถียงความผิดพลาดเชิงกลยุทธ์ของ Mozilla

ทีมชุมชน BigGo
เครื่องมือ Web Engine Servo แสดงศักยภาพแม้จะมีปัญหาการแสดงผล ชุมชนถกเถียงความผิดพลาดเชิงกลยุทธ์ของ Mozilla

ภูมิทัศน์ของเว็บเบราว์เซอร์ยังคงถูกครอบงำโดย Chromium engine ของ Google แต่ทางเลือกอื่นที่เรียกว่า Servo กำลังค่อยๆ พัฒนาไปข้างหน้า เครื่องมือ web engine ทดลองนี้ถูกสร้างขึ้นด้วย Rust ทั้งหมด และให้ภาพรวมของสิ่งที่อาจเป็นอนาคตของเทคโนโลยีการท่องเว็บ อย่างไรก็ตาม การทดสอบล่าสุดเผยให้เห็นทั้งศักยภาพและข้อจำกัดในปัจจุบัน

แนะนำ Servo : เว็บเอนจินทดลองที่สร้างด้วย Rust แสดงให้เห็นศักยภาพสำหรับอนาคตของเทคโนโลยีเว็บ
แนะนำ Servo : เว็บเอนจินทดลองที่สร้างด้วย Rust แสดงให้เห็นศักยภาพสำหรับอนาคตของเทคโนโลยีเว็บ

ประสิทธิภาพปัจจุบันแสดงผลลัพธ์แบบผสมผสาน

การทดสอบ build ล่าสุดของ Servo เผยให้เห็น browser engine ที่ยังอยู่ในระหว่างการพัฒนา ในขณะที่เว็บไซต์ง่ายๆ เช่น Wikipedia และหน้าข่าวที่เป็นข้อความสามารถแสดงผลได้อย่างถูกต้อง เว็บไซต์ที่ซับซ้อนมากขึ้นกลับมีปัญหากับองค์ประกอบที่ซ้อนทับกันและบางครั้งก็เกิดการ crash engine ได้คะแนน 83 จาก 100 ในการทดสอบมาตรฐานเว็บ Acid3 แบบคลาสสิก ซึ่งต่ำกว่า 95 คะแนนที่เบราว์เซอร์สมัยใหม่อย่าง Chrome และ Firefox ทำได้

การทดสอบประสิทธิภาพให้ภาพที่น่าสนใจ ในการทดสอบที่ใช้กราฟิกส์หนัก Servo สามารถจัดการได้ 60 เฟรมต่อวินาทีกับรูปภาพเคลื่อนไหว 400 รูป ในขณะที่ Safari จัดการรูปภาพได้มากกว่า 1,500 รูปในอัตราเฟรมเดียวกัน อย่างไรก็ตาม การทดสอบเหล่านี้ไม่ค่อยยุติธรรมนัก เนื่องจาก Servo ทำงานภายใต้การจำลอง x86 บนฮาร์ดแวร์ ARM ซึ่งโดยปกติจะลดประสิทธิภาพลง

เกณฑ์มาตรฐานประสิทธิภาพของ Servo

  • การทดสอบมาตรฐานเว็บ Acid3: 83/100 (เทียบกับ 95/100 สำหรับเบราว์เซอร์สมัยใหม่)
  • การทดสอบกราฟิก Dogemania: 60 FPS สำหรับภาพสูงสุด 400 ภาพ (เทียบกับ Safari ที่ทำได้มากกว่า 1,500 ภาพ)
  • การทดสอบ Particle Physics: เฟรมเรตเฉลี่ยประมาณ 55 FPS
  • หมายเหตุ: การทดสอบทำงานภายใต้การจำลอง x86 บนฮาร์ดแวร์ ARM ซึ่งส่งผลต่อประสิทธิภาพ

นวัตกรรมทางเทคนิคผ่านการออกแบบแบบโมดูลาร์

ชุมชนนักพัฒนาได้ยอมรับแนวทางของ Servo ในการแบ่งคอมโพเนนต์ของ web engine ออกเป็นไลบรารีแยกต่างหาก นักพัฒนาคนหนึ่งที่ทำงานเกี่ยวกับการสนับสนุน CSS Grid อธิบายว่าการใช้งานของพวกเขาใช้ไลบรารีภายนอกที่เรียกว่า Taffy ซึ่งโปรเจกต์ Rust อื่นๆ เช่น text editor Zed และ game engine Bevy ก็ใช้เช่นกัน แนวทางแบบโมดูลาร์นี้อาจทำให้นักพัฒนาในอนาคตสร้าง web engine ใหม่ได้ง่ายขึ้นโดยไม่ต้องเริ่มต้นจากศูนย์

engine นี้ให้ความสำคัญกับสองด้านหลัก: การทำงานแบบ multi-threaded และความปลอดภัยของหน่วยความจำ โปรเซสเซอร์สมัยใหม่ทำงานได้ดีที่สุดเมื่องานสามารถแบ่งไปยังหลาย core และการออกแบบของ Rust ช่วยป้องกันบั๊กด้านความปลอดภัยที่เกี่ยวข้องกับหน่วยความจำที่รบกวนเบราว์เซอร์อื่นๆ ทีม Chromium ของ Google ได้สังเกตว่าประมาณ 70% ของปัญหาความปลอดภัยร้ายแรงของพวกเขาเกิดจากปัญหาความปลอดภัยของหน่วยความจำ

ข้อได้เปรียบทางเทคนิคของ Servo

  • เขียนด้วยภาษาโปรแกรม Rust ทั้งหมด
  • การทำงานแบบ multi-threaded เพื่อใช้ประโยชน์จาก CPU ได้ดีขึ้น
  • ความปลอดภัยของหน่วยความจำช่วยลดช่องโหว่ด้านความปลอดภัย
  • การออกแบบแบบโมดูลาร์ที่มีคอมโพเนนต์ที่สามารถนำกลับมาใช้ได้ (เช่น Taffy layout library )
  • จัดการโดย Linux Foundation Europe ด้วยการกำกับดูแลแบบเปิด

ความผิดหวังของชุมชนต่อการตัดสินใจของ Mozilla

การอภิปรายที่ร้อนแรงที่สุดมุ่งเน้นไปที่การตัดสินใจของ Mozilla ในปี 2020 ที่จะละทิ้งการพัฒนา Servo เดิมทีเริ่มต้นเป็นโปรเจกต์วิจัยของ Mozilla ในปี 2012 Servo มีวัตถุประสงค์เพื่อแทนที่ Gecko engine ที่เก่าแก่ของ Firefox ในที่สุด Mozilla ยังได้รวม CSS engine ของ Servo เข้ากับ Firefox สำเร็จ สร้าง Firefox Quantum ที่เร็วกว่าในปี 2017

อย่างไรก็ตาม การลดงบประมาณทำให้ Mozilla ต้องเลิกจ้างพนักงาน 250 คน รวมถึงทีมพัฒนา Servo ส่วนใหญ่ การตัดสินใจนี้ยังคงทำให้ชุมชนเทคนิคงุนงง โดยเฉพาะอย่างยิ่งเมื่อพิจารณาความสัมพันธ์ทางการเงินที่ Mozilla มีกับ Google อย่างต่อเนื่อง ยักษ์ใหญ่ด้านการค้นหาจ่ายเงินให้ Mozilla หลายร้อยล้านดอลลาร์สหรัฐต่อปีเพื่อให้ยังคงเป็นเครื่องมือค้นหาเริ่มต้นของ Firefox แต่ Mozilla กลับเลือกที่จะละทิ้งสิ่งที่หลายคนมองว่าเป็นอนาคตทางเทคนิคของพวกเขา

เป็นเรื่องที่น่าอึ้งมากว่าสำหรับบริษัทที่ดูเหมือนจะไล่ตาม Google อยู่บ่อยครั้ง Mozilla กลับก้าวล้ำ Google ในพื้นที่การพัฒนาเบราว์เซอร์ในช่วงหนึ่ง แล้วจึงตัดสินใจว่าไม่คุ้มค่าที่จะติดตามต่อไป

Engine ทางเลือกอื่นๆ เกิดขึ้น

ในขณะที่ Servo ยังคงพัฒนาต่อภายใต้ Linux Foundation โปรเจกต์อื่นๆ ก็กำลังท้าทายการครอบงำของ browser engine เช่นกัน Ladybird ที่เขียนด้วย C++ โดยอดีตนักพัฒนา WebKit ได้รับความสนใจจากการได้รับทุนสนับสนุนจากการบริจาคโดยไม่มีการสนับสนุนจากบริษัท สมาชิกชุมชนบางคนโต้แย้งว่า Ladybird มีประสิทธิภาพเหนือกว่า Servo ในการทดสอบการแสดงผลเว็บแล้ว แม้ว่า engine ทั้งสองยังห่างไกลจากความพร้อมใช้งานจริง

ชุมชนเทคนิคยังคงแบ่งแยกเกี่ยวกับแนวทางใดที่เสนอเส้นทางที่ดีที่สุดไปข้างหน้า บางคนชอบรากฐาน Rust ที่ปลอดภัยต่อหน่วยความจำของ Servo ในขณะที่คนอื่นๆ ชื่นชมความเป็นอิสระของ Ladybird จากบริษัทเทคโนโลยีใหญ่ๆ โปรเจกต์ทั้งสองเผชิญกับความท้าทายอันยิ่งใหญ่ในการไล่ตาม browser engine ที่ได้รับการสนับสนุนจากทีมที่ใหญ่กว่าหลายร้อยเท่า

ภูมิทัศน์ของเอนจิ้นเบราว์เซอร์

  • Chromium/Blink: ใช้โดย Chrome , Edge , Opera , Brave , Arc , Vivaldi
  • WebKit: ขับเคลื่อน Safari และเบราว์เซอร์ทางเลือกอื่นๆ
  • Gecko: เอนจิ้นปัจจุบันของ Firefox (รวมส่วนประกอบของ Servo บางส่วน)
  • Servo: เอนจิ้นทดลองที่พัฒนาด้วย Rust ( Linux Foundation )
  • Ladybird: เอนจิ้นทางเลือกที่พัฒนาด้วย C++ (ได้รับทุนสนับสนุนจากการบริจาค)

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

แผนงานปัจจุบันของ Servo มุ่งเน้นไปที่การใช้งาน Shadow DOM และการสนับสนุน CSS Grid ซึ่งควรจะแก้ไขปัญหาการแสดงผลหลายอย่างบนเว็บไซต์ยอดนิยม โปรเจกต์ยังคงได้รับการมีส่วนร่วมจากนักพัฒนาทั่วโลก แม้ว่าความคืบหน้าจะยังคงช้าเมื่อเปรียบเทียบกับการพัฒนามาตรฐานเว็บที่รวดเร็ว

ว่า Servo หรือ engine ทางเลือกใดๆ สามารถท้าทายการครอบงำของ Chrome ได้อย่างมีความหมายหรือไม่ยังคงไม่แน่นอน เว็บได้กลายเป็นเรื่องที่ซับซ้อนอย่างไม่น่าเชื่อ และการสร้าง browser engine ที่สามารถแข่งขันได้ต้องการทรัพยากรมหาศาลและความมุ่งมั่นอย่างต่อเนื่อง อย่างไรก็ตาม การพัฒนาทางเลือกเหล่านี้อย่างต่อเนื่องให้ความหวังสำหรับระบบนิเวศเบราว์เซอร์ที่หลากหลายและแข่งขันได้มากขึ้นในอนาคต

อ้างอิง: I tried Servo, the undercover web browser engine made with Rust