- Ubuntu द्वारा Rust अपनाना यह दिखाता है कि technology adoption cycle में Rust early adopter चरण से chasm पार करके mainstream चरण की ओर बढ़ रहा है
- Canonical ने Rust को नए foundational software की default language के रूप में अपनाया है, जिससे C, C++, और कुछ Python उपयोग की जगह ली जा रही है, और memory-safe utilities के विकास में वित्तीय व प्रतिष्ठात्मक दोनों स्तरों पर निवेश किया जा रहा है
- क्योंकि early majority उपयोगकर्ता "industry standard" और मौजूदा workflow के साथ compatibility चाहते हैं, इसलिए drop-in तरीके से utilities को बदलना chasm पार करने की मुख्य रणनीति है
- Rust की standard library expansion समस्या फिर से उभरकर सामने आई है, और 2016 में अस्वीकार की गई "Rust Platform" अवधारणा शुरुआती बहुसंख्यक उपयोगकर्ताओं के लिए वास्तव में अधिक उपयुक्त हो सकती है—इस पर पुनर्विचार हो रहा है
- adoption को investment से जोड़ने वाली संरचना और open source community की empathy-आधारित समावेशिता Rust की अगली growth stage के लिए अनिवार्य है
Rust का 'chasm पार करना' हर क्षेत्र में अलग है
- Rust ने Technology Adoption Life Cycle में chasm पार किया है या नहीं, यह क्षेत्र पर निर्भर करता है
- Amazon के भीतर बड़े पैमाने के data plane या resource-aware agent बनाने में Rust ने मजबूत जगह बना ली है, लेकिन सामान्य development के लिए इसे अभी भी कई लोग जरूरत से ज्यादा मानते हैं
- Safety Critical Software क्षेत्र में सफलता के उदाहरण हैं, लेकिन उद्योग का बड़ा हिस्सा अब भी "wait-and-see" mode में है
"reference customers" का महत्व
- chasm पार करने की कुंजी है reference customers हासिल करना
- early adopters "change agent" खरीदते हैं, लेकिन early majority मौजूदा operations की productivity बढ़ाना चाहती है और discontinuity को न्यूनतम रखना चाहती है
- अपने जैसे किसी संगठन की सफलता देखना नई technology adoption के लिए सबसे प्रभावी प्रेरक तत्व होता है
- S3 टीम की Rust सफलता बड़े service teams के लिए प्रभावशाली है, लेकिन CRUD service teams के लिए उतनी सीधे तौर पर आश्वस्त करने वाली नहीं—यह इसका उदाहरण है
Ubuntu (Canonical) की Rust adoption strategy
- Rust Nation में Canonical के VP of Engineering Jon Seager ने "Rust Adoption At Scale with Ubuntu" keynote प्रस्तुत किया
- Canonical अब तक अपनी development languages को Python, C/C++, और Go तक सीमित रखता था, लेकिन हाल में Rust को जोड़कर नए foundational work की default language के रूप में अपनाया है
- यह Lars Bergstrom के Google के भीतर Rust adoption keynote की तरह vision और practicality दोनों को साथ लेकर चलने वाला दृष्टिकोण है
- यही वे सटीक गुण हैं जो early adopters से early majority की ओर संक्रमण के लिए चाहिए
memory-safe utilities में निवेश
- Jon Seager ने कहा कि Ubuntu को memory-safe foundational utilities बनाने में "pay it forward" भावना के साथ समर्थन देना चाहिए
- Canonical, Trifecta Tech Foundation के sudo-rs, ntpd-rs विकास और uutils के coreutils कार्य को वित्तीय सहायता दे रहा है
- संरचना ऐसी है कि Ubuntu पहले नई चीज़ों को आज़माए और validate करे, ताकि बाद में अन्य distributions उसका लाभ उठा सकें
- मौजूदा workflow में सीधे फिट हो जाने वाली drop-in utilities early majority की "discontinuity न्यूनतम" रखने की आवश्यकता से मेल खाती हैं
नए adopters की मांग: standard library expansion
- डिनर के दौरान Jon Seager ने कहा कि Rust की छोटी standard library policy पर फिर से विचार किया जाना चाहिए
- यह कई वर्षों से दोहराई जा रही मांग है; विचार सिर्फ बड़ी standard library देने का नहीं, बल्कि "Battery Packs" नामक project-form alternative का है
- 2016 में प्रस्तावित Rust Platform (कुछ specific crates को extended standard library के रूप में मान्यता देने की अवधारणा) उस समय early adopters ने ठुकरा दिया था, लेकिन अब इसे early majority के लिए उपयुक्त माना जा रहा है
- उस समय यह राय प्रमुख थी कि
Cargo.toml में dependency जोड़ देना ही पर्याप्त है
growth के लिए बदलाव की आवश्यकता
- early adopters से early majority की ओर बढ़ने के लिए "state-of-the-art" नहीं बल्कि "industry standard" वाला संदेश चाहिए
- Rust उद्योग में पहचान बनाने में सफल रहा है; अब इसे "क्या बन सकता है" नहीं, बल्कि "वास्तव में क्या है" के आधार पर सबसे अच्छा विकल्प बनना होगा
- ये दोनों बातें कभी-कभी तनावपूर्ण संबंध में हो सकती हैं
- pragmatists तक marketing करने के लिए धैर्य, उस उद्योग की समस्याओं की समझ, और industry conferences में भागीदारी जरूरी है
adoption को investment से जोड़ने वाली संरचना
- Rust adoption के विस्तार के साथ Rust project और ecosystem पर demand बढ़ती है
- Canonical जैसे open source संगठनों के लिए $$ से अधिक संगठनों के बीच संबंध बनाना और योगदान महत्वपूर्ण है
- Rust for Linux developers को शुरुआत में Rust maintainers की मदद मिली, लेकिन धीरे-धीरे उन्होंने खुद bugs fix करने शुरू किए और maintainers mentor की भूमिका में आ गए
- एक दिलचस्प रुझान यह है कि funding अक्सर Rust को पहले से अपनाने वाली कंपनियों से नहीं, बल्कि अपनाने पर विचार कर रही कंपनियों से आती है
- संगठन के भीतर मौजूद early adopter व्यक्ति adoption को आगे बढ़ाते हैं और "table stakes" features के विकास के लिए budget आवंटित करते हैं
- Rust Foundation Silver Member Directory के Alexandru Radovici के अनुसार, कई safety-critical software कंपनियों के पास Rust की कमियों को भरने के लिए धन तो है, लेकिन वे उसका उपयोग कैसे करें यह नहीं जानते
open source की भूमिका और empathy का महत्व
- open source chasm पार करने के लिए शानदार platform है, लेकिन cliques और "oral traditions" प्रवेश बाधा बन सकते हैं
- गलत शब्दावली के उपयोग पर ideas खारिज हो सकते हैं, या एक असभ्य जवाब नया contributor दूर कर सकता है
- Rust की अगली growth stage के लिए सबसे ज्यादा जरूरी है open source में empathy
- मुख्य बात यह है कि Rust वहाँ जाए जहाँ वह लोगों की मदद कर सकता है, और उन्हें support व empower करे
1 टिप्पणियां
Hacker News की राय
Ubuntu का GPL नहीं वाले लाइसेंस का userland इस्तेमाल करने का मतलब यह हो सकता है कि Linux ecosystem में TiVoization को और ज़्यादा जगह मिले
अगर यह systemd पक्ष के Amutable की दिशा के साथ जुड़ता है, तो बंद Linux distribution भी आ सकती हैं जिनमें user modification संभव न हो
कंपनियों के लिए पूरी तरह signature-verified बंद environment आकर्षक हो सकता है। ऐसा दुनिया जहां “ls” या “cd” भी closed source हों, कुछ अजीब तरह से प्रलय-जैसी लगती है
Rust के सामने असली chasm है safe ABI के साथ dynamic linking support
अगर एक library बदलने पर भी safety बनी रहे, और C-स्तर की ABI stability मिले, तभी C/C++ दुनिया में Rust adoption सच में बढ़ सकता है
Ubuntu के Rust अपनाने से भी बड़ा मुद्दा यह है कि वह अब भी महत्वपूर्ण builds के लिए curl|bash scripts पर निर्भर है
firefox-snap का snapcraft.yaml यह साफ दिखाता है
Rust Coreutils project का MIT license होना मुझे खटकता है
FSF की philosophy पर आलोचना हो सकती है, लेकिन GPL open source की रक्षा करता है। अगर Canonical पूरे Ubuntu को MIT की ओर ले जाए, तो क्या होगा कहना मुश्किल है
rust-coreutils की वजह से CUDA Toolkit install नहीं हो पाया। संबंधित issue NVIDIA forum में है
“Crossing the chasm” की अवधारणा दिलचस्प है। Ubuntu के coreutils मामले के अलावा भी Rust के सामने कई और अंतराल हैं
Rust for Linux या automotive industry के लिए Rust जैसे प्रयास हैं, लेकिन अभी भी चीज़ें driver स्तर पर अटकी लगती हैं
बाद में standard library बदल देने की दलील खतरनाक है। users को “chasm” नहीं, बल्कि स्थिर और उच्च-गुणवत्ता वाला system चाहिए
Rust ecosystem की अपरिपक्वता adoption रोकने वाली वजह है। कई crates अब भी 1.0 से पहले हैं या बस साधारण C wrappers हैं। crypto से जुड़ी चीज़ें ठीक हैं, लेकिन SAML जैसी चीज़ें ढूँढना कठिन है
libcजैसे crate, जो API से गहराई से जुड़े हैं, उनके लिए version bump करना मुश्किल होता है। मैं निजी तौर पर blessed.rs जैसी curated list देखता हूँRust में C++ code का सिर्फ “vibe-translate” करके license बदलने की एक प्रवृत्ति है। उदाहरण के लिए sudo-rs का safety record C version से भी खराब है
.NET की बहुत बड़ी standard library सच में बहुत सुविधाजनक है। ज़्यादातर काम standard तरीके से हो जाते हैं, और अगर कोई अजीब implementation हो तो अधिकतर लोग उसे standardize करने की कोशिश करते हैं
Rust का std/core पहले ही इतना बड़ा है कि microcontrollers पर weak symbol जैसी तरकीबें लगानी पड़ती हैं।
छोटी stdlib API stability बनाए रखने और maintenance burden कम करने में मदद करती है। C++ इस समस्या से जूझ चुका है, इसलिए Rust को सावधानी रखनी चाहिए