- htmx की शुरुआत
intercooler.js से हुई, जो मूल रूप से jQuery पर आधारित था और केवल HTML attributes से dynamic features देता था
- jQuery के लंबे समय तक चलने का एक कारण यह है कि इसे आसानी से लागू किया जा सकता है, API काफ़ी consistent है, और इसकी partial उपयोगिता स्वतंत्र रूप से इस्तेमाल की जा सकती है
htmx नई jQuery है
- htmx भी jQuery की तरह लंबे समय तक चलने वाली एक स्थिर लाइब्रेरी बनना चाहता है
- “100 साल तक चलने वाली web service” का लक्ष्य रखते हुए इसे बिना बड़े बदलाव के भी उपयोगी और sustainable बनाने के लिए डिज़ाइन किया गया है
- Feature के रूप में Stability
- htmx की मुख्य अपडेट पॉलिसी API और implementation की स्थिरता बनाए रखने की है
- पुराने संस्करण से नए संस्करण पर अपग्रेड करने पर भी वही behavior काम करे, इसलिए टीम “existing users” पर केंद्रित approach अपनाती है
- Feature के रूप में नए फीचर नहीं
- htmx core में बिना सोचे-समझे नए features जोड़े नहीं जाते
- जहाँ ज़रूरत हो, वहाँ browser-supported नए API या extensions से समाधान किया जाता है और core को simple रखा जाता है
- Quarterly Releases
- हर quarter (लगभग हर 3 महीने में) नया release देने की योजना है
- अपग्रेड को कभी मजबूरी नहीं बनाया जाएगा; अगर आप 1.x version बिना समस्या के चला रहे हैं, तो उसे जारी रख सकते हैं
Hypermedia को बढ़ावा देना
- htmx का लक्ष्य किसी पूर्ण web application stack का solution देना नहीं, बल्कि hypermedia control को सामान्य बनाने पर केंद्रित है
- इसके लिए htmx के बाहर के template engines, backend और database आदि के साथ integration को बेहतर करना ज़रूरी है
- htmx में नया feature न जोड़ने पर भी, अगर आसपास के tools hypermedia ecosystem को richer बनाते हैं, तो परिणामस्वरूप htmx और अधिक उपयोगी हो सकता है
- सपोर्टिव टूल्स को बढ़ावा देना
- htmx केवल HTML attributes से कुछ capabilities देता है, जबकि backend या DB चुनना पूरी तरह उपयोगकर्ता पर निर्भर है
- इसे कई प्रकार के बैकएंड के साथ compatible बनाने के लिए डिजाइन किया गया है, ताकि hypermedia-centric development pattern को support मिल सके
- partial page swap आसान बनाने वाले “template fragment” concept को आगे बढ़ाकर यह template engine ecosystem के विकास में योगदान देता है
- अब कई template engines ने fragment support देने वाले फीचर शामिल करने शुरू कर दिए हैं
- फिर भी hypermedia आधारित web app बनाने के बेहतर अनुभव के लिए अभी बहुत सारे रास्ते मौजूद हैं
- htmx core features से ज़्यादा आसपास के tools/technologies को बढ़ावा देकर पूरे ecosystem को grow करने पर focus करता है
- लेखन, शोध और standardization
- htmx खुद का feature विस्तार करने से ज़्यादा hypermedia ideas को promote और evolve करने पर काम करेगा
- Triptych परियोजना जैसी पहल के ज़रिए HTML standard में htmx के ideas को शामिल करने की कोशिश की जा रही है
- अंतिम लक्ष्य यह है कि वेब प्लेटफॉर्म खुद htmx जैसी functionality को standard के रूप में support करे
- आज लिखा गया htmx code आगे भी compatible रहेगा, लेकिन एक दिन ऐसी दुनिया की उम्मीद है जहाँ बिना किसी library के भी similar UI patterns बना सके
Intercooler सही था
- intercooler.js के दौर से ही बदलाव को avoid करते हुए, “stewardship” यानी संभालकर रखने वाले तरीके से इसे maintain किया गया
- htmx भी यही philosophy अपनाता है: एक “robust और विश्वसनीय tool” की तरह लंबे समय तक बना रहना
1 टिप्पणियां
Hacker News टिप्पणियाँ
HTMX से Hotwire पर पोर्टिंग का अपना अनुभव साझा करते हुए उन्होंने कहा कि HTMX का आइडिया अच्छा है, लेकिन इसका execution कमजोर है। उन्होंने बताया कि इसमें कई बग हैं, यह वेब और ब्राउज़र फंक्शनों के साथ अच्छी तरह मेल नहीं खाता, और डॉक्यूमेंटेशन भी पर्याप्त नहीं है। Turbo और Stimulus पर पोर्ट करने के बाद उन्हें अधिक स्थिर और समझने में आसान कोड बेस मिला।
उन्होंने बढ़ती हुई स्थिरता-केन्द्रित प्रवृत्ति से सहमति जताई और बताया कि किसी अस्थिर abstraction पर निर्माण करने से भविष्य में बग आने की संभावना ज्यादा होती है। छोटे प्रोजेक्ट में यह समस्या नहीं बनती, लेकिन यदि उपयोगिता साबित हो जाए तो वही बड़े प्रोजेक्ट में विकसित हो सकते हैं।
Django और HTMX के साथ ऐप्स बनाने का अनुभव साझा करते हुए उन्होंने बताया कि हालांकि वे React या Vue को प्राथमिकता देते हैं, HTMX बैकएंड डेवलपर्स के लिए बेहतर विकल्प हो सकता है। HTMX को आधुनिक frontend लाइब्रेरीज़ जितना टेस्ट करना आसान नहीं है, ऐसा उनका मूल्यांकन है।
उन्होंने HTMX की accessibility को लेकर चिंता व्यक्त की और कहा कि वे स्क्रॉल रीडर के साथ इसकी compatibility पर भरोसा महसूस करना चाहते हैं। सही तरीके से ARIA attributes इस्तेमाल करने से ज्यादा वे वास्तविक यूज़र एक्सपीरियंस को प्राथमिकता देते हैं।
HTMX के लिए उन्होंने धन्यवाद दिया क्योंकि यह कुछ JavaScript कार्यों को एक elegant abstraction के साथ संभालकर डेवलपर्स का काम कम करता है। यह जटिलता को मैनेज करने के लिए अच्छा सबक देता है।
उन्होंने बताया कि वे HTMX को एक बड़े सॉफ्टवेयर डेवलपमेंट कंपनी में अपनाने की कोशिश कर रहे हैं और मेंटरिंग में इसे thought experiment के रूप में उपयोग करते हैं। यह सच में SPA की जरूरत पर पुनर्विचार करने पर मजबूर करता है।
उन्होंने 'नो फीचर होना भी एक फीचर है' वाले दृष्टिकोण से सहमति जताई और सॉफ़्टवेयर को बार-बार अपडेट करने की जरूरत न होने को सकारात्मक रूप से देखा।
उन्होंने आशा व्यक्त की कि HTMX के फीचर्स HTML स्टैंडर्ड में सम्मिलित हों और बताया कि Triptych प्रोजेक्ट के ज़रिये वे इस दिशा में प्रयासरत हैं। उनका सपना है कि ये चीज़ें ब्राउज़र में डिफ़ॉल्ट रूप से मौजूद हों।