วงการเบราว์เซอร์เว็บถูกครอบงำโดยผู้เล่นรายใหญ่เพียงไม่กี่รายมาเป็นเวลานาน ทำให้ผู้เล่นหน้าใหม่ทุกรายเป็นที่น่าสนใจ Vaev ซึ่งเป็นเครื่องมือประมวลผล HTML/CSS ที่อธิบายตัวเองว่ารวดเร็วดั่งสายฟ้า น้ำหนักเบา และปลอดภัย ได้ปรากฏตัวขึ้นเมื่อไม่นานมานี้และจุดประเด็นการถกเถียงที่สำคัญในชุมชนนักพัฒนาเกี่ยวกับอนาคตของเทคโนโลยีเบราว์เซอร์ ข้อพิจารณาด้านความปลอดภัย และความเป็นไปได้ของแนวทางทางเลือกในการแสดงผลเว็บ
โครงการ Vaev และจุดประสงค์
Vaev กำลังถูกพัฒนาโดยทีมผู้มีส่วนร่วมสี่คนและปัจจุบันรองรับมาตรฐานเว็บบางส่วน รวมถึงประเภทการแสดงผลส่วนใหญ่ (ยกเว้น grid), พฤติกรรมลำดับชั้น CSS มาตรฐาน, การแบ่งหน้าโดยใช้กฎ @page, การส่งออกเป็น PDF และหน่วย CSS ต่างๆ รวมถึงเปอร์เซ็นต์, var() และ calc() ในขณะที่ความสามารถด้านเครือข่ายปัจจุบันจำกัดอยู่ที่โปรโตคอล HTTP และไฟล์ โครงการนี้ถือเป็นความพยายามที่ทะเยอทะยานในการสร้างเครื่องมือประมวลผลเบราว์เซอร์ใหม่จากศูนย์
หนึ่งในนักพัฒนาหลักของโครงการเปิดเผยว่า Vaev มีการประยุกต์ใช้งานเฉพาะทางนอกเหนือจากการเป็นแบบฝึกหัดเพื่อการเรียนรู้ มันถูกพัฒนาขึ้นเพื่อเป็นแกนหลักของ paper-muncher ซึ่งเป็นเครื่องมือประมวลผล PDF ที่มีจุดประสงค์เพื่อแทนที่ wkhtmltopdf ใน Odoo ซึ่งเป็นชุดซอฟต์แวร์ธุรกิจโอเพนซอร์สที่ได้รับความนิยม กรณีการใช้งานที่เฉพาะเจาะจงนี้ช่วยอธิบายการเน้นย้ำของโครงการในความสามารถด้านการพิมพ์เป็น PDF และคุณสมบัติการแบ่งหน้า
การรองรับคุณสมบัติปัจจุบันของ Vaev:
- รูปแบบการแสดงผลส่วนใหญ่ (ยกเว้นแบบตาราง)
- พฤติกรรม CSS cascade มาตรฐาน
- การแบ่งหน้าโดยใช้กฎ @page
- การส่งออกเป็น PDF
- หน่วย CSS ทั้งหมด รวมถึงเปอร์เซ็นต์, var() และ calc()
- การโหลดเอกสาร HTML และ XHTML
- การเชื่อมต่อเครือข่ายพื้นฐาน (เฉพาะ http:// และ file:// เท่านั้น)
ผู้มีส่วนร่วมในโครงการ:
- Lou!
- LuneMercier
- Paulo Medeiros
- Sleepy Monax
กรณีการใช้งานหลัก:
- เป็นแกนหลักของเครื่องมือแสดงผล PDF "paper-muncher"
- มีวัตถุประสงค์เพื่อทดแทน wkhtmltopdf ที่ Odoo
ข้อถกเถียงเรื่องการเลือกภาษา
บางทีการถกเถียงที่ร้อนแรงที่สุดเกี่ยวกับ Vaev อาจเกี่ยวข้องกับการใช้ C++ ในการพัฒนา ผู้แสดงความคิดเห็นหลายคนตั้งคำถามถึงทางเลือกนี้ โดยโต้แย้งว่าเบราว์เซอร์โดยพื้นฐานแล้วเป็นช่องโหว่ RCE โดยการออกแบบ และ C++ มีประวัติเป็นต้นเหตุของปัญหาความปลอดภัยมากมายในโค้ดของเบราว์เซอร์
ผมสนใจว่าทำไมถึงเลือก C++ สำหรับโปรเจกต์นี้? เบราว์เซอร์มีชื่อเสียงในเรื่องความยากในการรักษาความปลอดภัย พวกมันมีประสิทธิภาพเหมือนเป็นช่องโหว่ RCE! การรักษาความปลอดภัยของไบนารี C++ นั้นยาก และในช่วงไม่กี่ปีที่ผ่านมาถูกระบุโดยองค์กรและบริษัทต่างๆ ว่าเป็นสาเหตุหลักของช่องโหว่ด้านความปลอดภัยหลายประเภท
ผู้สนับสนุนทางเลือกนี้ชี้ให้เห็นว่านักพัฒนาน่าจะมีประสบการณ์ด้าน C++ อย่างกว้างขวาง และการเขียนเครื่องมือประมวลผลเบราว์เซอร์ต้องการความเชี่ยวชาญในภาษาอย่างลึกซึ้ง บางคนยังสังเกตว่าโค้ดเบสแสดงให้เห็นถึงแนวปฏิบัติ C++ สมัยใหม่คุณภาพสูง ด้วย smart pointers และรูปแบบ RAII ที่สามารถบรรเทาข้อกังวลด้านความปลอดภัยแบบดั้งเดิมของ C++ ได้มาก
ทีม Vaev ได้ตอบสนองต่อข้อกังวลด้านความปลอดภัยโดยระบุว่าพวกเขากำลังสำรวจคุณสมบัติความปลอดภัยที่บังคับใช้โดยคอมไพเลอร์ใน Clang รวมถึงคุณลักษณะการตรวจสอบอายุการใช้งานและการจำกัดการใช้ pointer นอกบล็อกที่กำหนด - แนวทางที่ให้ประโยชน์ด้านความปลอดภัยบางอย่างที่พบในภาษาอย่าง Rust
การอภิปรายเรื่อง Smolweb
การมาถึงของ Vaev ได้จุดประเด็นการสนทนาที่เกิดขึ้นซ้ำๆ เกี่ยวกับการกำหนดมาตรฐานชุดย่อยขั้นต่ำของเทคโนโลยีเว็บ นักพัฒนาหลายคนแสดงความสนใจในการกำหนดมาตรฐาน smolweb - ชุดย่อยที่จำกัดแต่สอดคล้องกันของมาตรฐานเว็บที่เบราว์เซอร์ทางเลือกสามารถนำไปใช้ได้โดยไม่ต้องพยายามทำให้รองรับเว็บอย่างสมบูรณ์
ข้อเสนอแนะสำหรับมาตรฐานสมมตินี้มีตั้งแต่การใช้ข้อกำหนดเก่าอย่าง HTML 4.01 และ CSS 2.1 ไปจนถึงการเน้นที่คุณสมบัติที่จำเป็นแต่ทันสมัยเช่น CSS Grid ในขณะที่กำจัดความซับซ้อนที่ไม่จำเป็น บางคนเสนอให้ใช้ความเข้ากันได้ของ HTML อีเมลเป็นพื้นฐาน ในขณะที่คนอื่นๆ แนะนำให้เริ่มต้นด้วยข้อกำหนดขั้นต่ำที่จำเป็นสำหรับการแสดงผล Markdown
การอภิปรายนี้เน้นย้ำถึงความต้องการที่เพิ่มขึ้นสำหรับเทคโนโลยีเว็บที่เรียบง่ายและมีจุดเน้นมากขึ้น ซึ่งอาจช่วยให้เกิดความหลากหลายของเบราว์เซอร์มากขึ้นโดยไม่จำเป็นต้องใช้ทรัพยากรทางวิศวกรรมมหาศาลอย่างที่จำเป็นในปัจจุบันเพื่อแข่งขันกับเบราว์เซอร์ที่ครองตลาด
ความท้าทายและแนวโน้มในอนาคต
การสร้างเครื่องมือประมวลผลเบราว์เซอร์ใหม่เป็นงานที่ซับซ้อนอย่างยิ่ง โดยผู้แสดงความคิดเห็นหลายคนสังเกตว่าเบราว์เซอร์ได้กลายเป็นระบบปฏิบัติการในตัวเอง ปริมาณโค้ดมหาศาลที่จำเป็นแม้แต่สำหรับฟังก์ชันพื้นฐาน (โดย Vaev มีไฟล์มากมายที่มีมากกว่า 500 บรรทัดแล้ว) แสดงให้เห็นว่าทำไมเครื่องมือประมวลผลเบราว์เซอร์ใหม่จึงเกิดขึ้นน้อยมาก
ในขณะที่อนาคตอันใกล้ของ Vaev ดูเหมือนจะมุ่งเน้นไปที่การแสดงผลเอกสารและการสร้าง PDF มากกว่าการท่องเว็บทั่วไป นักพัฒนาไม่ได้ปฏิเสธที่จะรองรับ JavaScript และคุณสมบัติเว็บที่ครอบคลุมมากขึ้นในที่สุด สถาปัตยกรรมของโครงการถูกออกแบบให้รองรับหลายแพลตฟอร์มตั้งแต่เริ่มต้น ซึ่งแตกต่างจากโครงการเบราว์เซอร์ทางเลือกอื่นๆ ที่เริ่มต้นเป็นการใช้งานเฉพาะระบบปฏิบัติการ
ในขณะที่เทคโนโลยีเว็บยังคงเติบโตซับซ้อนมากขึ้น โครงการอย่าง Vaev ให้การสำรวจที่มีคุณค่าของแนวทางทางเลือกและกรณีการใช้งานเฉพาะทาง ไม่ว่าจะเน้นที่การแสดงผลเอกสาร มาตรฐานเว็บขั้นต่ำ หรือการปรับปรุงความปลอดภัย การทดลองเหล่านี้มีส่วนร่วมในการสนทนาที่กว้างขึ้นเกี่ยวกับทิศทางในอนาคตของเทคโนโลยีเว็บและความหลากหลายของเบราว์เซอร์
อ้างอิง: skift-org/vaev