Tailwind ज़बरदस्त है। फिर भी मैं इसे छोड़ रहा हूँ।

MMaximilian Schwarzmüller
Computing/SoftwareSmall Business/StartupsAdult EducationInternet Technology

Transcript

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सोचना चाहिए।

Key Takeaway

AI की मदद से वैनिला CSS लिखना अब अधिक प्रभावी है, जिससे थर्ड-पार्टी लाइब्रेरीज पर निर्भरता कम होती है और प्रोजेक्ट का भविष्य सुरक्षित रहता है।

Highlights

वक्ता ने Tailwind CSS का उपयोग बंद कर दिया है, हालाँकि वे अभी भी इसे एक बेहतरीन लाइब्रेरी मानते हैं।

AI के आने से अब आधुनिक CSS फीचर्स (जैसे Relative Colors और Container Queries) का उपयोग करना बहुत आसान हो गया है।

Tailwind जैसी थर्ड-पार्टी लाइब्रेरीज पर निर्भरता कम करने से भविष्य में 'breaking changes' और रखरखाव की समस्याओं से बचा जा सकता है।

शैक्षिक सामग्री बनाने वालों के लिए लाइब्रेरीज का बोझ कम करना ज़रूरी है ताकि कोर्स लंबे समय तक प्रासंगिक रहें।

हर लाइब्रेरी एक 'बोझ' बन सकती है यदि उसका रखरखाव बंद हो जाए, जिसे 'abandonware' कहा जाता है।

वक्ता वैनिला CSS और स्वयं के कंपोनेंट्स बनाने को प्राथमिकता दे रहे हैं ताकि प्रोजेक्ट पर उनका पूर्ण नियंत्रण रहे।

Timeline

Tailwind छोड़ने का निर्णय और उसकी वर्तमान स्थिति

वक्ता बताते हैं कि उन्होंने अपने नए प्रोजेक्ट्स में Tailwind CSS और Shadcn का उपयोग करना बंद कर दिया है। वे स्पष्ट करते हैं कि यह निर्णय लाइब्रेरी की खराबी के कारण नहीं, बल्कि उनके काम करने के बदलते तरीके की वजह से है। उन्होंने Tailwind की हालिया वित्तीय समस्याओं और अब उसमें आए सुधार का भी ज़िक्र किया है। उनका उद्देश्य किसी को इसे इस्तेमाल करने से रोकना नहीं, बल्कि अपने व्यक्तिगत विचार साझा करना है। यह अनुभाग वीडियो की भूमिका बाँधता है और वक्ता के सकारात्मक दृष्टिकोण को दर्शाता है।

Tailwind का पुराना आकर्षण और आधुनिक CSS का विकास

पहले के समय में Tailwind का मुख्य लाभ इसकी गति और इन-लाइन क्लासेज के माध्यम से त्वरित डिज़ाइन बदलाव करना था। वक्ता बताते हैं कि कई डेवलपर्स CSS को कठिन मानते हैं, लेकिन आधुनिक CSS ने Flexbox, Relative Colors और Container Queries जैसे फीचर्स के साथ बहुत प्रगति की है। अब ब्राउज़र सपोर्ट बेहतर हो गया है और जटिल लेआउट बनाना पहले से कहीं अधिक सरल है। यह खंड समझाता है कि क्यों CSS अब उतना डरावना नहीं रहा जितना वह पहले हुआ करता था। कंटेनर क्वेरीज़ जैसे फीचर्स अब डाइनैमिक डिज़ाइन के लिए गेम-चेंजर साबित हो रहे हैं।

AI की भूमिका और वैनिला CSS के लाभ

AI अब डेवलपर्स को वैनिला CSS लिखने में बहुत मदद कर रहा है, जिससे लाइब्रेरी पर निर्भरता कम हो गई है। वक्ता का तर्क है कि AI कभी-कभी Tailwind के पुराने सिंटैक्स का उपयोग करता है, जबकि शुद्ध CSS में वह अधिक सटीक हो सकता है। यदि आपको किसी विशेष CSS फीचर का ज्ञान है, तो आप AI को निर्देश देकर आसानी से कोड लिखवा सकते हैं। यह तरीका आपको नवीनतम वेब स्टैंडर्ड्स का उपयोग करने की आज़ादी देता है जो शायद किसी लाइब्रेरी में तुरंत उपलब्ध न हों। अंततः, AI और CSS का संयोजन विकास प्रक्रिया को लचीला बनाता है।

लाइब्रेरीज को कम करने का कारण: शैक्षिक और तकनीकी दृष्टिकोण

वक्ता अपनी लाइब्रेरी कम करने की रणनीति के पीछे के दो मुख्य कारणों का खुलासा करते हैं। पहला कारण शैक्षिक है; कोर्सेस में थर्ड-पार्टी लाइब्रेरी का उपयोग करने से 'breaking changes' का खतरा रहता है जिससे छात्रों को परेशानी होती है। दूसरा कारण सामान्य प्रोजेक्ट स्थिरता है, जहाँ कम बाहरी टूल्स का मतलब है कम संभावित बग्स। हालाँकि वे स्वीकार करते हैं कि Rich Text Editors जैसे जटिल कार्यों के लिए लाइब्रेरीज (जैसे TipTap) ज़रूरी हैं। वे यह भी मानते हैं कि उन्हें खुद CSS कोड की समीक्षा करने और उसे ठीक करने में कोई समस्या नहीं है।

रखरखाव का जोखिम और भविष्य की सुरक्षा

वीडियो के अंतिम भाग में वक्ता 'abandonware' के खतरे पर चर्चा करते हैं, जहाँ लाइब्रेरी का रखरखाव बंद होने पर सुरक्षा और बग की समस्याएँ पैदा होती हैं। वे Shadcn और Radix UI का उदाहरण देते हुए बताते हैं कि लाइब्रेरीज पर अत्यधिक निर्भरता भविष्य में प्रोजेक्ट के लिए बोझ बन सकती है। वे अभी भी कई प्रोजेक्ट्स में Tailwind का उपयोग कर रहे हैं, लेकिन नए प्रयोगों के माध्यम से आत्मनिर्भरता की तलाश कर रहे हैं। उनका सुझाव है कि डेवलपर्स को किसी भी थर्ड-पार्टी लाइब्रेरी को चुनने से पहले दो बार सोचना चाहिए। यह निष्कर्ष आत्मनिर्भर विकास और दीर्घकालिक स्थिरता के महत्व पर ज़ोर देता है।

Community Posts

View all posts