00:00:00कुछ नए प्रोजेक्ट्स के लिए जिन पर मैं काम कर रहा हूँ, दरअसल आजकल के मेरे ज़्यादातर नए प्रोजेक्ट्स में,
00:00:05मैंने Tailwind का इस्तेमाल बंद कर दिया है। अब मैं उन प्रोजेक्ट्स में Tailwind का उपयोग नहीं कर रहा हूँ,
00:00:11और इसलिए Shadcn का भी नहीं। और इसकी एक वजह है। वजह यह नहीं है कि Tailwind खराब है,
00:00:18बिल्कुल नहीं। बल्कि इसके उलट, यह एक बेहतरीन लाइब्रेरी है। मैं इस बारे में बहुत स्पष्ट रहना चाहता हूँ।
00:00:22और मुझे यह वीडियो या एपिसोड बनाते हुए थोड़ा बुरा भी लग रहा है, क्योंकि
00:00:27अभी कुछ ही हफ़्तों पहले, मैंने उन बड़ी वित्तीय समस्याओं के बारे में बात की थी जिनका सामना Tailwind कर रहा था।
00:00:32अब, तब से शुक्र है कि चीज़ें काफी बेहतर हो गई हैं। कई नए प्रायोजक साथ आए हैं। और अब मुझे लगता है कि
00:00:38वे आर्थिक रूप से बहुत बेहतर स्थिति में हैं। क्योंकि ज़ाहिर है, Tailwind कमाल का है।
00:00:43और इस प्रोजेक्ट पर बहुत दिल और ऊर्जा के साथ काम करने वाले लोग मौजूद हैं। मेरा मतलब यह नहीं है
00:00:49कि यह खराब है, या मैं किसी को इसे इस्तेमाल न करने के लिए मनाना चाहता हूँ। मैं बस इस चैनल का उपयोग
00:00:56अपने विचार, अपनी राय और अपने काम करने के तरीके को साझा करने के लिए कर रहा हूँ। इसलिए मुझे लगा कि यह
00:01:01दिलचस्प हो सकता है। तो फिर अगर मुझे लगता है कि यह बेहतरीन है, तो मैं Tailwind क्यों नहीं इस्तेमाल कर रहा? खैर, मुझे थोड़ा पीछे मुड़कर देखना होगा।
00:01:07कुछ साल पहले, AI क्रांति से पहले, या AI के कोडिंग में इतना माहिर होने से पहले,
00:01:15मैं भी बाकी डेवलपर्स की तरह Tailwind का उपयोग करता था। हालाँकि, उसके पीछे एक मुख्य कारण था,
00:01:21क्योंकि इसकी मदद से मैं कोड पर तेज़ी से काम कर पाता था। आप जानते हैं, मैंने कभी Figma
00:01:28या उस जैसे अन्य टूल्स का इस्तेमाल नहीं किया। ज़ाहिर है, इसकी एक वजह यह भी है कि मैं ज़्यादातर अकेले ही काम करता हूँ।
00:01:34और अगर मैं अपने प्रोजेक्ट्स पर अकेले काम कर रहा हूँ, तो मुझे उन डिज़ाइन टूल्स की ज़रूरत नहीं पड़ती। मेरे लिए,
00:01:40सीधे कोड में ही डिज़ाइन में बदलाव करना हमेशा तेज़ रहा है। मैं कोड लिख सकता था।
00:01:45और Tailwind के साथ, चूँकि आपकी क्लासेज आपके DOM या JSX कोड में इन-लाइन होती हैं, तो आप
00:01:50तेज़ी से उस कोड और स्टाइल को अपडेट कर सकते थे, और अलग-अलग स्टाइल्स आज़मा सकते थे। जैसे थोड़ा मार्जिन बदलकर देखना।
00:01:57और वह काम करने का एक बहुत ही कुशल तरीका था। मेरे लिए और शायद कुछ अन्य डेवलपर्स के लिए
00:02:04यही मुख्य कारण था कि मैं Tailwind का उपयोग कर रहा था। मुझे पता है कि काफी अन्य डेवलपर्स,
00:02:10शायद बहुमत के लिए, एक और बड़ा कारण यह है कि वे CSS को नापसंद करते हैं। मुझे पता है कि वेब डेवलपर्स के बीच
00:02:17CSS लोकप्रिय नहीं है। और मैं समझ सकता हूँ क्यों। यह बहुत जटिल लग सकता है। इसमें सैकड़ों-हज़ारों
00:02:23प्रॉपर्टीज़ और वैल्यूज़ हैं। और हाँ, यह डरावना हो सकता है। हालाँकि, मैं कहूँगा कि आधुनिक CSS
00:02:31ने एक लंबा सफ़र तय किया है। अब कई चीज़ें अतीत की तुलना में आसान हो गई हैं। मतलब, Flexbox अब
00:02:37बिल्कुल भी नया नहीं रहा, लेकिन इसने बहुत सी चीज़ों को आसान बना दिया। अब दूसरे क्षेत्रों में Flexbox के बारे में सोचें
00:02:44जहाँ रंग बनाना पहले की तुलना में बहुत आसान हो गया है। अब CSS में आपके पास रिलेटिव कलर्स हैं।
00:02:51वैसे, मैंने अपने 'Akatamine' चैनल पर कुछ वीडियो लॉन्च किए हैं जहाँ मैं आधुनिक ब्राउज़र
00:02:55और CSS फीचर्स जैसे कलर्स, रिलेटिव कलर्स या कंटेनर क्वेरीज़ के बारे में बात करता हूँ, जो कि
00:03:01डाइनैमिक रूप से रिसाइज़ होने वाले कंपोनेंट्स बनाने के लिए बेहतरीन हैं जो व्यूपोर्ट पर नहीं, बल्कि कंपोनेंट के पास
00:03:08उपलब्ध स्पेस पर निर्भर करते हैं। तो CSS ने बहुत तरक्की की है। अब बात यह है कि आप इन सभी
00:03:14आधुनिक CSS फीचर्स का उपयोग Tailwind के साथ भी कर सकते हैं, या फिर आप वैनिला CSS भी लिख सकते हैं
00:03:23और अब AI के साथ ऐसा करना और भी आसान है, क्योंकि भले ही आपको CSS का उपयोग करना पसंद न हो,
00:03:28कुछ खास फीचर्स और उनके ब्राउज़र सपोर्ट के बारे में जानना ही काफी हो सकता है। आप AI को उन
00:03:34फीचर्स की ओर इशारा कर सकते हैं जिन्हें आप इस्तेमाल करना चाहते हैं, कुछ डॉक्स या MDN आर्टिकल्स जोड़ सकते हैं जो उन फीचर्स को समझाते हैं, और AI
00:03:39आपके लिए कोड लिख सकता है। आप सोच रहे होंगे कि आप ऐसा क्यों करेंगे? बस Tailwind का उपयोग क्यों नहीं करते? मेरा मतलब है,
00:03:45इसमें भी ये सभी आधुनिक फीचर्स हैं, इसके मेरे पास लगभग डेढ़ कारण हैं।
00:03:51कम महत्वपूर्ण कारण यह है कि Tailwind हमेशा सभी नवीनतम फीचर्स को सपोर्ट नहीं करता है,
00:03:58और इससे भी महत्वपूर्ण बात यह है कि AI निश्चित रूप से Tailwind के सभी फीचर्स के बारे में नहीं जानता। मेरा मतलब है, Tailwind में
00:04:05बहुत सारे फीचर्स हैं, लेकिन AI उन सबका उपयोग नहीं करता। यह हमेशा वही कुछ क्लासेज और अक्सर
00:04:13पुराने क्लास सिंटैक्स का उपयोग करता है, इसलिए आप यहाँ कुछ फीचर्स को मिस कर रहे हैं। अब, यही बात आपके साथ
00:04:17तब भी हो सकती है जब आप वैनिला CSS का उपयोग कर रहे हों। अगर आप AI को किसी विशेष फीचर का उपयोग करने के लिए नहीं कहते हैं,
00:04:22तो हो सकता है वह न करे, लेकिन आप उन कुछ सबसे महत्वपूर्ण CSS फीचर्स के बारे में सीख सकते हैं जिन्हें आप उपयोग करना चाहते हैं और
00:04:29फिर AI को ऐसा करने के लिए कह सकते हैं, लेकिन ज़ाहिर है, मैं बात समझता हूँ। आप Tailwind के लिए भी ऐसा ही कर सकते हैं और
00:04:34बस AI को कुछ खास Tailwind फीचर्स इस्तेमाल करने के लिए कह सकते हैं। Tailwind क्लासेज की तुलना में बस कुछ मुख्य
00:04:40CSS फीचर्स का नाम लेना शायद आसान हो, लेकिन फिर से, यह मेरा मुख्य मुद्दा नहीं है। मेरा मुख्य मुद्दा यह है
00:04:48कि मैंने हमेशा अपने प्रोजेक्ट्स में इस्तेमाल होने वाली लाइब्रेरीज की संख्या कम करने की कोशिश की है,
00:04:53और इसके दो कारण हैं। एक तो यह कि मैं एजुकेशनल कंटेंट बनाता हूँ, इसलिए मुझे बाहरी
00:05:01या अतिरिक्त लाइब्रेरीज के बोझ की आदत है, क्योंकि अगर मैं React के बारे में कोई कोर्स बनाता हूँ,
00:05:07और उस कोर्स में मैं Tailwind का भी उपयोग करता हूँ, और यदि Tailwind में कोई बड़ा बदलाव (breaking change) आता है,
00:05:12तो मेरे कोड या मेरे कोर्स के बहुत सारे हिस्से अचानक काम करना बंद कर देते हैं और छात्रों द्वारा बहुत सारे सवाल पूछे जाने लगते हैं,
00:05:17भले ही मुख्य विषय, React, में कोई बदलाव न हुआ हो। मैं समझता हूँ कि यह एक बहुत ही विशिष्ट
00:05:23समस्या है जो मुझे प्रभावित करती है, न कि ज़्यादातर वेबसाइटों को। लेकिन भले ही आप एक सामान्य
00:05:29वेबसाइट बना रहे हों, उसमें कम से कम थर्ड-पार्टी लाइब्रेरीज रखना एक अच्छा विचार है, मैं ऐसा तर्क दूँगा।
00:05:38अब, मैं यह भी कहूँगा कि हर लाइब्रेरी को ज़बरदस्ती बाहर कर देना भी सही नहीं है। कुछ लाइब्रेरीज का उपयोग करने का
00:05:44एक अच्छा कारण होता है। मेरा मतलब है, अगर आप एक ऐसी वेबसाइट बना रहे हैं
00:05:50जिसमें रिच टेक्स्ट एडिटर है, तो TipTap जैसी किसी चीज़ का उपयोग करना बहुत समझदारी भरा है,
00:05:54क्योंकि आप अपना खुद का एडिटर बना सकते हैं। अब, AI के साथ यह एक हद तक पहले से कहीं आसान है,
00:05:59लेकिन आप कई ऐसी समस्याओं या केस में फँस जाएँगे जिन्हें आपको खुद हल करना होगा। AI के साथ ठीक है,
00:06:06लेकिन AI भी सब कुछ सही नहीं करता। अगर आपने इसके साथ काम किया है तो आप यह जानते हैं। तो
00:06:11थर्ड-पार्टी लाइब्रेरीज का उपयोग करने के कारण मौजूद हैं। मैं बस इतना कह रहा हूँ कि स्टाइलिंग, जैसा कि मैंने समझाया,
00:06:16ऐसी चीज़ है जिसे बदला जा सकता है। फिर से, मैं यह नहीं कह रहा हूँ कि हर किसी को ऐसा करना चाहिए,
00:06:21लेकिन मेरे लिए यह काफी अच्छा काम करता है। और इसलिए, यह एक ऐसी लाइब्रेरी है जिसे मैं हटा सकता हूँ क्योंकि
00:06:28मुझे AI द्वारा दिए गए CSS कोड की समीक्षा करने और रॉ CSS के साथ स्टाइलिंग की समस्याओं को ठीक करने में
00:06:37कोई आपत्ति नहीं है, क्योंकि ज़ाहिर है, AI का उपयोग करते समय कभी न कभी चीज़ें गलत होंगी ही।
00:06:44लेकिन मुझे उससे फर्क नहीं पड़ता। अगर आपको CSS कोड देखना बिल्कुल भी पसंद नहीं है, तो आपके लिए यह विकल्प
00:06:50बिल्कुल नहीं होगा। लेकिन मेरे लिए, मैं इसलिए Tailwind लाइब्रेरी को हटा सकता हूँ। मैं ShadCN को भी हटा सकता हूँ,
00:06:56उदाहरण के लिए, क्योंकि मैं अपने खुद के कंपोनेंट्स बनाता हूँ। और ShadCN, बेशक, कोई
00:07:00पारंपरिक लाइब्रेरी नहीं है, लेकिन यह बैकएंड में RADIX UI का उपयोग करता है, एक ऐसी लाइब्रेरी जिसका रखरखाव (maintenance)
00:07:08अब संदिग्ध स्थिति में है, जहाँ तक मुझे पता है। तो वहाँ आपको असली समस्या का पता चलता है कि क्यों मैं
00:07:16लाइब्रेरीज से बचना चाहता हूँ, भले ही हम एजुकेशनल कंटेंट की बात न कर रहे हों। आपके प्रोजेक्ट में
00:07:21जोड़ी गई हर लाइब्रेरी एक बोझ बन सकती है अगर उसका रखरखाव बंद हो जाए। उस स्थिति में,
00:07:29सुरक्षा समस्याओं को ठीक नहीं किया जा सकता। बग्स ठीक नहीं हो सकते। स्टाइलिंग बग्स,
00:07:35उदाहरण के लिए, Tailwind के साथ। नए फीचर्स नहीं जोड़े जा सकते। अगर कोई नया CSS फीचर आता है
00:07:41और Tailwind का रखरखाव नहीं किया जा रहा होता (बेशक अभी हो रहा है), लेकिन अगर ऐसा होता,
00:07:46तो शायद आप उस फीचर का कभी उपयोग नहीं कर पाते। और मेरा मतलब है, हम Tailwind के साथ लगभग ऐसी स्थिति के करीब थे।
00:07:52वह वीडियो जो मैंने बनाया था जहाँ मैंने उनकी समस्याओं के बारे में बात की थी, उसमें Tailwind के मुख्य निर्माता का एक पोस्ट है
00:07:58जहाँ वह कहता है कि अगर वे इस फाइनेंसिंग समस्या को हल नहीं कर पाए, तो Tailwind 'abandonware' बन सकता है।
00:08:03शायद वह थोड़ा बढ़ा-चढ़ाकर कहा गया था, शायद ज़्यादा ध्यान खींचने के लिए भी। लेकिन फिर भी,
00:08:11ज़्यादातर थर्ड-पार्टी लाइब्रेरीज के साथ एक समस्या हमेशा यह रहती है कि भविष्य में उनका रखरखाव नहीं किया जाएगा,
00:08:17यह इस पर निर्भर करता है कि शुरुआत में उन पर कौन काम कर रहा है। और इसलिए मैं व्यक्तिगत रूप से
00:08:22फिर से वैनिला CSS का उपयोग करना पसंद करता हूँ। और यह यहाँ महत्वपूर्ण है क्योंकि मैं हमेशा से ऐसा करता आया हूँ।
00:08:28और फिर से, मैं इस पर जितना ज़ोर दूँ कम है। मैं Tailwind के लिए शुभकामनाएँ देता हूँ और मैं अभी भी
00:08:35कई प्रोजेक्ट्स में इसका उपयोग कर रहा हूँ। ऐसा नहीं है कि मैं इसे नफरत करता हूँ। यह बस एक चीज़ है जहाँ मैं
00:08:41कुछ प्रोजेक्ट्स में इसका उपयोग न करने का प्रयोग कर रहा हूँ। और चाहे वह आपके लिए Tailwind हो या कुछ और,
00:08:46मैं बस इतना कहूँगा - और यह AI युग से पहले भी सच था - कि मैं किसी थर्ड-पार्टी लाइब्रेरी का उपयोग करने से पहले दो बार विचार करूँगा।
00:08:53उनका उपयोग करने के कई अच्छे कारण हैं। उदाहरण के लिए, ऑथेंटिकेशन के लिए 'better auth' कमाल का है। मैं निश्चित रूप से उसका उपयोग करूँगा।
00:08:57लेकिन अगर कोई ऐसी लाइब्रेरी है जिसे आप बदल सकते हैं, तो मुझे लगता है कि उस पर दोबारा विचार करना या सोचना सही हो सकता है।
00:09:04सोचना चाहिए।