यह वैसा नहीं जैसा मैंने सोचा था, लेकिन शायद यही चाहिए था

MMaximilian Schwarzmüller
컴퓨터/소프트웨어AI/미래기술

Transcript

00:00:00हमें एक नया JavaScript फ्रेमवर्क मिला है,
00:00:03एक फुल स्टैक फ्रेमवर्क,
00:00:04लेकिन छोड़ने से पहले मेरी बात सुनिए। यह काफी दिलचस्प है क्योंकि यह Remix बनाने वाले लोगों का है,
00:00:12यानी जिन लोगों ने Remix JS बनाया - Ryan Florence और Michael Jackson। नहीं,
00:00:17वो Michael Jackson नहीं। ये React Router के मूल लेखक भी हैं। उन्होंने अपनी दृष्टि साझा की और वास्तव में पहला प्रोटोटाइप,
00:00:26कुछ शुरुआती डेमो अपने बिल्कुल नए JavaScript फ्रेमवर्क Remix वर्जन 3 के दिखाए,
00:00:32तो यह वास्तव में कोई नया नाम नहीं है। यह पहले से मौजूद नाम है,
00:00:36लेकिन यह पूरी तरह से नया फ्रेमवर्क है और इस वीडियो में मैं इस सबको समझाने की कोशिश करूंगा। मैं बताऊंगा कि यह क्या है और निश्चित रूप से इस पर मेरी राय क्या है कि क्या आपको वाकई एक और JavaScript फ्रेमवर्क की ज़रूरत है और मुझे क्या लगता है कि इसकी सफलता या अपनाए जाने की संभावनाएं क्या होंगी,
00:00:58अब एक ऐसे युग में जहां बड़े भाषा मॉडल डिफ़ॉल्ट रूप से React ऐप्स थूकते हैं। लेकिन चलिए धीरे-धीरे आगे बढ़ते हैं - Remix वास्तव में क्या है और यह क्यों मायने रखता है?
00:01:11अगर आप चूक गए तो बता दूं,
00:01:13Remix एक React मेटा फ्रेमवर्क है,
00:01:15अंततः Next JS का एक विकल्प। और Remix कुछ साल पहले ही रिलीज़ हुआ था,
00:01:20Remix वर्जन 2 रिलीज़ हुआ था। मुझे लगता है 2022 में,
00:01:24अगर मैं पूरी तरह गलत नहीं हूं। और फिर 2024 में Remix वर्जन 2 को अनिवार्य रूप से React Router के साथ मर्ज कर दिया गया। यही कारण है कि अब जब आप React Router का उपयोग करते हैं,
00:01:36तो आप इसे या तो React ऐप्स में रूटिंग लाइब्रेरी के रूप में उपयोग कर सकते हैं जैसा आप हमेशा करते थे - वह अभी भी काम करता है,
00:01:45यह अभी भी उसके लिए एक शानदार लाइब्रेरी है,
00:01:48लेकिन आप इसे फ्रेमवर्क मोड में भी उपयोग कर सकते हैं ताकि अनिवार्य रूप से एक फुल स्टैक React एप्लिकेशन बना सकें जहां React Router सिर्फ एक राउटर से अधिक है,
00:02:00जहां यह डेटा फेचिंग,
00:02:01डेटा लोडिंग,
00:02:02डेटा म्यूटेशन में भी मदद करता है,
00:02:04बिल्कुल Remix की तरह,
00:02:06क्योंकि यह Remix है जो React Router में मर्ज हुआ है। लेकिन इसने निश्चित रूप से यह सवाल खड़ा किया कि फिर Remix का,
00:02:14ब्रांड का क्या होगा?
00:02:17Remix और पता चला कि यह वर्जन 3 के साथ एक नया फ्रेमवर्क बन जाएगा। यह एक नया फ्रेमवर्क बनेगा जो महत्वपूर्ण रूप से React से स्वतंत्र है। यह कोई React मेटा फ्रेमवर्क नहीं है। यह कोई और Next JS विकल्प नहीं है। इसके बजाय,
00:02:35यह एक बिल्कुल नया फुल स्टैक JavaScript फ्रेमवर्क है जो शुरुआत से,
00:02:40स्क्रैच से लिखा गया है,
00:02:42उन सभी सुविधाओं और API के साथ जो Ryan Florence और Michael Jackson एक नए JavaScript फ्रेमवर्क में चाहते हैं। तो मूल रूप से उन समस्याओं को हल करना जो वे JavaScript इकोसिस्टम में देखते हैं और देखी हैं,
00:02:58मौजूदा लाइब्रेरी और फ्रेमवर्क परिदृश्य के साथ,
00:03:02विशेष रूप से निश्चित रूप से React के साथ क्योंकि यही मुख्य लाइब्रेरी और फ्रेमवर्क है,
00:03:09इसे जो भी कहना चाहें,
00:03:11जो हमारे पास बाहर है। तो यह नया Remix किस बारे में है?
00:03:15खैर पिछले शुक्रवार को??
00:03:18हम API का पहला डेमो,
00:03:19पहली झलक पाने में सक्षम हुए। और मैं पूरी लाइव स्ट्रीम को लिंक करूंगा जहां आप पूरे घोषणा कार्यक्रम को देख सकते हैं,
00:03:27इस वीडियो के नीचे निश्चित रूप से,
00:03:29अगर आप इसे पूरा देखना चाहते हैं,
00:03:31लेकिन इस बात से अवगत रहें कि यह लगभग चार घंटे का नॉन-स्टॉप डेमो और स्पष्टीकरण होगा। मैंने देखा है ताकि आपको न देखना पड़े अगर आप नहीं चाहते,
00:03:41लेकिन निश्चित रूप से देखें अगर आप और जानना चाहते हैं। और यहां आप मुख्य चीजों में से एक देखते हैं जिस पर यह नया...
00:03:49फ्रेमवर्क केंद्रित होगा या कहें कि मुख्य चीज जिसने X पर कुछ हलचल मचाई - यह dot update। बहुत शानदार नहीं लगता है ना?
00:03:59खैर, यह वास्तव में दो चीजों को दर्शाता है जिनके....
00:04:04JavaScript डेवलपर्स अब वास्तव में आदी नहीं हैं - (a) this कीवर्ड का उपयोग। मेरा मतलब है,
00:04:11मेरे जैसे पुराने लोगों ने this की सभी बारीकियों और विशेषताओं को सीखा जब हमने JavaScript से शुरुआत की,
00:04:19आजकल आप इसे ज्यादा उपयोग नहीं करते,
00:04:21React में आप शायद कभी this नहीं लिखेंगे। लेकिन यह JavaScript में बना एक कीवर्ड है। वे इस this कीवर्ड का लाभ उठा रहे हैं ताकि आपको कुछ API उपलब्ध करा सकें। आपको उन API तक पहुंच कहां मिलती है?
00:04:36खैर, आप अभी भी फंक्शन लिखते हैं।
00:04:39तो आप क्लासेस नहीं लिखते,
00:04:40भले ही आपको लगे कि आप this कीवर्ड के साथ लिख रहे हैं। लेकिन Remix के साथ काम करते समय आप अभी भी कंपोनेंट्स बना रहे होंगे,
00:04:48और आप उसके लिए अभी भी फंक्शन का उपयोग करेंगे,
00:04:51बिल्कुल React से जैसे आप जानते हैं,
00:04:53लेकिन वे कंपोनेंट फंक्शन थोड़े अलग दिखेंगे। लेकिन चलिए this dot update पर वापस आते हैं। मैंने बताया कि इसके बारे में दो महत्वपूर्ण बातें हैं। This उनमें से एक है। Update दूसरा है क्योंकि Remix वर्जन 3 में,
00:05:06आपको फ्रेमवर्क को बताना होगा कि उसे स्क्रीन को कब अपडेट करना चाहिए,
00:05:11कब री-रेंडर करना चाहिए। और यह निश्चित रूप से कुछ ऐसा है जिसके हम अभ्यस्त नहीं हैं,
00:05:16क्योंकि React में,
00:05:17बल्कि Vue और Angular में भी,
00:05:19आप फ्रेमवर्क पर निर्भर करते हैं कि वह आपके लिए निर्धारित करे कि कब अपडेट करना है। React में जब आप setState कॉल करते हैं,
00:05:27तो आप जिस स्टेट को मैनेज कर रहे हैं उसे एक नया मान असाइन कर रहे हैं और यह फिर UI अपडेट को भी ट्रिगर करेगा,
00:05:34लेकिन जरूरी नहीं कि तुरंत। इसके बजाय React कुछ बैचिंग करेगा,
00:05:38संभावित रूप से कई स्टेट अपडेट इकट्ठा करेगा और इसी तरह,
00:05:41लेकिन अंततः यह UI को अपडेट करेगा। तो setState के साथ आप React को बता रहे हैं कि उसे UI अपडेट करना चाहिए,
00:05:48लेकिन आप ज्यादातर उसे बता रहे हैं कि कुछ मान बदलता है और इसका प्रभाव यह होगा कि UI अपडेट होगा,
00:05:54UI री-रेंडर होगा। Remix के साथ यह अलग है,
00:05:57Remix के वर्जन 3 के साथ मुझे कहना चाहिए,
00:05:59वहां आप अपनी स्टेट को मानक वेरिएबल में मैनेज करेंगे,
00:06:03कुछ विशेष नहीं। कोई useState हुक या कुछ ऐसा नहीं है,
00:06:06वास्तव में कोई हुक ही नहीं हैं,
00:06:08और फिर आप बस this dot update को कॉल करते हैं जब भी आपको पता है कि UI को अपडेट होना चाहिए। तो आप कई वेरिएबल बदल सकते हैं और this update को कॉल नहीं कर सकते और UI अपडेट नहीं होगा। या आप कई वेरिएबल बदलते हैं और आप this dot update कॉल करते हैं और UI अपडेट होगा। यही तरीका है यह काम करेगा,
00:06:26और ऐसा लगता है कि कुछ लोग,
00:06:28आप इंटरनेट को जानते हैं,
00:06:30इंटरनेट पर लोग भयानक होते हैं,
00:06:32कुछ लोगों को इससे समस्या है। मैं कहूंगा कि देखते हैं यह कैसे काम करता है। मेरा मतलब है,
00:06:37यह एक नया दृष्टिकोण है और पुराना दृष्टिकोण निश्चित रूप से अच्छी तरह काम करता है। मुझे लगता है कि एक कारण है कि इसका उपयोग उन सभी लाइब्रेरी और फ्रेमवर्क में किया जा रहा है,
00:06:48लेकिन पुराने दृष्टिकोण में निश्चित रूप से ऐसी स्थितियां पैदा होने की क्षमता भी है जहां यह स्पष्ट नहीं होता कि कुछ क्यों अपडेट होता है या नहीं होता,
00:06:58और अधिक जटिल ऐप्स में और विशेष रूप से React के नए वर्जन के साथ जो बहुत सारे हुक और सामान के साथ काफी जटिल हो गए हैं,
00:07:05यह समझना भारी हो सकता है कि वास्तव में क्या हो रहा है और यह एक कारण है कि वे एक सरल API पर वापस जा रहे हैं जहां आपका पूर्ण नियंत्रण है।
00:07:16वे this कीवर्ड का उपयोग करके आपके लिए कुछ अन्य APIs भी उपलब्ध करा रहे हैं,
00:07:21लेकिन वास्तव में बहुत ज्यादा नहीं क्योंकि स्पष्ट रूप से विचार यह है कि फ्रेमवर्क को सरल और केंद्रित रखा जाए और आपको एक बेहतरीन डेवलपर अनुभव दिया जाए और इस फ्रेमवर्क का उपयोग करना आसान बनाया जाए। इसके अलावा,
00:07:34एक स्पष्ट लक्ष्य है जो उन्होंने इस साल की शुरुआत में साझा किए गए एक ब्लॉग पोस्ट में बताया था कि इस फ्रेमवर्क का उपयोग बड़े भाषा मॉडलों द्वारा आसानी से किया जा सकना चाहिए। तो विचार स्पष्ट रूप से यह है कि आप Docs आर्टिकल्स या उदाहरणों को अपने बड़े भाषा मॉडल के साथ Chat हिस्ट्री में फीड कर सकेंगे,
00:07:53संदर्भ के रूप में कुछ जानकारी प्रदान कर सकेंगे और फिर LLM और code assistants से मदद ले सकेंगे कोड जेनरेट करने में। क्योंकि जाहिर है उन्हें यह करना होगा क्योंकि यह एक बिल्कुल नया फ्रेमवर्क है,
00:08:05इसलिए स्पष्ट रूप से मौजूदा बड़े भाषा मॉडलों में से कोई भी इस कोडबेस पर प्रशिक्षित नहीं था और निकट भविष्य में वे इस पर प्रशिक्षित नहीं होंगे क्योंकि ऐसा लगता है कि सभी फ्रंट-एंड कोड उदाहरणों का अस्सी प्रतिशत react है,
00:08:19विशेष रूप से shed CN के साथ react। तो निश्चित रूप से उन्हें डेवलपर्स को बड़े भाषा मॉडल को remix we free कोड कैसे लिखना है यह समझाने का एक और तरीका खोजना होगा,
00:08:29जो एक और कारण है कि वे AI को सरल क्यों रख रहे हैं,
00:08:32मेरा अनुमान है,
00:08:33और वे इसे अभिव्यक्तिपूर्ण और समझने में आसान और उपयोग में आसान क्यों रखना चाहते हैं क्योंकि यह केवल मनुष्यों को ही नहीं बल्कि मॉडलों,
00:08:41बड़े भाषा मॉडलों को भी उपयोग करना चाहिए। तो यह स्पष्ट रूप से एक लक्ष्य है जो उनके पास था। और आप इसे उन उदाहरणों में देख सकते हैं जो उन्होंने साझा किए। इसके अलावा एक और लक्ष्य है जो उनके पास है और उन्होंने उस Keynote में उस प्रस्तुति में कई बार कहा है कि वे web primitives का उपयोग कर रहे हैं। वे आधुनिक ब्राउज़रों में उपलब्ध सुविधाओं का उपयोग कर रहे हैं और केवल ब्राउज़रों में ही नहीं बल्कि बैक एंड पर भी और मैं कुछ सेकंड में बैक एंड पर आऊंगा,
00:09:10लेकिन वे ब्राउज़र में built-in चीजों का उपयोग कर रहे हैं। वे native events और custom events dispatch करने की built-in क्षमताओं पर बहुत अधिक निर्भर हैं। तो आप ब्राउज़र में custom events बना सकते हैं और उन्हें dispatch कर सकते हैं और वे इस पर बहुत अधिक निर्भर हैं। वे abort signals पर निर्भर हैं यह संवाद करने के लिए कि एक component unmount हो गया था उदाहरण के लिए और आपको अपने event listeners को स्वचालित रूप से रोकने की अनुमति देने के लिए। तो वे ब्राउज़र में built-in चीजों का उपयोग कर रहे हैं क्योंकि मुझे निश्चित रूप से ऐसा लगता है कि हम web developers ने आधुनिक ब्राउज़र क्या करने में सक्षम हैं इसके साथ तालमेल नहीं रखा है और केवल आधुनिक ब्राउज़र ही नहीं,
00:09:52कुछ निश्चित क्षमताएं वर्षों से वहां हैं और हम उनका उपयोग नहीं करते हैं। हो सकता है कि हम उनके बारे में जानते भी न हों। यदि आप वास्तव में DOM क्या प्रदान करता है,
00:10:02ब्राउज़र क्या प्रदान करते हैं,
00:10:04वहां कौन से API उपलब्ध हैं,
00:10:06इसमें गहराई से जाएं तो बहुत कुछ है जो आप वहां कर सकते हैं और बहुत सारी चीजें हैं जहां आपको अतिरिक्त third-party Libraries की आवश्यकता नहीं हो सकती है और अंततः यही वे उपयोग करने की कोशिश कर रहे हैं। इसे सरल रखें और उन built-in क्षमताओं का उपयोग करें। अंततः यहां उनका दृष्टिकोण यही है। अब जैसा कि मैंने कहा,
00:10:25यह अभी भी एक फ्रेमवर्क है। आप create element और उन सभी DOM APIs के साथ DOM nodes नहीं बनाएंगे,
00:10:31बल्कि जैसा कि पहले उल्लेख किया गया है,
00:10:34आप फ़ंक्शन बनाकर और उसमें JSX कोड का उपयोग करके components बनाएंगे। उन्होंने यह सब दिखाया। बस state management पूरी तरह से अलग तरीके से काम करता है,
00:10:43यह सामान्य रूप से leaner है,
00:10:45आपके पास hooks या ऐसा कुछ नहीं होगा,
00:10:47इसलिए भी क्योंकि वे component functions बार-बार नहीं बुलाए जाएंगे जैसा कि react में होता है,
00:10:53बल्कि आपके पास दो प्रकार के functions होंगे और इस पर निर्भर करता है कि आप उन्हें कैसे लिखते हैं,
00:10:59वे या तो केवल एक बार बुलाए जाएंगे या उनका एक हिस्सा कई बार बुलाया जा सकता है। और यहां उन लोगों के लिए कुछ है जिन्होंने शायद 2000 में react के साथ काम किया होगा,
00:11:09मुझे लगता है 17 पहले से ही,
00:11:11तब आपको याद हो सकता है कि हमारे पास दो प्रकार के components थे। हमारे पास class based stateful components थे जो state को manage कर सकते थे और जो उस state के बदलने पर update हो सकते थे और हमारे पास stateless components थे और वे तब component functions थे और फिर हमारे पास react hooks थे और सभी Components अंततः component functions बन गए और वे या तो stateful या stateless हो सकते हैं। Remix version 3 उस old-school react approach को ले रहा है,
00:11:39लेकिन classes या functions के साथ नहीं बल्कि हमेशा functions के साथ लेकिन अलग-अलग प्रकार के functions। यदि आपके पास एक function है जो JSX return करता है तो यह अंततः एक stateless component है। आप वहां this update को call नहीं कर सकते और उम्मीद नहीं कर सकते कि component function फिर से execute होगा। यह काम नहीं करेगा। आप props स्वीकार कर सकते हैं और यदि parent component फिर से render होता है तो आपका component function फिर से execute होगा और इसी तरह,
00:12:08लेकिन आप वहां state manage नहीं कर सकते। आप एक component function को stateful component function में बदल देते हैं,
00:12:15JSX code return न करके बल्कि एक function return करके जो JSX code return करता है। तो एक component function जिसमें एक function होता है और return करता है जो फिर JSX code return करता है जो फिर एक stateful component हो सकता है या हो सकता है और जब आप this dot update को call करते हैं तो वह function जो आपने return किया था वह फिर से execute होगा,
00:12:37कम से कम मैंने इसे इस तरह समझा है,
00:12:39तो हमारे पास अलग-अलग component types हैं,
00:12:42लेकिन फिर से अंततः एक बहुत ही सरल API,
00:12:44stateful या stateless component functions के बीच अंतर करने का एक बहुत ही सरल तरीका। और फिर backend है क्योंकि remix version 3 केवल एक front-end Framework नहीं है,
00:12:55बल्कि यह एक full stack framework है। यह एक full stack framework बनने का इरादा है। लेकिन वैसे,
00:13:00वे एक component library भी ship करेंगे जो complex form components और इसी तरह की चीजें बनाना आसान बनाती है। मुझे यह भी उल्लेख करना चाहिए लेकिन back end पर वापस आते हैं। यह back-end part के साथ भी आएगा। यह front-end और back-end combined एक full stack framework बनने का लक्ष्य रखता है। फिर से react के बिना पूरी तरह से,
00:13:21बल्कि वे इसे फिर से शुरू से बना रहे हैं,
00:13:23लेकिन back end पर आपको एक router मिलेगा,
00:13:26एक बहुत सक्षम शक्तिशाली router क्योंकि स्पष्ट रूप से चूंकि उन्होंने पिछले 10 वर्षों से react router बनाया है,
00:13:33वे routing के बारे में बहुत कुछ जानते हैं,
00:13:36तो आपको एक शक्तिशाली router मिलेगा। आपको अपने routes में JSX code और remix components return करने की क्षमताएं मिलती हैं और उन components को server पर Hydrate करती हैं। वे react server components का अपना विकल्प लेकर आते हैं,
00:13:50एक सरल विकल्प जो आपको एक component return करने की अनुमति देता है जो client पर serve होने के बाद DOM के कुछ हिस्सों को Re-fetch करके update कर सकता है। तो जब आप कुछ delete करते हैं उदाहरण के लिए,
00:14:02आप client से उस server को एक request भेज सकते हैं और कुछ HTML code वापस प्राप्त कर सकते हैं जिसे DOM के कुछ हिस्सों को update करने के लिए फिर से hydrate किया जा सकता है। तो वे हमें snappy modern single page जैसे full stack applications बनाने के लिए ये सभी features दे रहे हैं जैसे आप next JS या react router framework mode या अन्य frameworks जैसे tan stack start के साथ कर सकते हैं,
00:14:27लेकिन सरल,
00:14:27यह स्पष्ट लक्ष्य है कि उन apps को बनाने का एक सरल तरीका हो। यही वे करना चाहते हैं। इस presentation में और भी बहुत कुछ है। यह लंबा है लेकिन यह सबसे महत्वपूर्ण हिस्सा है मैं कहूंगा। यही मेरा मुख्य takeaway है। वे हमें एक शक्तिशाली सरल full stack framework देना चाहते हैं। वे इसे scratch से लिख रहे हैं। हमारे पास manual updating और इसी तरह की चीजें हैं। तो मैंने जो कुछ भी वर्णन किया,
00:14:52क्या हमें इसकी आवश्यकता है?
00:14:56यह बड़ा सवाल है और मुझे लगता है एक और बड़ा सवाल। क्या यह सफल होगा?
00:15:02जाहिर है दोनों सवालों का जवाब देना काफी मुश्किल है,
00:15:04लेकिन मैं अपनी पूरी कोशिश करूंगा। क्या हमें इसकी आवश्यकता है?
00:15:08खैर,
00:15:08मुझे लगता है कि हमारे पास बहुत सारे JavaScript frameworks हैं और स्पष्ट रूप से बहुत से लोग होंगे जो कहेंगे कि हमारे पास बहुत अधिक हैं इसलिए उत्तर तब नहीं है। मुझे हमेशा लगा,
00:15:20यहां तक कि 2018 में जब हमारे पास हर हफ्ते एक नया framework होता था,
00:15:25तब भी मुझे लगा कि innovation करना और नए ideas को आजमाना हमेशा अच्छा है। मुझे नहीं लगता कि हमें एक नए framework की आवश्यकता है जो बस react जैसा है कुछ छोटे अंतरों के साथ। मुझे नहीं लगता कि हमें इसकी आवश्यकता है लेकिन एक बिल्कुल नया approach जिसमें manual रूप से triggered updating और ये सभी छोटी चीजें हैं जो उनके पास हैं,
00:15:46मुझे लगता है कि यह एक शानदार विचार है। यह निश्चित रूप से एक कोशिश के लायक है। यह दिलचस्प लगता है। यह हमें react का एक सरल विकल्प दे सकता है जो अद्भुत है,
00:15:57लेकिन वर्षों में काफी complex हो गया है। तो हां,
00:16:00हमें इसकी आवश्यकता हो सकती है। क्या यह सफल होगा?
00:16:04यह निश्चित रूप से एक और सवाल है,
00:16:06क्योंकि खासकर अभी AI और लार्ज लैंग्वेज मॉडल के युग में,
00:16:09स्पष्ट रूप से वे मॉडल आमतौर पर डिफ़ॉल्ट रूप से React की सिफारिश करेंगे। अब दूसरी ओर,
00:16:15जो लोग कोड लिखना नहीं जानते,
00:16:17वे निश्चित रूप से सीधे तौर पर टारगेट ऑडियंस नहीं हैं। मैं इस पर वापस आऊंगा। तो वहां कोई फर्क नहीं पड़ता। अब अनुभवी डेवलपर्स हालांकि Remix का उपयोग करने में रुचि रखते होंगे और आधिकारिक उदाहरणों की मदद से लार्ज लैंग्वेज मॉडल को बस इसलिए Remix कोड जेनरेट करने के लिए गाइड कर सकते हैं क्योंकि वे एक सरल कोड बेस चाहते हैं,
00:16:38क्योंकि अंततः डेवलपर्स के रूप में हम अभी भी अपने कोड को छूते हैं। हम इसके बड़े हिस्से जेनरेट कर सकते हैं,
00:16:45लेकिन हम अभी भी लार्ज लैंग्वेज मॉडल को कंट्रोल करते हैं। हम अभी भी कोड के कुछ हिस्सों को ट्वीक करते हैं। हम उस कोड के बड़े हिस्से लिख सकते हैं अगर हमारे दिमाग में कोई बहुत विशिष्ट फीचर है जिसे AI सही तरीके से समझ नहीं पा रहा। तो स्पष्ट रूप से हम अभी भी डेवलपर्स के रूप में टेक स्टैक के बारे में परवाह करते हैं। मैं अभी भी परवाह करता हूं और मुझे यकीन है कि आप में से कुछ भी करते हैं। तो वहां यह दिलचस्प हो सकता है कि कुछ और कोशिश करें और जब तक वह फ्रेमवर्क लार्ज लैंग्वेज मॉडल के साथ उपयोग करना आसान हो,
00:17:19लार्ज लैंग्वेज मॉडल को सिखाने के लिए पर्याप्त संसाधन हों कि इसका उपयोग कैसे करें,
00:17:24जो निश्चित रूप से कुछ ऐसा है जिस पर वे ध्यान केंद्रित करते दिख रहे हैं और प्राथमिकता के रूप में रखते दिख रहे हैं। यह मुझे अच्छा लगता है। तो यह निश्चित रूप से उन्हें सफलता का एक वैध मौका दे सकता है। यह स्पष्ट रूप से मुश्किल होगा। लेकिन अरे,
00:17:40ऐसा हमेशा होता,
00:17:41मुझे लगता है। तो मुझे संभावनाएं दिखती हैं लेकिन निश्चित रूप से,
00:17:45यह एक भीड़ भरा बाजार है। अब जो महत्वपूर्ण है वह यह है कि Remix,
00:17:49Shopify का है। 2022 में
00:17:52Shopify ने Remix को खरीदा,
00:17:54ऐसा आप कह सकते हैं,
00:17:55तो Remix टीम Shopify का हिस्सा बन गई। अब Shopify स्पष्ट रूप से एक ऐसे फ्रेमवर्क में रुचि रखता है जो सक्रिय रूप से मेंटेन किया जाए और कम से कम Shopify के अंदर उपयोग किया जाए,
00:18:07और इससे मेरा मतलब सिर्फ उनके Shopify मार्केटिंग और ब्रांडिंग पेजों के लिए कंपनी के अंदर नहीं है। मेरा मतलब Shopify शॉप्स के लिए है। यह निश्चित रूप से संभव है कि लक्ष्य Shopify विक्रेताओं के लिए Remix को एक विकल्प के रूप में रखना है जो Shopify के ऊपर अपनी खुद की दुकानें बनाना चाहते हैं और जो उन दुकानों को एडजस्ट करने और कस्टम शॉप फ्रंट या पेज बनाने का एक आसान तरीका चाहते हैं जो पूरी दुकान बनाते हैं,
00:18:35और निश्चित रूप से उनके पास एक ऐसा फ्रेमवर्क है जो उपयोग में आसान है और लार्ज लैंग्वेज मॉडल के साथ उपयोग करना आसान है,
00:18:43यह बहुत बड़ा हो सकता है। यह अभी भी कोई गारंटी नहीं है,
00:18:46निश्चित रूप से,
00:18:47लेकिन Shopify का Remix के पीछे होना निश्चित रूप से बहुत कीमती है,
00:18:52मुझे लगता है,
00:18:53और इसलिए मैं Remix के भविष्य के बारे में काफी सकारात्मक हूं,
00:18:57यह भी निश्चित रूप से क्योंकि उनके पास शायद छोटा लेकिन बहुत उत्साही कम्युनिटी है,
00:19:03जहां तक मैं बता सकता हूं। उनका एक शानदार ट्रैक रिकॉर्ड है,
00:19:07स्पष्ट रूप से React Router और इसी तरह विकसित करने में। तो हां,
00:19:11मैं यह देखने के लिए बेहद उत्साहित हूं कि हमें क्या मिलेगा। मैं आखिरकार इसे खुद उपयोग करने के लिए उत्साहित हूं क्योंकि अभी यह वास्तव में संभव नहीं है। और ये इस पर मेरे विचार हैं। तो हमेशा की तरह,
00:19:24मुझे बताएं कि आपके विचार क्या हैं,
00:19:27अगर आपको लगता है कि हमें इसकी जरूरत है और क्या वे जीतेंगे,
00:19:31और अगर आप रुचि रखते हैं और अधिक जानना चाहते हैं तो कॉन्फ्रेंस के पूरे चार घंटे के हिस्से को देखें।

Key Takeaway

Remix Version 3 एक बिल्कुल नया, React-स्वतंत्र JavaScript फ्रेमवर्क है जो सरलता, web primitives और AI-friendliness पर केंद्रित है, Shopify के समर्थन और अनुभवी डेवलपर्स की टीम के साथ।

Highlights

Remix Version 3 एक बिल्कुल नया JavaScript फ्रेमवर्क है जो React से पूरी तरह स्वतंत्र है और Ryan Florence तथा Michael Jackson द्वारा स्क्रैच से बनाया गया है

फ्रेमवर्क में मैनुअल अपडेट सिस्टम है जहां डेवलपर्स को this.update() कॉल करके UI को कब अपडेट करना है यह बताना होता है, React के ऑटोमैटिक अपडेट के विपरीत

यह फ्रेमवर्क विशेष रूप से बड़े भाषा मॉडल (LLM) और AI कोड असिस्टेंट के साथ उपयोग करने के लिए डिज़ाइन किया गया है, सरल और समझने में आसान API के साथ

Remix 3 web primitives और native browser capabilities जैसे custom events और abort signals पर बहुत अधिक निर्भर करता है, third-party libraries की जगह

Shopify ने 2022 में Remix को खरीदा था, जो फ्रेमवर्क को Shopify स्टोर के लिए संभावित समाधान बनाता है और इसे स्थिरता प्रदान करता है

फ्रेमवर्क में stateful और stateless components को अलग-अलग तरीके से परिभाषित किया जाता है - JSX return करने वाले functions stateless होते हैं जबकि function return करने वाले functions जो फिर JSX return करते हैं stateful होते हैं

यह एक full-stack framework है जो powerful routing, server-side rendering और React Server Components का सरल विकल्प प्रदान करता है

Timeline

Remix Version 3 का परिचय और पृष्ठभूमि

वीडियो एक नए JavaScript फ्रेमवर्क Remix Version 3 की घोषणा के साथ शुरू होता है जिसे Ryan Florence और Michael Jackson (React Router और Remix JS के निर्माता) द्वारा बनाया गया है। Remix का इतिहास बताया गया है - कैसे यह 2022 में React meta-framework के रूप में शुरू हुआ, फिर 2024 में Remix Version 2 को React Router के साथ मर्ज कर दिया गया। अब React Router को दो तरीकों से उपयोग किया जा सकता है: पारंपरिक routing library के रूप में या framework mode में full-stack React applications बनाने के लिए। यह परिवर्तन Remix ब्रांड के भविष्य के बारे में सवाल उठाता है, जिसका जवाब Version 3 में मिलता है।

Remix 3 का मूल दर्शन और this.update() API

Remix Version 3 एक पूरी तरह से नया full-stack JavaScript framework है जो React से स्वतंत्र है और स्क्रैच से लिखा गया है। फ्रेमवर्क का सबसे विवादास्पद पहलू this.update() API है जो दो महत्वपूर्ण बातों को दर्शाता है। पहला, 'this' keyword का उपयोग जो आधुनिक JavaScript developers के लिए असामान्य है, विशेष रूप से React developers के लिए जो इसका उपयोग नहीं करते। दूसरा, developers को manually यह बताना होगा कि UI को कब update करना है, React के automatic state management के विपरीत। Ryan Florence और Michael Jackson JavaScript ecosystem में जो समस्याएं देखते हैं उन्हें हल करने के लिए यह framework बनाया गया है, विशेष रूप से React और मौजूदा libraries की जटिलताओं को संबोधित करते हुए।

State Management का नया दृष्टिकोण

Remix 3 में state management पूरी तरह से अलग तरीके से काम करता है React की तुलना में। React में setState को call करने से state update होता है और UI automatically re-render होता है, कुछ batching के साथ। Remix में developers standard variables में state manage करते हैं, कोई useState hook नहीं है। UI तभी update होता है जब developer explicitly this.update() को call करता है। आप कई variables बदल सकते हैं और this.update() call नहीं करने पर UI update नहीं होगा, या variables बदलकर this.update() call करने पर UI update हो जाएगा। यह दृष्टिकोण developers को पूर्ण नियंत्रण देता है, हालांकि कुछ लोगों को इससे समस्या है। फ्रेमवर्क के निर्माताओं का तर्क है कि यह सरल है और उन स्थितियों से बचाता है जहां यह अस्पष्ट होता है कि कुछ क्यों update होता है या नहीं।

AI और LLM के लिए अनुकूलन

Remix 3 का एक प्रमुख लक्ष्य बड़े भाषा मॉडलों (LLM) द्वारा आसानी से उपयोग किए जाने योग्य होना है। चूंकि यह एक बिल्कुल नया framework है, मौजूदा LLMs इस codebase पर trained नहीं हैं और निकट भविष्य में भी नहीं होंगे क्योंकि अधिकांश front-end code examples React-based हैं। इसलिए developers को documentation articles और examples को chat history में feed करके LLMs को guide करना होगा। यही कारण है कि API को सरल, अभिव्यक्तिपूर्ण और समझने में आसान रखा गया है - न केवल मनुष्यों के लिए बल्कि AI models के लिए भी। Framework में this keyword के माध्यम से कुछ अन्य APIs भी उपलब्ध हैं, लेकिन बहुत अधिक नहीं क्योंकि विचार framework को सरल और focused रखने का है। यह design philosophy पूरे framework में consistent है।

Web Primitives और Browser Capabilities पर निर्भरता

Remix 3 web primitives और आधुनिक browsers में उपलब्ध native features का भारी उपयोग करता है। Framework browser में built-in native events और custom events dispatch करने की क्षमताओं पर बहुत निर्भर करता है। यह abort signals का उपयोग करता है यह संवाद करने के लिए कि component unmount हो गया है और event listeners को automatically रोकने के लिए। निर्माताओं का मानना है कि web developers ने आधुनिक browsers की क्षमताओं के साथ तालमेल नहीं रखा है, और कई features वर्षों से उपलब्ध हैं जिनका उपयोग नहीं किया जा रहा। DOM और browsers जो APIs प्रदान करते हैं वे बहुत शक्तिशाली हैं और अक्सर third-party libraries की आवश्यकता को समाप्त कर सकते हैं। यह दृष्टिकोण framework को सरल रखने और built-in क्षमताओं का लाभ उठाने में मदद करता है।

Component Architecture और JSX

हालांकि Remix 3 web primitives पर निर्भर करता है, developers को raw DOM APIs के साथ create element का उपयोग नहीं करना होगा। इसके बजाय, वे functions बनाकर और JSX code का उपयोग करके components बनाएंगे, React के समान। मुख्य अंतर state management में है - कोई hooks नहीं हैं और component functions bar-bar नहीं बुलाए जाएंगे जैसे React में होता है। Remix में दो प्रकार के component functions हैं: stateless components जो directly JSX return करते हैं (ये केवल एक बार execute होते हैं और this.update() call नहीं कर सकते), और stateful components जो एक function return करते हैं जो फिर JSX return करता है (this.update() call करने पर inner function फिर से execute होगा)। यह old-school React approach जैसा है जहां class-based stateful और stateless components थे, लेकिन यहां सब कुछ functions के माध्यम से है।

Full-Stack Capabilities और Backend Features

Remix Version 3 केवल front-end framework नहीं है बल्कि एक full-stack framework बनने का लक्ष्य रखता है। Backend पर, यह एक शक्तिशाली router प्रदान करता है क्योंकि team ने 10 वर्षों से React Router बनाया है। Routes में JSX code और Remix components return करने की क्षमताएं हैं जो server पर hydrate होती हैं। Framework React Server Components का अपना सरल विकल्प लाता है जो components return करने की अनुमति देता है जो client पर serve होने के बाद DOM के कुछ हिस्सों को re-fetch करके update कर सकते हैं। उदाहरण के लिए, जब आप कुछ delete करते हैं, client से server को request भेज सकते हैं और HTML code वापस प्राप्त कर सकते हैं जो DOM के हिस्सों को update करने के लिए re-hydrate किया जा सकता है। यह Next.js या React Router framework mode जैसे snappy modern single-page applications बनाने की अनुमति देता है, लेकिन सरल तरीके से।

Framework की आवश्यकता पर विचार

वीडियो में सवाल उठाया गया है कि क्या हमें एक और JavaScript framework की आवश्यकता है जब पहले से ही बहुत सारे हैं। Presenter का मानना है कि नए frameworks जो केवल React जैसे हैं छोटे अंतरों के साथ, उनकी आवश्यकता नहीं है। हालांकि, एक बिल्कुल नया approach जो manually triggered updating और इसी तरह की विशेषताएं लाता है, वह एक शानदार विचार है और कोशिश के लायक है। यह React का एक सरल विकल्प प्रदान कर सकता है, जो अद्भुत है लेकिन वर्षों में काफी complex हो गया है। Innovation और नए ideas को आजमाना हमेशा अच्छा है, भले ही market पहले से crowded हो। मुख्य बात यह है कि Remix 3 वास्तव में कुछ नया और अलग लाता है, न कि सिर्फ मौजूदा solutions की नकल।

Success की संभावनाएं और AI युग में चुनौतियां

Remix 3 की सफलता की संभावनाओं पर चर्चा करते हुए, वीडियो AI और large language models के युग में चुनौतियों को उजागर करता है। LLMs आमतौर पर default रूप से React recommend करेंगे क्योंकि अधिकांश training data React-based है। हालांकि, जो लोग code लिखना नहीं जानते वे directly target audience नहीं हैं। अनुभवी developers Remix का उपयोग करने में रुचि रखेंगे और official examples की मदद से LLMs को guide कर सकते हैं Remix code generate करने के लिए, क्योंकि वे simpler codebase चाहते हैं। Developers अभी भी अपने code को control करते हैं - वे बड़े हिस्से generate कर सकते हैं लेकिन फिर भी tweaking करते हैं और specific features manually लिखते हैं। इसलिए developers अभी भी tech stack के बारे में परवाह करते हैं। जब तक framework LLMs के साथ उपयोग करना आसान है और LLMs को सिखाने के लिए पर्याप्त resources हैं, जो clearly एक priority है, यह सफलता का वैध मौका दे सकता है।

Shopify का समर्थन और भविष्य की संभावनाएं

Remix की सफलता में एक महत्वपूर्ण कारक यह है कि 2022 में Shopify ने Remix को acquire किया था, इसलिए Remix team Shopify का हिस्सा है। Shopify स्पष्ट रूप से एक actively maintained framework में रुचि रखता है जिसे Shopify के अंदर उपयोग किया जा सके। यह संभव है कि लक्ष्य Shopify vendors के लिए Remix को एक option के रूप में रखना है जो custom shop fronts या pages बनाना चाहते हैं। एक framework जो उपयोग में आसान है और LLMs के साथ काम करना आसान है, Shopify ecosystem के लिए बहुत बड़ा हो सकता है। हालांकि यह कोई guarantee नहीं है, Shopify का backing बहुत valuable है। इसके अलावा, Remix के पास एक छोटी लेकिन बहुत enthusiastic community है, और team का React Router develop करने में शानदार track record है। Presenter इसे देखने और उपयोग करने के लिए बेहद excited है, हालांकि अभी यह वास्तव में उपलब्ध नहीं है।

Community Posts

View all posts