- JavaScript की छोटी utility libraries अब LLM की code generation क्षमता के कारण धीरे-धीरे गैर-ज़रूरी होती जा रही हैं
- उदाहरण के तौर पर
blob-util एक 10 साल पुराना npm package है, जो Blob processing toolkit है, लेकिन अब AI तुरंत मिलते-जुलते code generate कर सकता है
- यह बदलाव कम dependencies और तेज़ development को संभव बनाता है, लेकिन सीखने और समझने के अवसरों के नुकसान का कारण भी बनता है
- Node.js और browser की built-in capabilities के विस्तार के बाद, LLM अब छोटी libraries के अंत को और तेज़ कर रहा है
- आगे चलकर open source का मूल्य रचनात्मक, बड़े पैमाने के और विशेषज्ञता वाले क्षेत्रों में बना रह सकता है
छोटे open source के पतन और LLM का प्रभाव
- 10 साल पहले बनाया गया
blob-util, JavaScript के Blob object को string या ArrayBuffer में बदलने वाली सरल utilities का संग्रह है, और इसे हर हफ्ते 50 लाख से अधिक बार download किया जाता है
- लेखक ने इसे तब बनाया था जब उन्होंने देखा कि PouchDB users
Blob handling को लेकर भ्रमित हो रहे थे
- वर्तमान में लगभग 80% developers अपने काम में AI का उपयोग कर रहे हैं, और इसकी वजह से साधारण utilities को LLM से बदला जा सकता है
- उदाहरण के लिए Claude तुरंत
Blob को ArrayBuffer में बदलने वाला TypeScript function generate कर देता है
- Claude का परिणाम
blob-util से मिलता-जुलता है, लेकिन ज़्यादा verbose है और type validation जरूरत से ज़्यादा करता है, जबकि error handling बेहतर रूप में दिखाई देती है
- लेखक कहते हैं कि यह बदलाव कम dependencies और बेहतर code robustness के रूप में देखा जा सकता है
सीखने-केंद्रित open source के मूल्य में कमी
blob-util के README में Kirby character का उपयोग करने वाला tutorial शामिल है, और इसका उद्देश्य केवल functionality देना नहीं बल्कि JavaScript सीखने में मदद करना भी था
- LLM-केंद्रित development environment में तुरंत जवाब समझ और शिक्षा पर प्राथमिकता पा लेते हैं, इसलिए ऐसे learning-oriented open source की ज़रूरत घटती जा रही है
- documentation automation के लिए
llms.txt जैसे प्रयास documentation के अर्थ को ही फिर से परिभाषित कर रहे हैं
open source की नई दिशा
- लेखक अभी भी open source जारी रखे हुए हैं, लेकिन उनका मानना है कि छोटी और कम-मूल्य libraries का दौर खत्म हो चुका है
- Node.js और browser की built-in features (
node:glob, structuredClone आदि) के विस्तार से यह गिरावट पहले ही शुरू हो चुकी थी
- LLM ने उस प्रवाह को निर्णायक रूप से तेज़ कर दिया
- जो libraries शैक्षिक भूमिका निभाती थीं, जैसे Underscore.js, उनकी ज़रूरत भी कम हो रही है
- साधारण array grouping जैसी functionality अब standard API से हल की जा सकती है
जिन open source में मूल्य बचा रहेगा, उनकी शर्तें
- मूल्य अब उन बड़े पैमाने के, रचनात्मक और विशेषज्ञता वाले projects पर केंद्रित होगा जिन्हें LLM आसानी से generate नहीं कर सकता
- उदाहरण के लिए
fuite project और memory leak detection research ऐसे रचनात्मक काम हैं जिन्हें LLM के लिए दोहराना कठिन है
- भविष्य में open source का अर्थ नए विचारों और मानवीय रचनात्मकता में होगा
- उदाहरण के तौर पर Dominic Gannaway द्वारा विकसित Ripple.js framework का उल्लेख करते हुए मानव प्रयोगधर्मिता पर ज़ोर दिया गया है
निष्कर्ष
- LLM ने कुछ open source को पुराना और अप्रासंगिक बना दिया है, लेकिन अब भी open source सृजन के नए रूपों के अवसर मौजूद हैं
- मानव developers की रचनात्मकता और प्रयोगधर्मिता को AI युग में open source ecosystem की स्थिरता का मुख्य तत्व बताया गया है
4 टिप्पणियां
मुझे लगता है कि अगर left-pad जैसी अजीब इकोसिस्टम आदतों को ही रोका जा सके, तो यह ठीक है।
जैसे-जैसे यह ऐसा दौर बनता जा रहा है जहाँ किए गए प्रयास के मुकाबले संतुष्टि कम मिलती है, लगता है कि छोटी utilities को maintenance में लगने वाली मेहनत की तुलना में कम मूल्यवान मानकर नज़रअंदाज़ किया जाएगा।
Hacker News राय
आजकल लगभग 80% डेवलपर AI को अपने काम में इस्तेमाल कर रहे हैं
blob-utilजैसी utilities अब ज़्यादातर सीधे LLM से बनवाई जा सकती हैंलेकिन यह तरीका दो धार वाली तलवार है। बिना सत्यापित code आगे चलकर maintenance का बोझ छोड़ सकता है और edge cases में fail भी हो सकता है
इसलिए Java ecosystem में Apache Commons जैसी भरोसेमंद standard utility collections ने अपनी जगह बना ली है
वहीं LLM से बना code ऊपर से तार्किक दिखता है, लेकिन उसमें अजीब bugs छिपे होने की संभावना ज़्यादा होती है
AI जब बड़े पैमाने पर code और tutorials बना रहा है, तब हम ऐसे दौर में प्रवेश कर चुके हैं जहाँ quality गिरावट और spam तेज़ी से बढ़ रहे हैं
personal blogs या छोटी libraries बनाने की प्रेरणा कम हो रही है
LLM से बने लेख भी लगभग उसी स्तर के लगते हैं, इसलिए उल्टा उन्हें filter करना आसान हो गया है
मैं
devcontainerके अंदर code चलाकर tutorial की असली value जांचता हूँ। अगर काम करता है तो देखने लायक है, नहीं तो छोड़ देता हूँJS का micro-dependency hell एक बुरा सपना था
अब उम्मीद है कि वह दौर खत्म हो और डेवलपर फिर से coding सीखने वाले समय में लौटें
jQueryयाlodashकी तरह छोटी utility collections को एक package में बाँधना सबसे अच्छा नतीजा थाvibe coderका दौर आ गया है”किसी ने पूछा कि “binary tree को उलटने वाली समस्या” सच में होती भी है क्या
“छोटी और कम value वाली libraries का दौर खत्म हो गया” वाली बात से सहमति जताई गई
Go language में शुरू से dependency hell नहीं था, और npm की समस्या ज़्यादा cultural कारणों से थी
अब utilities से ज़्यादा वास्तव में काम करने वाले products बनाना अधिक valuable और मज़ेदार लगता है
मेरा मानना है कि micro-dependencies अपने आप में ही बेअर्थ हैं
बेहतर है कि function list को Markdown में लिख दिया जाए ताकि लोग उसे copy कर सकें
C का header file-आधारित छोटी library वाला तरीका ज़्यादा practical है
यह सवाल उठा कि “अब किस रूप का open source मायने रखेगा”
क्योंकि public किया गया code आख़िरकार AI training data में समा जाता है
इसलिए पूरी FOSS के बजाय source-available model एक विकल्प हो सकता है
लेखक ने ज़ोर दिया कि contribution का अर्थ सिर्फ नाम दर्ज हो जाने से बड़ा है
मेरा विश्वास है कि open source गायब नहीं होगा, बल्कि और मज़बूत होगा
सचमुच रचनात्मक डेवलपर AI का इस्तेमाल करके ऐसे innovations बनाएँगे जो कंपनियाँ नहीं बना सकतीं
open source अब भी वास्तविक value validation का मंच है, और AI के ज़रिए सीमाएँ पार करके सीखने की जगह भी
लेकिन अनुमान है कि सरकारें और बड़ी कंपनियाँ local AI systems को regulate करना चाहेंगी, और जल्दी ही “नागरिक कौन-सा AI इस्तेमाल कर सकते हैं” इसकी सीमाएँ तय होंगी
review और policy discussion में समय बर्बाद हो रहा है, और खासकर compiler जैसे जटिल क्षेत्रों में AI बिल्कुल मददगार नहीं है
किसी ने ज़ोर दिया कि “package के रूप में न जुड़े तब भी, code को public करना अपने आप में valuable है”
अगर LLM code लिख दे, तो सीखने का बोझ कम हो जाता है और गहरे विषयों पर ध्यान देना आसान होता है
उदाहरण के लिए, किसी ने बताया कि 14 साल तक
rubygems.orgचलाने के बाद वह corporatized structure से निराश होकर अलग हो गयायह भी कहा गया कि “AI से code लिखवाना भी आख़िर dependency का ही एक रूप है”
बिना verification के copy-paste करना किसी external library को जोड़ने से अलग नहीं है
2024 की शुरुआत में एक छोटा प्रोजेक्ट बनाते समय
मैंने claude 3.5 से pure javascript में इस्तेमाल होने वाला store state मॉड्यूल बनाने को कहा था,
और मुझे याद है कि मैं इस बात से हैरान था कि उसने कितना संक्षिप्त, लेकिन migration जैसी स्थितियों को भी संभालने वाला कोड लिख दिया।
मुझे लगता है कि यह स्वाभाविक है, क्योंकि छोटे libraries के मामले में वैसे भी बहुत-से लोग समान सोच के साथ public code जारी कर चुके होंगे, और AI के लिए उसे एक संरचित रूप में ढालना आसान होगा।
copyparty की तरह, ऐसी चीज़ें जिन्हें कोई भी सोच सकता है, लेकिन किसी एक व्यक्ति के लिए लंबे समय तक maintain करना मुश्किल होता है।
मुझे इस बात का अफसोस ज़रूर है कि आगे चलकर शायद उन projects को देखना मुश्किल हो जाए, जिन्हें ऐसे लोग आखिर तक धकेलते हैं और जो अंत में बहुत साफ़-सुथरे और परिष्कृत रूप में सामने आते हैं।