การเปิดตัว XMLUI เฟรมเวิร์กใหม่ที่นำการพัฒนาส่วนติดต่อผู้ใช้แบบ XML มาสู่เว็บแอปพลิเคชันสมัยใหม่ ได้จุดประกายการถกเถียงอย่างเข้มข้นในหมู่นักพัฒนาเกี่ยวกับการที่เทคโนโลยีเก่าควรได้รับโอกาสครั้งที่สองหรือไม่ โครงการนี้มีเป้าหมายเพื่อทำให้การพัฒนาเว็บง่ายขึ้นโดยการห่อหุ้ม React components ด้วย XML markup และสัญญาว่าจะทำให้การสร้าง UI ตรงไปตรงมาเหมือนในยุค Visual Basic
เสียงสะท้อนของเทคโนโลยีในอดีต
การประกาศครั้งนี้ได้กระตุ้นให้เกิดคลื่นความคิดถึงในหมู่นักพัฒนาที่มีประสบการณ์ซึ่งยังจำเทคโนโลยีที่คล้ายกันจากช่วงต้นทศวรรษ 2000 ได้ ผู้แสดงความคิดเห็นหลายคนได้เปรียบเทียบกับ XUL (XML User Interface Language) ของ Mozilla ทันที ซึ่งเป็นตัวขับเคลื่อนส่วนติดต่อของ Firefox และช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันเดสก์ท็อปโดยใช้เทคโนโลยีเว็บ คนอื่นๆ ก็นึกถึง Adobe Flex, XAML ของ Microsoft และไฟล์ .ui ของ Qt ซึ่งล้วนเป็นแนวทางแบบ XML ที่เคยสัญญาว่าจะปฏิวัติการพัฒนาส่วนติดต่อ
ประเด็นที่เกิดขึ้นซ้ำๆ ในการอภิปรายของชุมชนมีจุดศูนย์กลางอยู่ที่ว่า XMLUI แสดงถึงนวัตกรรมที่แท้จริงหรือเป็นเพียงการประดิษฐ์โซลูชันที่เคยถูกละทิ้งไปด้วยเหตุผลที่ดีขึ้นมาใหม่ นักพัฒนาหลายคนสังเกตว่าแนวทางแบบ XML เหล่านี้ตกออกจากความนิยมเมื่อการพัฒนาเว็บพัฒนาไปสู่ทางเลือกที่ยืดหยุ่นและทรงพลังมากขึ้น
เทคโนโลยี XML UI ในอดีตที่กล่าวถึง:
- XUL (XML User Interface Language) - เทคโนโลยีส่วนติดต่อผู้ใช้ของ Mozilla Firefox
- XAML - ภาษามาร์กอัปของ Microsoft สำหรับแอปพลิเคชัน .NET
- Adobe Flex/MXML - เฟรมเวิร์กแอปพลิเคชันที่ใช้ Flash เป็นฐาน
- Qt .ui files - คำจำกัดความส่วนติดต่อผู้ใช้ที่ใช้ XML สำหรับแอปพลิเคชัน Qt
- OpenLaszlo - แพลตฟอร์มแอปพลิเคชันเว็บยุคแรกที่ใช้ XML
การถกเถียงระหว่างความเรียบง่ายกับการควบคุม
ส่วนสำคัญของการอภิปรายมุ่งเน้นไปที่ความตึงเครียดพื้นฐานระหว่างความง่ายในการใช้งานและการควบคุมของนักพัฒนา ผู้สนับสนุนโต้แย้งว่า XMLUI สามารถทำให้การพัฒนาเว็บเป็นประชาธิปไตยโดยทำให้เข้าถึงได้สำหรับโปรแกรมเมอร์ที่รู้สึกสบายใจกับเครื่องมือพัฒนาเดสก์ท็อปแบบดั้งเดิมแต่รู้สึกกลัวความซับซ้อนของ JavaScript frameworks สมัยใหม่ โครงการนี้มุ่งเป้าไปที่นักพัฒนาที่รู้สึกสบายใจกับเครื่องมือพัฒนาเดสก์ท็อปแบดั้งเดิมแต่รู้สึกกลัวความซับซ้อนของ React, webpack และระบบนิเวศ JavaScript ที่กว้างขวางขึ้น
อย่างไรก็ตาม ผู้วิพากษ์วิจารณ์ตั้งคำถามว่าการทำให้เรียบง่ายนี้มาพร้อมกับต้นทุนที่สูงเกินไปหรือไม่ พวกเขาชี้ให้เห็นว่านักพัฒนาเว็บสมัยใหม่คาดหวังการควบคุมที่แม่นยำเหนือการจัดรูปแบบ เลย์เอาต์ และพฤติกรรม ซึ่งเป็นสิ่งที่แนวทาง XML แบบ declarative มีปัญหาในการจัดหาในอดีต การถกเถียงนี้สะท้อนการอภิปรายที่กว้างขวางขึ้นในอุตสาหกรรมเกี่ยวกับการที่การแสวงหาความเรียบง่ายควรมีความสำคัญเหนือความต้องการในการควบคุมแบบละเอียดหรือไม่
ข้อกังวลเรื่องสถาปัตยกรรมทางเทคนิค
การใช้งานทางเทคนิคของ XMLUI ได้ทำให้นักพัฒนาที่คุ้นเคยกับปรัชญาการออกแบบของ React เกิดความสงสัย เฟรมเวิร์กนี้โดยพื้นฐานแล้วเพิ่มเลเยอร์ XML บนด้านบนของ React ซึ่งบางคนโต้แย้งว่าขัดแย้งกับหลักการหลักของ React React ได้รับการออกแบบมาเพื่อนำแนวคิด immediate-mode UI มาสู่เบราว์เซอร์ ช่วยให้นักพัฒนาสามารถอธิบายส่วนติดต่อเป็นฟังก์ชันของสถานะแทนที่จะจัดการลำดับชั้นของออบเจกต์ที่ซับซ้อน
สิ่งนี้ขัดแย้งกับ raison d'être ของ React ซึ่งคือการนำรูปแบบการพัฒนาของ immediate mode UIs มาสู่เบราว์เซอร์ นั่นคือปัจจัยขับเคลื่อนพื้นฐานเบื้องหลังการสร้าง React
ผู้วิพากษ์วิจารณ์แนะนำว่าการสร้างการแยกแยะ XML บนด้านบนของ React สร้างความซับซ้อนที่ไม่จำเป็นแทนที่จะลดลง พวกเขาโต้แย้งว่านักพัฒนาจะได้รับการบริการที่ดีกว่าโดยการเรียนรู้มาตรฐานเว็บเช่น custom elements และ shadow DOM ซึ่งให้ฟังก์ชันการทำงานแบบคอมโพเนนต์โดยไม่มีภาระเพิ่มเติมของเฟรมเวิร์ก
คำถามเรื่องประสิทธิภาพและการปฏิบัติ
ผู้ใช้งานในช่วงแรกได้รายงานประสบการณ์ที่หลากหลายกับลักษณะประสิทธิภาพของ XMLUI ขนาด 4.23 MB ที่ย่อแล้วของเฟรมเวิร์กและ dependencies 90 ตัวได้ทำให้เกิดความกังวลเกี่ยวกับการที่มันส่งมอบสัญญาของความเรียบง่ายหรือไม่ นักพัฒนาบางคนสังเกตว่าเว็บไซต์เอกสารอย่างเป็นทางการที่สร้างโดยใช้ XMLUI เองนั้นทำงานได้ไม่ดีบนอุปกรณ์มือถือ
ปัญหาประสิทธิภาพเหล่านี้เน้นย้ำถึงความท้าทายทั่วไปกับเลเยอร์การแยกแยะ: พวกมันมักจะแนะนำภาระเพิ่มเติมในขณะที่พยายามทำให้การพัฒนาเรียบง่าย การอภิปรายของชุมชนเผยให้เห็นความสงสัยเกี่ยวกับการที่ XMLUI สามารถบรรลุทั้งความเรียบง่ายและประสิทธิภาพในแอปพลิเคชันในโลกแห่งความเป็นจริงหรือไม่
ข้อมูลจำเพาะทางเทคนิคของ XMLUI :
- ขนาดเฟรมเวิร์ก: 4.23 MB (แบบย่อ)
- Dependencies: 90 dependencies โดยตรง (931 แบบแก้ไขครบถ้วน)
- สร้างบนพื้นฐานของระบบนิเวศ React
- ใช้มาร์กอัป XML สำหรับการกำหนดคอมโพเนนต์
- รองรับการผูกข้อมูลและการอัปเดตแบบ reactive
- รวมความสามารถด้านธีมและการจัดรูปแบบ
มรดกของ Visual Basic
บางทีแง่มุมที่น่าสนใจที่สุดของการอภิปราย XMLUI คือวิธีที่มันได้จุดประกายการสนทนาเกี่ยวกับแนวทางของ Visual Basic ต่อการพัฒนาแอปพลิเคชันอย่างรวดเร็วขึ้นมาใหม่ นักพัฒนาหลายคนที่เริ่มอาชีพด้วย VB จำได้ว่าพวกเขาสามารถสร้างแอปพลิเคชันที่ใช้งานได้อย่างรวดเร็วด้วยส่วนติดต่อแบบลากและวางและการจัดการเหตุการณ์ที่เรียบง่าย
ความคิดถึงสำหรับโมเดลการพัฒนานี้แนะนำว่าแม้จะมีความก้าวหน้าหลายทศวรรษในเทคโนโลยีเว็บ นักพัฒนาหลายคนยังรู้สึกว่ามีบางสิ่งหายไปในการเปลี่ยนผ่านจากการพัฒนาเดสก์ท็อปไปสู่เว็บ ความพยายามของ XMLUI ในการเชื่อมช่องว่างนี้สะเท้อนกับนักพัฒนาที่เชื่อว่าการพัฒนาเว็บสมัยใหม่ได้กลายเป็นเรื่องซับซ้อนอย่างไม่จำเป็นสำหรับกรณีการใช้งานทั่วไป
ในขณะที่ XMLUI อาจไม่ปฏิวัติการพัฒนาเว็บ แต่มันได้ประสบความสำเร็จในการจุดประกายการสนทนาที่สำคัญเกี่ยวกับความสมดุลระหว่างพลังและความเรียบง่ายในเครื่องมือนักพัฒนา การที่มันจะได้รับแรงผลักดันหรือไม่น่าจะขึ้นอยู่กับความสามารถในการส่งมอบสัญญาหลัก: ทำให้การพัฒนาเว็บเข้าถึงได้โดยไม่เสียสละความสามารถที่แอปพลิเคชันสมัยใหม่ต้องการ
อ้างอิง: Introducing XMLUI