RawJS `document.createElement()` को कॉल करने का एक बेहतर तरीका है
RawJS नाम की एक नई frontend library React या virtual DOM के बिना UI बनाने के लिए `document.createElement()` को एक हल्के, अधिक ergonomic तरीके से कॉल करने का दावा करती है। टिप्पणीकर्ता मुख्यतः इसके marketing-heavy homepage, स्पष्ट code examples की कमी, अटपटी ergonomics, और TypeScript तथा अपरंपरागत project structure पर निर्भरता की आलोचना करते हैं, और तर्क देते हैं कि यह स्थापित frameworks की तुलना में जटिल apps या teams के साथ अच्छी तरह scale नहीं करती। कुछ लोग dependencies कम रखने और DOM के करीब रहने के लक्ष्य की सराहना करते हैं, लेकिन अधिकांश इसे आधुनिक frameworks जैसे React, Vue, या Svelte का व्यावहारिक विकल्प नहीं, बल्कि एक niche या experimental tool मानते हैं.
लैंडिंग पेज, डेमो, और डॉक्स
- कई टिप्पणीकर्ताओं को मार्केटिंग पेज अस्पष्ट लगा: ज़्यादातर दावे थे, उदाहरण कोड कम थे, और स्थिति-निर्धारण भी साफ़ नहीं था।
- लाइव डेमो की UX समस्याओं के लिए आलोचना हुई: बैक-बटन हिस्ट्री स्पैम, अटपटे मोडल्स (स्पष्ट क्लोज़ बटन नहीं, बैकड्रॉप समस्याएँ), बहुत बड़ी टाइपोग्राफी, और कुल मिलाकर “अधपका” एहसास।
- टाइपो और “Check out Squares” से एक सैंपल रिपो (मुख्य साइट नहीं) की ओर जाने वाले भ्रमित करने वाले लिंक ने भरोसा कम किया।
- कई लोगों ने एक सरल, मानक उदाहरण (जैसे TODO ऐप) और React/jQuery/vanilla के साथ साइड-बाय-साइड तुलना माँगी, “youmightnotneedjquery” की तर्ज़ पर।
API डिज़ाइन और एर्गोनॉमिक्स
- साझा किए गए कोड स्निपेट्स को व्यापक रूप से लंबा-चौड़ा, इम्पेरेटिव, और jQuery तथा फ्रेमवर्क टेम्पलेट्स दोनों की तुलना में पढ़ने में कठिन माना गया।
- पैरामीटर ओवरलोडिंग शैली (strings, functions, event helpers, attrs, arrays का मिश्रण) को “मैजिक” और त्रुटि-प्रवण माना गया, जो “no magic” मार्केटिंग के विपरीत है।
- JS फ़ंक्शन कॉल्स के माध्यम से HTML और CSS लिखना उन कई लोगों को पसंद नहीं आया जो टेम्पलेट्स या सादे HTML+CSS के साथ JS एन्हांसमेंट पसंद करते हैं।
फ्रेमवर्क्स और Vanilla JS के मुकाबले स्थिति
- समर्थकों ने इरादे की सराहना की: न्यूनतम dependencies, सीधे DOM का उपयोग, virtual DOM नहीं, और “DOM as state”。
- आलोचकों का तर्क था कि DOM निर्माण कठिन हिस्सा नहीं है; state management और स्केलेबल updates कठिन हैं, जहाँ React/Vue/Svelte/Solid चमकते हैं।
- कई लोगों को लगा कि RawJS “componentized jQuery” जैसा है और बड़े apps या teams के लिए अच्छी तरह स्केल नहीं करेगा।
- दूसरों ने बताया कि JSX + React पहले से ही एक de facto standard की तरह हैं, और htmx, Hotwire, ArrowJS, या सादा Vue जैसे सरल टूल्स अधिक उपयुक्त हो सकते हैं।
बिल्ड, Dependencies, और Modules
- सैंपल रिपो के “no bundler/build” बनाम “TypeScript builds your app” संदेश ने कुछ लोगों को भ्रमित किया; बाद में इसे “no webpack/rollup, just tsc” के रूप में स्पष्ट किया गया।
- केवल jsdelivr-hosted deps का उपयोग करने की सिफ़ारिश और “npm install programmers” वाली टिप्पणी को विरोध मिला, खासकर जब प्रोजेक्ट की अपनी npm-शैली dependencies थीं।
- library की ES modules और import lists के प्रति नापसंदगी ने बहस छेड़ी; दूसरों ने ESM और स्पष्ट imports का standard practice के रूप में बचाव किया।
दावे, Performance, और Scale
- “no learning curve”, “no weird magic”, “no performance overhead”, “no known bugs”, और TypeScript के साथ इसे “RawJS” कहना जैसी बातें कुछ लोगों को आत्मविश्वासी सीमा से अधिक या भ्रामक लगीं।
- समग्र भावना संदेहपूर्ण रही: दिलचस्प लक्ष्य, लेकिन कमजोर उदाहरण, अधूरा UX, मौजूदा libraries पर अस्पष्ट लाभ, और बड़े, वास्तविक-world frontends पर व्यवहार्यता को लेकर संदेह।