- htmx กำเนิดมาจาก
intercooler.js ซึ่งเดิมเป็นไลบรารีบนฐานของ jQuery ที่ให้ความสามารถแบบไดนามิกด้วยเฉพาะแอตทริบิวต์ HTML
- สาเหตุที่ jQuery ถูกใช้ในเว็บไซต์จำนวนมากเป็นเวลานานรวมถึงความง่ายในการเริ่มต้น, API ที่สอดคล้องกัน, และความยืดหยุ่นในการใช้งานบางส่วนได้
htmx คือ jQuery รุ่นใหม่
- htmx ก็มุ่งเป็นไลบรารีที่เสถียรและใช้งานได้อย่างยาวนานเช่นเดียวกับ jQuery
- ตั้งเป้าหมายเป็น “บริการเว็บที่สามารถคงอยู่ได้ 100 ปี” โดยออกแบบมาให้ยังคงใช้งานได้ผลและยั่งยืนแม้มีการเปลี่ยนแปลงครั้งใหญ่เพียงเล็กน้อย
- ความเสถียรคือคุณสมบัติ
- นโยบายอัปเดตหลักของ htmx คือการรักษา เสถียรภาพของ API และการใช้งาน
- เมื่ออัปเกรดจากเวอร์ชันเดิมเป็นเวอร์ชันใหม่ ให้แน่ใจว่าการทำงานคงเดิม โดยยึดผู้ใช้คนเดิมเป็นศูนย์กลาง
- ไม่มีฟีเจอร์ใหม่เป็นเอกลักษณ์
- htmx มุ่งไม่เพิ่มฟังก์ชันใหม่เข้าไปในแกนหลักแบบสุ่มสี่สุ่มห้า
- หากจำเป็นจะจัดการผ่าน API ใหม่ที่เบราว์เซอร์รองรับหรือส่วนขยาย (extensions) และคงความเรียบง่ายของแกนหลักไว้
- การปล่อยเวอร์ชันรายไตรมาส
- วางแผนปล่อยเวอร์ชันใหม่ตามรอบไตรมาส (ประมาณทุก 3 เดือน)
- ไม่บังคับให้อัปเกรด และหากใช้งานเวอร์ชัน 1.x ได้อย่างไม่มีปัญหาก็สามารถคงไว้ได้
ส่งเสริมไฮเพอร์มีเดีย
- เป้าหมายหลักของ htmx ไม่ใช่การเป็นโซลูชันเว็บแอปพลิเคชันแบบครบวงจร แต่เป็นการทำให้ การควบคุมไฮเพอร์มีเดีย กลายเป็นเรื่องทั่วไป
- เพื่อให้ทำได้ ต้องปรับปรุงการเชื่อมต่อกับเครื่องมือภายนอกของ htmx เช่น เทมเพลตเอนจิน, แบ็กเอนด์, ฐานข้อมูล เป็นต้น
- แม้จะไม่เพิ่มฟีเจอร์ใหม่ให้ htmx เอง หากเครื่องมือรอบข้างช่วยทำให้ระบบนิเวศไฮเพอร์มีเดียสมบูรณ์ขึ้น ก็จะทำให้ htmx ใช้ได้กว้างขวางขึ้น
- สนับสนุนเครื่องมือเสริม
- htmx ให้บางฟีเจอร์ผ่านแอตทริบิวต์ HTML เท่านั้น แต่การเลือกแบ็กเอนด์หรือฐานข้อมูลเป็นการตัดสินใจของผู้ใช้ทั้งหมด
- ออกแบบให้เข้ากันได้กับแบ็กเอนด์หลากหลายเพื่อสนับสนุนรูปแบบการพัฒนาที่เน้นไฮเพอร์มีเดีย
- เน้นแนวคิด “template fragments” ที่ทำให้การแทนที่บางส่วนของหน้าเว็บทำได้ง่าย และช่วยผลักดันให้ระบบนิเวศเทมเพลตเอนจินพัฒนา
- ขณะนี้มีกรณีมากขึ้นที่เทมเพลตเอนจินหลายตัวมีฟังก์ชัน fragment
- ยังมีแนวทางมากมายที่ช่วยยกระดับประสบการณ์การเขียนเว็บแอปพลิเคชันบนพื้นฐานไฮเพอร์มีเดีย
- htmx เน้นการขับเคลื่อนการพัฒนาเครื่องมือและเทคโนโลยีเสริมมากกว่าฟีเจอร์แกน เพื่อโฟกัสการเติบโตของระบบนิเวศโดยรวม
- การเขียน การวิจัย และการมาตรฐาน
- htmx วางแผนที่จะเผยแพร่และพัฒนาความคิดเรื่อง ไฮเพอร์มีเดีย โดยรวม มากกว่าการขยายฟีเจอร์ของตัวเอง
- ผ่านโครงการ Triptych และโครงการอื่นเพื่อให้ไอเดียของ htmx ถูกสะท้อนในมาตรฐาน HTML
- เป้าหมายในที่สุดคือให้แพลตฟอร์มเว็บรองรับฟังก์ชันที่คล้ายกับ htmx ในรูปแบบมาตรฐาน
- แม้โค้ด htmx ที่เขียนในวันนี้ยังคงเข้ากันได้อย่างต่อเนื่อง แต่ในอนาคตหนึ่งโลกที่สามารถสร้างแพทเทิร์น UI ที่คล้ายกันได้โดยไม่ต้องใช้ไลบรารีย่อมเป็นไปได้
Intercooler ทำถูกต้อง
- ตั้งแต่ยุค
intercooler.js มากิได้ใช้แนวทาง stewardship ที่หลีกเลี่ยงการเปลี่ยนแปลงรุนแรง และไม่ทำลายสิ่งที่มีอยู่
- htmx ก็รับช่วงปรัชญานี้เช่นกัน โดยมุ่งเป็น “เครื่องมือที่แข็งแกร่งและน่าเชื่อถือ” ที่จะอยู่รอดได้อย่างยาวนาน
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ฉันได้แชร์ประสบการณ์ที่ย้ายโปรเจกต์จาก HTMX ไปยัง Hotwire สำเร็จแล้ว และประเมินว่าคอนเซปต์ของ HTMX น่าสนใจ แต่การใช้งานจริงยังไม่รัดกุม กล่าวถึงมีบั๊กจำนวนมาก และเข้ากันได้ไม่ดีนักกับฟีเจอร์ของเว็บและเบราว์เซอร์ อีกทั้งเอกสารยังไม่เพียงพอ หลังจากย้ายไปใช้ Turbo และ Stimulus แล้วได้โค้ดฐานที่เสถียรกว่าและเข้าใจง่ายกว่า
เห็นด้วยกับแนวโน้มที่ให้ความสำคัญกับเสถียรภาพ และชี้ว่าการสร้างระบบบนพื้นฐานของ abstraction ที่ไม่เสถียรจะทำให้มีโอกาสเกิดบั๊กในอนาคตสูงขึ้น โครงการขนาดเล็กอาจไม่เป็นปัญหา แต่หากพิสูจน์แล้วว่ามีประโยชน์ อาจพัฒนาไปสู่โครงการขนาดใหญ่ได้
แบ่งปันประสบการณ์ในการพัฒนาแอปพลิเคชันด้วย Django และ HTMX อธิบายว่าถึงแม้จะชื่นชอบ React หรือ Vue แต่ HTMX อาจเหมาะกับนักพัฒนาฝั่งแบ็กเอนด์ได้ โดยประเมินว่า HTMX ยากต่อการทดสอบไม่ต่างจากไลบรารีฝั่งฟรอนต์เอนด์สมัยใหม่
แสดงความกังวลเกี่ยวกับความเข้าถึงได้ (accessibility) ของ HTMX และระบุว่าต้องการให้มั่นใจว่ามันเข้ากันได้กับ screen reader ได้ดี มองว่าควรให้ความสำคัญกับประสบการณ์ผู้ใช้จริงมากกว่าการใช้คุณสมบัติ ARIA อย่างถูกต้อง
ขอบคุณ HTMX ที่ช่วยลดงานนักพัฒนาโดยจัดการงาน JavaScript บางอย่างด้วยการแสดงนามธรรมที่สวยงาม และให้บทเรียนที่ดีในการจัดการความซับซ้อน
กำลังพยายามนำ HTMX เข้าสู่บริษัทพัฒนาซอฟต์แวร์ขนาดใหญ่ และระบุว่ากำลังใช้มันเป็นการทดลองทางความคิด (thought experiment) ในการให้คำปรึกษา ซึ่งทำให้ต้องตั้งคำถามว่าจำเป็นต้องมี SPA จริงๆ หรือไม่
เห็นด้วยกับความเห็นที่ว่า "ไม่มีฟีเจอร์ใหม่เป็นฟีเจอร์ที่ดีที่สุด" และชื่นชมที่ซอฟต์แวร์ไม่จำเป็นต้องอัปเดตบ่อย
หวังว่า HTMX จะกลายเป็นส่วนหนึ่งของมาตรฐาน HTML และกล่าวว่ากำลังผลักดันแนวคิดนี้ผ่านโครงการ Triptych ในขณะเดียวกันก็หวังว่าฟังก์ชันเหล่านี้จะถูกรวมอยู่ในตัวของเบราว์เซอร์โดยดีฟอลต์