Bun Rust का रीराइट एक प्रभावशाली उपलब्धि है
MMaximilian Schwarzmüller
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00BUN को SIG से Rust में पोर्ट किया गया था।
00:00:02आपने शायद इसके बारे में सुन लिया होगा,
00:00:04लेकिन यहाँ बताने के लिए बहुत कुछ है।
00:00:06पिछले हफ्ते काफी ड्रामा हुआ है,
00:00:08लेकिन यहाँ बहुत सी दिलचस्प चीजें भी हो रही हैं।
00:00:10और चाहे आप BUN, SIG या Rust में रुचि रखते हों,
00:00:14यह वाकई बहुत दिलचस्प है।
00:00:15साथ ही, AI का लाभ कैसे उठाया गया,
00:00:18और हमारे उद्योग में सामान्य तौर पर
00:00:20इसी तरह के प्रोजेक्ट्स के लिए इसका क्या मतलब हो सकता है।
00:00:22अब, एक छोटी सी बात,
00:00:24मुझे व्यक्तिगत रूप से BUN काफी पसंद है।
00:00:26यह मेरा डिफ़ॉल्ट JavaScript रनटाइम है जिसे मैं
00:00:29अपने अधिकांश प्रोजेक्ट्स में इस्तेमाल करता हूँ।
00:00:30और वास्तव में, एक सुखद संयोग यह है कि,
00:00:32मैंने पिछले हफ्ते BUN पर एक बिल्कुल नया कोर्स पब्लिश किया है।
00:00:35और यह Rust वर्ज़न के लिए भी वैसे ही काम करता है
00:00:37जैसे यह SIG वर्ज़न के लिए करता था।
00:00:39तो अगर आप BUN को थोड़ा गहराई से समझना चाहते हैं
00:00:41और इसके सभी मुख्य API के बारे में जानना चाहते हैं,
00:00:44क्योंकि यह BUN के सबसे बड़े फायदों में से एक है,
00:00:46कि इसमें बहुत कुछ पहले से ही शामिल (built-in) है।
00:00:48कुछ लोगों को यह पसंद नहीं है, मुझे यह बहुत पसंद है।
00:00:50अगर आप इसके बारे में और सीखना चाहते हैं,
00:00:51तो वह कोर्स आपके लिए दिलचस्प हो सकता है।
00:00:53लेकिन आइए अब हम करीब से देखते हैं
00:00:54कि पोर्टिंग की पूरी टाइमलाइन क्या थी, क्या कहते हैं?
00:00:58यह असल में दो महीने पहले हुआ था।
00:01:01तो ब्लॉग पोस्ट जुलाई में पिछले हफ्ते जारी की गई थी,
00:01:04लेकिन पोर्टिंग खुद मई में हुई थी।
00:01:08और इसकी शुरुआत मई की शुरुआत में हुई
00:01:10जब आधिकारिक BUN गिटहब रिपॉजिटरी पर
00:01:13CloudFaserPort शाखा (branch) खोजी गई थी।
00:01:15उस शाखा में एक पोर्टिंग MD फ़ाइल थी,
00:01:18एक मार्कडाउन फ़ाइल जिसमें निर्देश थे
00:01:21कि SIG कोड को Rust कोड में कैसे बदला जाए,
00:01:23उस कोड को कैसे पोर्ट किया जाए, अनुवाद तालिकाओं (translation tables) के साथ,
00:01:27और सामान्य निर्देश थे।
00:01:28और हम इस पर वापस आएंगे कि वह फ़ाइल कैसे बनाई गई थी,
00:01:30क्योंकि जाहिर है कि इसमें AI शामिल था,
00:01:32जैसा कि आप शायद अनुमान लगा सकते हैं, थोड़े समय बाद।
00:01:34उसकी खोज हुई।
00:01:36तो स्वाभाविक रूप से, हैकर न्यूज़ और X पर चर्चा शुरू हो गई।
00:01:40और कुछ लोग इसे लेकर उत्साहित थे।
00:01:43कुछ लोग इसके बहुत आलोचक थे।
00:01:46लेकिन उस समय, हम बहुत कुछ नहीं जानते थे।
00:01:47जाहिर है, Rust के आसपास काफी ध्रुवीकरण (polarization) है।
00:01:52ऐसे लोग हैं जो Rust से प्यार करते हैं, मेरी तरह।
00:01:55ऐसे लोग हैं जो Rust से नफरत करते हैं।
00:01:57ऐसे लोग हैं जो इस बात से नफरत करते हैं कि
00:01:58सब कुछ Rust में फिर से लिखा जाना चाहिए,
00:02:00क्योंकि अक्सर आप पढ़ते हैं
00:02:03कि लोग चाहते हैं कि प्रोग्राम XYZ को Rust में फिर से लिखा जाए।
00:02:06और मैं समझता हूँ कि यह परेशान करने वाला है।
00:02:08लेकिन स्वाभाविक रूप से, इसीलिए,
00:02:09वहाँ बहुत अधिक ध्रुवीकरण हो रहा था।
00:02:11लेकिन पोर्ट अभी तक नहीं हुआ था।
00:02:15वह मई में बाद में बदल गया।
00:02:16और 14 मई को, एक आधिकारिक पुल रिक्वेस्ट खोली गई,
00:02:22और फिर उसे मर्ज भी कर दिया गया,
00:02:24जिसने वास्तव में BUN कोड बेस को माइग्रेट किया,
00:02:28पूरा का पूरा, SIG से Rust में।
00:02:30अब, जैसा कि आप देख सकते हैं, यह एक विशाल पुल रिक्वेस्ट है।
00:02:32कोड की दस लाख से अधिक लाइनें जोड़ी गई थीं।
00:02:35और SIG कोड को हटाने का काम
00:02:39एक अलग चरण में हुआ।
00:02:40तो हाँ, इसीलिए यह सीधा अदला-बदली (swap) नहीं है।
00:02:42लेकिन यह एक बड़ा बदलाव है, जैसा कि आप देख सकते हैं,
00:02:44लगभग 7,000 कमिट के साथ।
00:02:46अब, स्वाभाविक रूप से, उस कोड की समीक्षा इंसानों द्वारा नहीं की गई थी,
00:02:51कम से कम पूरी तरह से नहीं।
00:02:52इसकी समीक्षा AI द्वारा की गई थी।
00:02:54इसमें टेस्ट पास हुए थे, लेकिन इसकी समीक्षा इंसानों द्वारा नहीं की गई थी।
00:02:59और हम इस पर वापस आएंगे कि AI का उपयोग कैसे किया गया, बस एक सेकंड में।
00:03:02लेकिन इसे पब्लिश या मर्ज किया गया था।
00:03:06और निश्चित रूप से, अब और अधिक चर्चा शुरू हो गई।
00:03:08जैसा कि मैंने अभी उल्लेख किया है, इसकी समीक्षा इंसानों द्वारा नहीं की गई थी।
00:03:10बेशक, उस समय सीमा में ऐसा करना असंभव है।
00:03:14लेकिन समुदाय ने इसमें गहराई से देखा और
00:03:17इसके हिस्सों का विश्लेषण किया।
00:03:19और फिर एक और, या पहली ब्लॉग पोस्ट आई,
00:03:23सभी विवरणों के बारे में आधिकारिक पोस्ट नहीं,
00:03:25बल्कि Buntine द्वारा असुरक्षित (unsafe) के उपयोग के बारे में एक पहली ब्लॉग पोस्ट या बयान जारी किया गया
00:03:29असुरक्षित (unsafe) के उपयोग के बारे में।
00:03:32क्योंकि इस पुल रिक्वेस्ट के बाद एक बड़ी आलोचना यह सामने आई
00:03:37कि इसमें मौजूद Rust कोड मुहावरेदार (idiomatic) Rust नहीं था।
00:03:41यह उस तरह का Rust कोड नहीं था जिसे आपको लिखना चाहिए
00:03:44अगर आप इसे शुरू से बना रहे होते।
00:03:46इसके बजाय, यह वास्तव में SIG से Rust में अनुवाद जैसा था।
00:03:50और इसका मतलब यह था कि Rust की सभी सर्वोत्तम प्रथाओं
00:03:54और पैटर्न्स का उपयोग नहीं किया गया था।
00:03:55और विशेष रूप से, वहां काफी अच्छी मात्रा में
00:03:58असुरक्षित (unsafe) उपयोग था।
00:04:00अब, असुरक्षित (unsafe) को समझने के लिए, आपको यह समझना होगा
00:04:03कि Rust मेमोरी का प्रबंधन कैसे करता है,
00:04:05क्योंकि यह इसके सबसे बड़े फायदों में से एक है,
00:04:08और यह अन्य भाषाओं से काफी अलग है।
00:04:10क्योंकि अधिकांश भाषाओं में, आपके पास या तो गार्बेज कलेक्टर होता है,
00:04:14जो एक ऐसी प्रक्रिया है जो मूल रूप से पता लगाती है
00:04:16कि कब कोई मान (value) प्रोग्राम में कहीं भी उपयोग नहीं किया जा रहा है
00:04:19और फिर मेमोरी खाली कर देता है, जो सुविधाजनक है,
00:04:21लेकिन अतिरिक्त संसाधनों की खपत करता है।
00:04:24या आपको इसे खुद करना होगा।
00:04:26उदाहरण के लिए, C जैसी भाषाओं में,
00:04:28आपको मैन्युअल रूप से मेमोरी आवंटित और मुक्त करनी होती है।
00:04:31और SIG में भी ऐसा ही है।
00:04:33आप वहाँ मेमोरी आवंटित कर सकते हैं, लेकिन आपको free भी कॉल करना होगा
00:04:37या जब आपको इसकी आवश्यकता न हो तो इसे खाली करना होगा।
00:04:40आप defer का उपयोग कर सकते हैं, जो अच्छा है।
00:04:43इसका मूल रूप से मतलब है कि आप इसे कॉल कर सकते हैं
00:04:47इससे पहले कि यह वास्तव में निष्पादित (execute) हो।
00:04:49यह defer है और स्वचालित रूप से कॉल किया जाएगा
00:04:52जब यह स्कोप समाप्त हो जाएगा, अनिवार्य रूप से।
00:04:55और यह अच्छा है क्योंकि अलग-अलग स्थितियां होती हैं
00:04:58जहाँ किसी मान (value) की आवश्यकता नहीं हो सकती है।
00:05:00लेकिन फिर भी, जब आपको मेमोरी को मैन्युअल रूप से साफ़ करना होता है,
00:05:04ऐसी कई स्थितियां हैं
00:05:05जहाँ आप खुद को नुकसान पहुँचा सकते हैं (shoot yourself in the foot)।
00:05:07आपके पास अधिक बारीक नियंत्रण होता है
00:05:09और यह बहुत उपयोगी, बहुत कुशल हो सकता है,
00:05:11लेकिन ऐसी स्थितियों को भूल जाना भी आसान है
00:05:15अधिक जटिल प्रोग्रामों में
00:05:16जहाँ आप मेमोरी को साफ नहीं कर रहे हो सकते हैं,
00:05:19जिससे मेमोरी लीक हो सकती है,
00:05:20या जहाँ आप दो बार सफाई कर रहे हो सकते हैं,
00:05:23जिससे एक त्रुटि (error) भी होगी।
00:05:25और इसलिए एक ट्रेड-ऑफ़ है।
00:05:27और Rust का दृष्टिकोण अलग है।
00:05:30Rust में, स्वामित्व (ownership) नामक एक अवधारणा है,
00:05:32जिसका अर्थ है कि हर मान (value) का केवल एक मालिक होता है,
00:05:36और यह स्कोप से बंधा होता है।
00:05:38तो अगर आपके पास एक स्कोप है,
00:05:39और आप कर्ली ब्रेसिज़ का उपयोग करके स्कोप बना सकते हैं,
00:05:41या किसी फ़ंक्शन का भी अपना स्कोप होगा।
00:05:43आप JavaScript से उस अवधारणा को जानते होंगे।
00:05:46अगर आपके पास स्कोप है,
00:05:47तो जब वहाँ कोई मान बनाया जाता है,
00:05:49तो वह उस स्कोप का होता है।
00:05:51और अगर स्कोप समाप्त हो जाता है, तो उसे खाली कर दिया जाता है।
00:05:53और वह निश्चित रूप से बहुत सुविधाजनक है
00:05:55क्योंकि आपको इसे खाली करने की चिंता करने की आवश्यकता नहीं है।
00:05:58आपके पास गार्बेज कलेक्टर भी नहीं है।
00:06:00इसके बजाय, आपके पास वह स्पष्ट नियम है।
00:06:02यह अधिक जटिल प्रोग्रामों में जटिलता का कारण बन सकता है
00:06:05जहाँ आपको मानों को इधर-उधर करने की आवश्यकता होती है।
00:06:07आप Rust में ऐसा कर सकते हैं,
00:06:08लेकिन इसके लिए सोचने का एक अलग तरीका चाहिए।
00:06:11लेकिन बेशक यह आपको मेमोरी सुरक्षा देता है,
00:06:14जब तक आप असुरक्षित (unsafe) कीवर्ड का उपयोग न करें।
00:06:19यदि आप इसका उपयोग करते हैं, तो आप एक असुरक्षित (unsafe) स्कोप बना सकते हैं।
00:06:22और उसमें, वे नियम अब लागू नहीं होते।
00:06:24और फिर यह सुनिश्चित करना आपका काम है
00:06:26कि मेमोरी का उचित प्रबंधन किया जाए।
00:06:28अब, आप ऐसा क्यों करेंगे?
00:06:29खैर, उदाहरण के लिए,
00:06:31यदि आप किसी C लाइब्रेरी को अंदर खींच रहे हैं,
00:06:33जो आप Rust में कर सकते हैं,
00:06:34आप कुछ C कोड मिला सकते हैं, ऐसा कहें,
00:06:37या कुछ C लाइब्रेरी विधियों और फ़ंक्शंस को कॉल कर सकते हैं,
00:06:40तो चूंकि C स्वाभाविक रूप से असुरक्षित (unsafe) है,
00:06:44वह कोड जहाँ आप उस C कोड तक पहुँचते हैं, वह भी असुरक्षित है।
00:06:48तो आपको हमारे असुरक्षित कोड के साथ बातचीत करने के लिए उस सुविधा की आवश्यकता है।
00:06:52और यह भी एक बात है जिसे उन्होंने नोट किया
00:06:54उस आधिकारिक बयान में,
00:06:56कि कोड बेस में वे सभी असुरक्षित (unsafe) उपयोग
00:07:00का एक अच्छा हिस्सा वास्तव में कॉल से संबंधित था,
00:07:04अन्य लाइब्रेरीज़, C लाइब्रेरीज़, आदि को,
00:07:07जो नहीं बदलेगा।
00:07:08लेकिन उन्होंने ऐसे क्षेत्रों की भी पहचान की
00:07:10जहाँ वे वास्तव में कोड में सुधार कर सकते थे
00:07:13और असुरक्षित (unsafe) से छुटकारा पा सकते थे।
00:07:14और उन्होंने उल्लेख किया कि वे ऐसा करेंगे
00:07:15बाद की पुल रिक्वेस्ट्स में।
00:07:18और उन्होंने किया और अभी भी ऐसा कर रहे हैं।
00:07:20तो आप इस शुरुआती पोर्ट के बारे में सोच सकते हैं
00:07:22एक शुरुआती बिंदु के रूप में,
00:07:24जिसे समय के साथ परिष्कृत किया गया।
00:07:26यह अभी भी उल्लेख करने योग्य है कि यह शुरुआती पुल रिक्वेस्ट,
00:07:28या वह विशाल पुल रिक्वेस्ट,
00:07:30पहले से ही टेस्ट पास कर रही थी।
00:07:32तो यह स्थिर (stable) था, टेस्ट पास हो रहे थे,
00:07:35लेकिन कोड उस कोड गुणवत्ता का नहीं था
00:07:37जिसकी आप शायद उम्मीद करेंगे अगर इसे Rust में लिखा गया होता
00:07:40शुरू से, क्योंकि वह लक्ष्य नहीं था।
00:07:43तो वह 21 मई थी।
00:07:45फिर सन्नाटा छा गया।
00:07:46और यह भी ध्यान देने योग्य है कि BUN का यह वर्ज़न
00:07:49अभी जारी नहीं किया गया था।
00:07:50और जब मैं इसे रिकॉर्ड कर रहा हूँ, तो यह अभी भी लाइव नहीं है।
00:07:52जब आप अभी BUN इंस्टॉल कर रहे हैं,
00:07:54आपको अभी भी SIG वर्ज़न मिल रहा है,
00:07:56लेकिन यह अब किसी भी दिन बदल सकता है।
00:07:58लेकिन फिर 8 जुलाई को,
00:07:59आधिकारिक ब्लॉग पोस्ट जारी की गई थी
00:08:02जहाँ हमें बहुत सारे दिलचस्प विवरण मिलते हैं
00:08:04इस पोर्ट के बारे में।
00:08:06और इसे पढ़ना वास्तव में सार्थक है।
00:08:07मैं इसे नीचे लिंक कर दूँगा
00:08:08क्योंकि यहाँ सीखने के लिए बहुत कुछ है।
00:08:11यह पूरा पोर्ट, और यह कोई रहस्य नहीं है,
00:08:13यह पूरी तरह से AI की मदद से किया गया था।
00:08:15यह ध्यान रखना महत्वपूर्ण है कि BUN का स्वामित्व Anthropic के पास है।
00:08:18इसलिए उनके पास उन सभी टोकन तक मुफ्त पहुँच थी
00:08:22और विशेष रूप से Fable 5 तक भी
00:08:24इससे पहले कि इसे जनता के लिए जारी किया जाता।
00:08:26यह पोर्ट Fable 5 के साथ किया गया था।
00:08:29और वैसे, यदि आप अभी Cloud Code इंस्टॉल कर रहे हैं,
00:08:32भले ही BUN 1.4, जो कि Rust वर्ज़न है, अभी जारी नहीं हुआ है,
00:08:36Cloud Code पहले से ही ऊपर चल रहा है
00:08:39BUN के एक अप्रकाशित वर्ज़न पर, यूँ कहें,
00:08:42जो कि Rust वर्ज़न है।
00:08:44तो यह बात है।
00:08:45लेकिन हाँ, यह पोर्ट Cloud Code के साथ किया गया था
00:08:48Fable 5 पर आधारित, मुफ्त टोकन के साथ, निश्चित रूप से,
00:08:52अनिवार्य रूप से, चूँकि BUN Anthropic का हिस्सा है।
00:08:54और इसे ध्यान में रखना महत्वपूर्ण है
00:08:56क्योंकि उस ब्लॉग पोस्ट में,
00:08:58हम सीखते हैं कि यदि आप सभी टोकन को मिला दें,
00:09:03या यदि आप उन सभी टोकन का योग कर लें
00:09:04जो खर्च किए गए थे और API कीमतें लगा दी जाएँ,
00:09:08तो यह पूरा पोर्ट लगभग $160,000 का होता।
00:09:13यह एक चौंकाने वाली संख्या है, लेकिन वास्तव में,
00:09:18यदि आप इस प्रोजेक्ट के दायरे के बारे में सोचें,
00:09:20और दायरा यह है कि BUN, SIG कोड की 535,000 लाइनें था,
00:09:26यदि आप उस दायरे के बारे में सोचें
00:09:28और कि इंसानों को उसे Rust में पोर्ट करने में कितना समय लगेगा,
00:09:32तो $160,000 वास्तव में इतने बुरे नहीं लग सकते,
00:09:36इस पर निर्भर करता है कि आप कहाँ स्थित हैं।
00:09:38खैर, फिर भी, यह स्पष्ट है कि कोई भी ओपन सोर्स प्रोजेक्ट
00:09:43ऐसा करने में सक्षम नहीं होगा।
00:09:44और अधिकांश कंपनियाँ शायद ऐसा नहीं कर पाएंगी
00:09:47या पोर्ट पर इतनी राशि खर्च करने को तैयार नहीं होंगी।
00:09:50यह संभव है क्योंकि BUN, Anthropic का हिस्सा है।
00:09:54और निश्चित रूप से, यह Anthropic के लिए एक अच्छा मार्केटिंग स्टंट भी है।
00:09:58शायद यह मुख्य उद्देश्य नहीं रहा होगा।
00:09:59मैं यह नहीं जानता।
00:10:03लेकिन निश्चित रूप से, यह एक अच्छी मार्केटिंग है।
00:10:04यह सब ध्यान में रखना महत्वपूर्ण है।
00:10:06फिर भी, यह सब ध्यान में रखना महत्वपूर्ण है।
00:10:08बहरहाल, इस ब्लॉग पोस्ट में,
00:10:10हम जान सकते हैं कि जेरेड ने वह पोर्ट कैसे किया
00:10:14या उसने उस पोर्ट को कैसे काम में लिया।
00:10:18और वह सब उस पोर्टिंग MD फाइल से शुरू हुआ,
00:10:21जिसे उसने क्लाउड के साथ चर्चा में बनाया था,
00:10:25तीन घंटे की चर्चा में,
00:10:26जैसा कि उसने ब्लॉग पोस्ट में उल्लेख किया है,
00:10:28जहाँ उसने अनिवार्य रूप से क्लाउड कोड और एंथ्रोपिक मॉडलों के साथ
00:10:32फैसला किया कि
00:10:35ऐसी पोर्टिंग MD फाइल को कैसा दिखना चाहिए
00:10:37SIG को Rust कोड में अनुवाद करने में सक्षम होने के लिए।
00:10:40फिर एक बार जब उसने उस पर पुनरावृत्ति की और उससे खुश था,
00:10:44उसने शुरुआत में तीन फाइलों पर इसका परीक्षण किया।
00:10:46और एक बार जब वह उससे खुश हो गया,
00:10:48तो उसने पूरे BUN कोड बेस पर क्लाउड को उतार दिया।
00:10:53अब इस ब्लॉग पोस्ट में,
00:10:54वह स्पष्ट करता है कि उसने सिर्फ क्लाउड को प्रॉम्ट नहीं दिया
00:10:57BUN और Rust को फिर से लिखने के लिए, कोई गलती न करें,
00:11:00बल्कि इसके बजाय उसने एक विस्तृत प्रणाली स्थापित की
00:11:03जहाँ उसके पास एक मुख्य एजेंट था,
00:11:07जो उप-एजेंटों को भी सक्रिय करता था, निश्चित रूप से,
00:11:09पोर्टिंग MD फाइल के अनुसार पोर्टिंग कर रहे थे।
00:11:13और फिर उसके पास दो प्रतिपक्षी समीक्षा एजेंट थे
00:11:16जिन्होंने मुख्य एजेंट के काम की समीक्षा की एक बार जब यह हो गया
00:11:19और प्रतिक्रिया प्रदान की,
00:11:21और फिर उस प्रतिक्रिया को लागू करने के लिए एक फिक्सर एजेंट।
00:11:24और उसने यह सब एक लूप में चलाया
00:11:25और निश्चित रूप से कई कार्य वृक्षों में वितरित किया
00:11:30ताकि पूरे कोड बेस को प्रोसेस किया जा सके
00:11:33और इसके माध्यम से अपना रास्ता काम करें।
00:11:35ब्लॉग पोस्ट में,
00:11:35उसने उल्लेख किया कि उसने BUN और Rust को फिर से लिखा
00:11:38क्लाउड कोड में 50 गतिशील वर्कफ़्लो का उपयोग करके,
00:11:40जो ये वर्कफ़्लो हैं जो बहुत सारे उप-एजेंटों को सक्रिय करते हैं
00:11:4311 दिनों के दौरान।
00:11:46और उसके पास वहां एक अच्छा चार्ट भी है।
00:11:48सामान्य तौर पर, ब्लॉग पोस्ट में,
00:11:49वहां अच्छे ग्राफिक्स हैं
00:11:51जो इसे पचाना थोड़ा आसान बनाते हैं,
00:11:53जो बनाए गए कमिट्स की संख्या दिखाते हैं
00:11:56और फिर अलग-अलग दिनों पर पुश किए गए
00:11:58और फिर दिन के समय।
00:12:00तो यह सब क्लाउड कोड में लूप की मदद से हुआ,
00:12:04बहुत सारे उप-एजेंटों की मदद से
00:12:05और एक मुख्य एजेंट की स्पष्ट प्रक्रिया,
00:12:08समीक्षा एजेंटों और फिक्सर एजेंट के साथ।
00:12:10और फिर उसने एक और अलग रास्ता भी अपनाया
00:12:15यूँ कहें कि उन सभी परीक्षणों को काम में लाने का।
00:12:20और इसने अपनी चुनौतियां लाईं
00:12:22क्योंकि टेस्ट सुइट इतना बड़ा और जटिल है
00:12:25कि वह विभिन्न बुनियादी ढांचे के प्रतिबंधों में फंस गया
00:12:29क्योंकि कुछ परीक्षण बहुत अधिक मेमोरी का उपभोग करते हैं
00:12:31और समानांतर में कई परीक्षण चलाना,
00:12:33इसलिए यह काम नहीं करता है।
00:12:34लेकिन अंततः उसने AI की मदद से वह सब भी काम में लिया,
00:12:39परीक्षण चलाना, कोड को ठीक करना,
00:12:42परीक्षणों को फिर से चलाना आदि।
00:12:43तो बहुत सारी लूपिंग, बहुत सारे एजेंट और उप-एजेंट शामिल थे,
00:12:47स्वाभाविक रूप से, और बहुत सारे टोकन जल गए।
00:12:49$165,000 के टोकन जल गए।
00:12:53अब फिर से, आप गहराई में जा सकते हैं,
00:12:55और यही वह है जो मैं करने की सलाह दूंगा
00:12:57यदि आप सभी छोटी-मोटी बारीकियों में रुचि रखते हैं।
00:12:59यह वहां तक पहुँचने की यात्रा का दस्तावेजीकरण करने वाला एक बहुत अच्छा ब्लॉग पोस्ट है।
00:13:03लेकिन यह संक्षेप में है कि 11 दिनों में पोर्ट कैसे हुआ
00:13:08उन सभी एजेंटों और उप-एजेंटों के साथ जो कई वर्कफ़्लो में वितरित थे,
00:13:1250 ऐसे वर्कफ़्लो, जैसा कि हमने 11 दिनों के दौरान सीखा,
00:13:17$165,000 API कीमतों पर टोकन में खर्च किए गए।
00:13:24अब, अंत में, एक बार जब ब्लॉग पोस्ट में उसका काम हो गया,
00:13:29उसने उल्लेख किया कि Bun 1.4 उन विभिन्न बग्स को ठीक करता है जो पिछले SICK वर्ज़न में हैं,
00:13:35कि यह अधिक मेमोरी कुशल है, कि यह छोटा है।
00:13:38और जैसा कि हम एंड्रयू केली, जो SICK के निर्माता हैं, की प्रतिक्रिया से सीखते हैं,
00:13:43इनमें से कुछ सुधार संभवतः SICK के साथ भी हासिल किए जा सकते थे।
00:13:47लेकिन वह ब्लॉग पोस्ट काफी दिलचस्प है क्योंकि इसे संपादित किया गया था।
00:13:53यह शुरू में जितना था, अब उससे कम गुस्से से भरा है।
00:13:57पहला वर्ज़न व्यक्तिगत हमलों से भरा था,
00:14:00सिर्फ यह कहने के लिए कि यह व्यक्तिगत हमला नहीं था,
00:14:03लेकिन यह व्यक्तिगत हमलों से भरा था।
00:14:05नवीनतम वर्ज़न, जिसे मैं नीचे लिंक भी करूंगा, अभी भी काफी तीखा है।
00:14:11अंत में, आप पहले वर्ज़न को पढ़कर स्पष्ट रूप से बता सकते हैं,
00:14:14लेकिन इस वर्ज़न को भी,
00:14:16कि एंड्रयू, SICK के निर्माता और जेरेड, Bun के निर्माता,
00:14:21वे अब या फिर से सबसे अच्छे दोस्त नहीं बनेंगे।
00:14:26अब, वह Bun को SICK का समर्थन करने के लिए धन्यवाद देता है, आर्थिक रूप से भी,
00:14:31सिर्फ मूल रूप से इस पूरे पोर्ट के बारे में गुस्सा करने के लिए और यह कैसे आवश्यक नहीं होता
00:14:41यदि Bun कोड उचित SICK में लिखा गया होता।
00:14:44वह बहुत स्पष्ट करता है कि उसे ऐसा नहीं लगता कि Bun रिपॉजिटरी,
00:14:48SICK वर्ज़न में, उच्च कोड गुणवत्ता थी और इससे कई समस्याएं हुईं।
00:14:53और वह सच हो भी सकता है और नहीं भी।
00:14:56मुझे लगता है कि यह बिल्कुल संभव है कि Bun के पैमाने की परियोजना में,
00:15:01उस गति से चलना जिसमें Bun चलता है,
00:15:06कोड गुणवत्ता SICK के निर्माता के मानकों के अनुरूप नहीं रही होगी।
00:15:12आप निश्चित रूप से तर्क दे सकते हैं कि अधिकांश कोड प्रोजेक्ट्स
00:15:15में आवश्यक रूप से उच्चतम कोड गुणवत्ता नहीं होती है।
00:15:18तो आप जो चाहें बना सकते हैं।
00:15:21अब, मैं इसे वहीं छोड़ दूंगा।
00:15:24मुझे लगता है कि कुल मिलाकर प्रतिक्रिया ब्लॉग पोस्ट काफी कमजोर है
00:15:29क्योंकि यह गुस्से से उबल रहा है।
00:15:33इसमें कुछ वैध बिंदु हैं।
00:15:35जैसे, उदाहरण के लिए, ब्लॉग पोस्ट में जेरेड बनाता है,
00:15:40वह उल्लेख करता है कि SICK से Rust तक के पोर्ट को मान्य किया गया था,
00:15:46निश्चित रूप से, इन सभी समीक्षक एजेंटों के साथ,
00:15:48लेकिन परीक्षण सुइट चलाकर और उसे काम में लाकर भी।
00:15:51और एंड्रयू सही ढंग से बताता है कि, निश्चित रूप से, वही टेस्ट सुइट
00:15:56SICK वर्ज़न महान है यह साबित करने के लिए पर्याप्त होना चाहिए था या नहीं।
00:16:00तो शायद टेस्ट सुइट में भी सुधार किया जाना चाहिए था।
00:16:04किसी भी तरह, निश्चित रूप से ये दोनों सबसे अच्छे दोस्त नहीं बनेंगे।
00:16:09और मुझे इस बारे में कोई राय नहीं है कि SICK या Rust सामान्य रूप से या Bun के लिए बैटरी भाषा है।
00:16:17हालांकि, मेरा मानना है कि AI के साथ, Rust और उसका मेमोरी मॉडल और तथ्य
00:16:23कि आपको कई मेमोरी संबंधित समस्याओं के लिए संकलन समय त्रुटियां मिलती हैं, एक बड़ा लाभ है,
00:16:30विशेष रूप से AI के युग में, क्योंकि, निश्चित रूप से, यह पूरा पोर्ट वास्तव में प्रभावशाली है
00:16:38जब AI के उपयोग की बात आती है।
00:16:41और निश्चित रूप से, यह AI का उपयोग करने का एक तरीका है जिसे हम में से अधिकांश वहन नहीं कर पाएंगे
00:16:45या कंपनियों में वहन करने के इच्छुक नहीं होंगे।
00:16:48लेकिन यह प्रभावशाली है कि मैं ऐसा करने में सक्षम था।
00:16:52और यह वाइब कोडिंग या सिर्फ YOLO प्रॉम्टिंग नहीं है।
00:16:56इसके पीछे एक स्पष्ट प्रक्रिया है।
00:16:59इसमें बहुत सोचा गया था, जिसे मैंने उम्मीद है कि स्पष्ट कर दिया है, जो निश्चित रूप से स्पष्ट भी हो जाता है
00:17:05यदि आप छोटी-मोटी तकनीकी बारीकियों में गोता लगाते हैं।
00:17:08लेकिन सभी योजना, सेटअप के साथ सभी पुनरावृत्ति के साथ, जिस तरह से इसे संपर्क किया गया था,
00:17:13स्पष्ट रूप से यह सिर्फ एक प्रॉम्ट नहीं था जो इस पर फेंका गया था।
00:17:17और फिर हम देखेंगे कि हम कहां पहुंचते हैं, यह दिखाता है कि आप AI के साथ क्या कर सकते हैं।
00:17:21और निश्चित रूप से, एक कोड बेस को एक भाषा से दूसरी भाषा में पोर्ट करना AI के लिए एक बहुत अच्छा उपयोग मामला है।
00:17:27यदि आप इसके बारे में सोचें, तो AI निश्चित रूप से नया कोड लिखने में संघर्ष कर सकता है।
00:17:32यह वह कोड नहीं लिख सकता है जिसे आप लिखना चाहते थे, कोड सम्मेलनों का पालन न करें
00:17:36या शैलियां जिनका आप पालन करना चाहते थे, और यह चीजों को गड़बड़ भी कर सकता है।
00:17:40अब, यह निश्चित रूप से AI नया सॉफ्टवेयर बनाने के लिए भी अद्भुत है।
00:17:43लेकिन आप वहां एक पोर्ट के साथ समस्याओं का एक अलग सेट का सामना करते हैं।
00:17:47सबसे बड़ा लाभ यह है कि आपके पास AI के लिए सिर्फ देखने और अनुवाद करने के लिए एक कोड बेस है,
00:17:53जो कुछ ऐसा है जो AI कर सकता है, और आपके पास वहां एक टेस्ट सुइट है।
00:17:57तो बनाने के लिए बहुत कुछ है।
00:17:59यह AI के लिए एक अच्छा उपयोग मामला है, जैसा कि प्रतीत होता है, और जैसा कि यह पोर्ट स्पष्ट रूप से साबित करता है।
00:18:04और मुझे लगता है कि यह यहाँ सबसे दिलचस्प निष्कर्ष है।
00:18:08साथ ही यह भी कि आप उन परियोजनाओं से निपट सकते हैं जो बस असंभव रही होतीं
00:18:12पहले निपटना।
00:18:13फिर से, हर किसी के लिए नहीं, लेकिन कुछ आकारों की कुछ कंपनियों के लिए।
00:18:18यह दिलचस्प हो सकता है।
00:18:19AI की मदद से विरासत सॉफ्टवेयर का आधुनिकीकरण करना एक बहुत अच्छा उपयोग मामला हो सकता है।
00:18:26और यह दिखाता है और साबित करता है कि ऐसा किया जा सकता है।
00:18:30अब, निश्चित रूप से, BUN 1.4 अभी बाहर नहीं आया है।
00:18:32हम देखेंगे कि क्या सब कुछ क्रैश हो जाता है और उन्हें अब से एक महीने में वापस जाना पड़ता है।
00:18:36आप इसे पूरी तरह से खारिज नहीं कर सकते, लेकिन मुझे व्यक्तिगत रूप से नहीं लगता कि ऐसा होगा।
00:18:40कुछ शुरुआती अपनाने वाले इसे पहले से ही प्रोडक्शन में इस्तेमाल कर रहे हैं, जैसे कि क्लाउड कोड सीएलआई।
00:18:47इसका व्यापक रूप से परीक्षण और समीक्षा की गई है, भले ही, निश्चित रूप से, AI द्वारा, मानव समीक्षकों द्वारा नहीं।
00:18:54लेकिन मुझे पूरा विश्वास है कि यह काम करेगा और मुझे यह एक काफी प्रभावशाली उपलब्धि और AI का काफी प्रभावशाली उपयोग लगता है।
00:19:03लेकिन हमेशा की तरह, मैं यह सुनने में भी रुचि रखता हूं कि इन सबके बारे में आपके क्या विचार हैं।