2 पॉइंट द्वारा GN⁺ 2024-10-01 | 1 टिप्पणियां | WhatsApp पर शेयर करें

Web Components ठीक हैं

  • वेब डेवलपमेंट कम्युनिटी अक्सर Web Components को लेकर बहस करती है
  • Ryan Carniato ने "Web Components Are Not the Future" शीर्षक से एक लेख लिखा, और Cory LaViska ने "Web Components Are Not the Future — They’re the Present" लेख के साथ उसका जवाब दिया
  • लेखक इस बहस को शांतिपूर्ण तरीके से सुलझाने की कोशिश करता है

प्रदर्शन

  • Web Components, Custom Elements पर आधारित हैं, इसलिए सभी इंटरफ़ेस DOM के माध्यम से संभाले जाते हैं
  • DOM nodes को न्यूनतम रखना performance optimization की कुंजी है
  • लेकिन performance ही सब कुछ नहीं है; maintainability, security, usability, accessibility जैसे अन्य कारकों पर भी विचार करना चाहिए
  • उदाहरण के लिए, aria-* attributes को render न करने से performance बेहतर हो सकती है, लेकिन accessibility के लिए वे अनिवार्य हैं
  • performance optimization महत्वपूर्ण है, लेकिन व्यवहार में layout thrashing, network waterfall, अनावश्यक rerendering जैसी अधिक सरल समस्याएँ performance पर उससे भी बड़ा प्रभाव डालती हैं

स्टैंडर्ड्स की लागत

  • standards को support करने के लिए अतिरिक्त code लिखना और चलाना पड़ता है
  • लेकिन Web Components को support करना कोई बहुत बड़ा बोझ नहीं है
  • नए web platform features पर विचार करना स्वाभाविक है, और यही बात Symbols, Proxys, Promises आदि पर भी लागू होती है
  • वेब डेवलपमेंट कम्युनिटी का एक हिस्सा Web Components को support नहीं करना चाह सकता है, और यह ठीक है
  • वेब एक बड़ा तंबू है जो अलग-अलग approaches की अनुमति देता है

निष्कर्ष

  • Web Components अपने आप में समस्या नहीं हैं, लेकिन यह वादा कि वे सब कुछ replace कर सकते हैं, खतरनाक है
  • Web Components में server-side rendering, accessibility, interoperability आदि के मामले में कमजोरियाँ हैं
  • React, Solid, Svelte जैसे दूसरे frameworks के पास अब भी ऐसे क्षेत्र हैं जहाँ वे चमकते हैं
  • वेब का उपयोग कई तरह के उद्देश्यों के लिए होता है, और यह रचनात्मकता व्यक्त करने का अवसर देता है
  • हो सकता है Web Components आपके लिए सही न हों, और यह ठीक है

# GN⁺ का सारांश

  • यह लेख Web Components पर अलग-अलग दृष्टिकोण प्रस्तुत करता है और performance तथा अन्य तत्वों के बीच संतुलन पर ज़ोर देता है
  • Web Components सब कुछ replace नहीं कर सकते, लेकिन वे कुछ खास उपयोगों के लिए उपयुक्त हैं
  • वेब डेवलपमेंट कम्युनिटी अलग-अलग approaches की अनुमति देती है, और इससे रचनात्मकता बढ़ती है
  • अगर Web Components आपके लिए उपयुक्त नहीं हैं, तो आप दूसरे frameworks का उपयोग कर सकते हैं
  • वेब की विविध क्षमताएँ नई रचनात्मक अभिव्यक्ति के अवसर प्रदान करती हैं

1 टिप्पणियां

 
GN⁺ 2024-10-01
Hacker News राय
  • "Web Components Are Not the Future" लेख के बारे में लगा कि इसमें ठोस और प्रभावशाली तर्कों की कमी है

    • मौजूदा frontend framework की स्थिति अव्यवस्थित है
    • जटिल framework सीखना नहीं चाहते
    • ऐसे जादुई features नहीं चाहिए जिन्हें documentation के बिना समझा न जा सके
    • Web Components सहज हैं और Shadow DOM के ज़रिए isolation प्रदान करते हैं
    • लगता है कि React के दौर से सिर्फ JSX को ही बनाए रखना चाहिए
  • लोग अलग-अलग optimization चाहते हैं, इसलिए राय बंटी हुई है

    • VC-backed startup में framework उपयुक्त हो सकते हैं
    • academic lab में कम maintenance cost वाले Web Components बेहतर हैं
    • Vue से Web Components पर जाने का अनुभव बहुत अच्छा रहा
    • dependencies कम हो गईं, इसलिए management आसान हो गया
  • Svelte, Custom Elements API के ज़रिए Web Components बनाना support करता है

    • Svelte, JS/HTML/CSS में compile होता है, इसलिए reusable components आसानी से बनाए जा सकते हैं
  • नहीं लगता कि Web Components full-stack developers की ज़िंदगी बेहतर बनाते हैं

    • ज़्यादातर उदाहरण बस HTML में data templating तक सीमित हैं
    • यह काम Handlebars से पहले से किया जा सकता है
  • Web Components और Shadow DOM, browser extensions के काम में रुकावट डाल सकते हैं

    • browser vendors इस समस्या को हल करने में जल्दबाज़ी नहीं दिखा रहे
  • interoperability की एक performance cost होती है

    • कई frameworks अपने-अपने runtime के साथ आते हैं, जिससे performance गिर सकती है
    • Web Components तकनीकी रूप से पीछे हैं और complexity बढ़ाते हैं
  • लगता है कि Web Components आज के frontend की समस्याएँ हल कर सकते हैं

    • performance अच्छी है, और data tables को smoothly scroll किया जा सकता है
    • Web Components library तैयार की जा रही है
  • 250,000 lines के JS codebase को inherited रूप में पाकर उसे Web Components में refactor किया जा रहा है

    • code की लंबाई 50,000 lines कम कर दी गई
    • इससे मौजूदा code की functionality समझने में मदद मिली
  • Web Components, JS के बिना भी काम कर सकते हैं

    • progressive enhancement के लिए कुछ बार इस्तेमाल किया है
    • server-side rendering के साथ अच्छी तरह काम करते हैं
  • framework और Web Components अलग-अलग समस्याएँ हल करने वाले tools हैं

    • framework, state के आधार पर view rendering संभालते हैं
    • Web Components, state management की समस्या हल नहीं करते
    • लगता है कि दोनों साथ-साथ मौजूद रह सकते हैं