Rust, Python, TypeScript: नई प्रोग्रामिंग त्रिमूर्ति (Trifecta)
(smallcultfollowing.com)- Rust, Python, TypeScript के आने वाले समय में software development की केंद्रीय भाषाओं के रूप में उभरने की उम्मीद है
- AI coding tools के व्यापक होने से developers की language loyalty कमजोर हो रही है, और practical तथा मजबूत ecosystem वाली भाषाएँ चुनी जा रही हैं
- idea-oriented programming नाम का एक नया paradigm उभर रहा है, जिसमें developers design और review पर ध्यान देते हैं और implementation AI को सौंपते हैं
- इन तीनों भाषाओं में advanced type system और मजबूत package manager ecosystem दोनों मौजूद हैं, इसलिए ये AI उपयोग, collaboration और error prevention के लिए अनुकूल हैं
- error message quality, ecosystem, platform integration जैसे मानदंड भी अब लगातार अधिक महत्वपूर्ण होते जा रहे हैं
Rust, Python, TypeScript के उभरने की वजह
- Rust system software, high-performance की जरूरत वाले क्षेत्रों, type safety और memory efficiency में बेहतरीन है
- Python experiments, prototyping, और math/science libraries के उपयोग के लिए सबसे उपयुक्त है, जिससे ideas को जल्दी validate किया जा सकता है
- TypeScript को web, browser और कई platforms पर तुरंत लागू किया जा सकता है, और इसका मजबूत type system तथा npm ecosystem अच्छी scalability देता है
AI से बदलता development paradigm: idea-oriented programming
- AI coding tools (Large Language Model) के सार्वभौमिक हो जाने से programming अब 'idea बनाना → AI द्वारा implementation → इंसान द्वारा design/review' की दिशा में बदल रही है
- Vibe coding अधिक spontaneous और अस्पष्ट निर्देशों के करीब है, जबकि Idea-oriented programming design, structure और sustainable principles पर केंद्रित है
- developers मुख्य design/दिशा तय करते हैं, AI दोहराव वाले/implementation tasks संभालता है, जिसे architect और apprentice के रिश्ते से तुलना की गई है
language selection criteria में बदलाव
- पहले लोग अपनी सबसे परिचित भाषा (जैसे Rust) में जल्दी काम कर लेते थे, लेकिन AI के साथ काम करते समय जरूरी libraries, performance, platform integration ज्यादा महत्वपूर्ण हो गए हैं
- project के अनुसार Python (machine learning), TypeScript (web·VSCode Extension), Rust (default choice) जैसी स्थिति-आधारित सर्वश्रेष्ठ भाषा चुनी जा रही है
type system का महत्व
- AI coding assistance के माहौल में advanced type system और भी अधिक महत्वपूर्ण हो गया है
- Rust और TypeScript state, data validity और mistakes prevention को code level पर enforce करते हैं, जिससे AI की गलती की संभावना भी कम होती है
- Python भी mypy, pydantic जैसी settings के जरिए type safety हासिल कर सकता है
ecosystem और package manager का बढ़ता महत्व
- AI के साथ development करते समय बड़ी libraries का उपयोग आसान हो जाता है, इसलिए ecosystem का आकार और package manager की quality और महत्वपूर्ण हो जाती है
- Rust(cargo), TypeScript(npm), Python(uv आदि) — तीनों के पास modern package managers हैं
छोटी syntax समस्याएँ और workarounds कम महत्वपूर्ण, लेकिन error messages और guides की quality अब भी अहम
- LLM(AI) बार-बार होने वाली syntax mistakes को जल्दी ठीक कर सकता है, लेकिन error messages/guides स्पष्ट होने चाहिए ताकि correction प्रभावी हो सके
- Rust community की language ergonomics पर मेहनत की तरह, AI भी अच्छे error messages का उपयोग करके बेहतर code बना सकता है
निष्कर्ष: LLM शक्तिशाली development tools सबके लिए खोल रहा है
- idea-oriented programming के युग में junior developers भी Principal Engineer स्तर का design/coordination अनुभव प्राप्त कर सकते हैं
- coding के अपने ‘flow’ के कम होने की चिंता है, लेकिन design और idea-केंद्रित development experience आगे और अधिक मूल्यवान होने की संभावना है
► AI के साथ काम करने के इस युग में, Rust, Python, TypeScript मजबूत types, ecosystem और platform support के बल पर development जगत के standard के रूप में स्थापित हो रहे हैं
14 टिप्पणियां
तीनों में से जिस चीज़ से मैं सबसे ज़्यादा परिचित हूँ वह TS है, जो मैं कर सकता हूँ वह Python है, और जिसके बारे में ज़्यादा नहीं जानता लेकिन करना चाहता हूँ वह Rust है...
जो भी हो, उन तीनों में Java शामिल नहीं है, यही सबसे बड़ी राहत है
coder => फीचर डेवलपमेंट आर्किटेक्चर बनाने वाला डेवलपर => उससे भी बड़ा आर्किटेक्चर (system, network, security) => planning
की दिशा में अनुभव विकसित होने के इस प्रवाह में, लगता है कि coder के लिए मैदान में सीखने के मौके और कम हो जाएंगे.
अगर idea-केंद्रित programming मुख्यधारा बन जाती है,
तो कम से कम इतना तो बुनियादी होगा ही कि coder अकेले AI-आधारित full-stack संभालना जानता हो, ऐसा लगता है d
मुझे अब भी high-performance code में C से Rust पर जाने की पर्याप्त वजह नहीं मिलती। Zig जैसी भाषा, जिसकी syntax कम से कम कुछ हद तक सरल है, e2e development के लिए बेहतर लगती है, और बाकी मामलों में तो profiling के बाद high-level language से call होने वाले हिस्से ही implement किए जाते हैं (मैं Python उपयोगकर्ता हूँ)। Rust इस्तेमाल करने पर GIL control जैसी दूसरी भाषाओं के साथ interaction की development cost भी अपेक्षा से काफ़ी बढ़ जाती है। C को तो वैसे भी दूसरी भाषाएँ शुरू से ही expect करती हैं।
Zig इस्तेमाल करने से बेहतर तो मैं C ही इस्तेमाल करूँगा हाहा...
मैं zig का समर्थन करता हूँ :)
मेरे हिसाब से C से Rust पर जाने की असली वजह प्रोडक्टिविटी है। memory safety support भी अच्छा है, लेकिन सिर्फ
cargoको ही देखें तो भी शिफ्ट करने की पर्याप्त वजह बनती है.Python extension module बनाते समय, भाषा कोई भी हो, GIL को संभालना हमेशा मुश्किल होता है। यह बात C/C++ पर भी समान रूप से लागू होती है। हाँ, अगर extension module लिखने में मदद करने वाली libraries या tools का इस्तेमाल करें तो बात अलग है, और RUST में भी
PyO3नाम का एक बेहतरीन crate मौजूद है.साथ ही, C डेवलपर के नज़रिए से देखें तो zig को संभालना स्वाभाविक रूप से आसान है। मूल रूप से zig खुद भी एक C compiler है, इसलिए header files को सीधे import करके इस्तेमाल किया जा सकता है.
ऐसा सोचा जा सकता है। मेरे अनुभव में PyO3 की तुलना में
python.h(जो zig के अच्छे विकल्प होने का एक कारण भी है) के साथ OS या vectorize level तक नीचे जाकर वापस आना कहीं ज़्यादा आसान था, लेकिन memory management की चिंता न होने के पहलू से देखें तो एक निश्चित पैमाने से ऊपर Rust पक्ष की long-term productivity ज़्यादा हो सकती है.C के आसान लगने की वजह यह भी है कि आधुनिक major भाषाएँ - Python/TS/Go/PHP/Java - या तो उसी पर आधारित हैं या उनका syntax उससे मिलता-जुलता है, इसलिए बात सिर्फ syntax के आसान होने से आगे बढ़कर यह है कि वह ऐसी भाषा है जिससे आप कभी न कभी मिलेंगे, या पहले कभी मिल चुके होंगे। दूसरी ओर Rust ठीक उलटी स्थिति में है, इसलिए उसकी ऊँची value के बावजूद उसे टीम में अपनाने के लिए काफ़ी प्रयास चाहिए। मुझे लगता है कि ऐसा इसलिए है क्योंकि वह evolutionary language से अधिक एक revolutionary language है.
लगता है यह पोस्ट Rust के
rayoncrate बनाने वाले व्यक्ति ने लिखी है।Python और TypeScript अभी भी केंद्रीय भाषाएँ लगती हैं...
लेकिन Rust अभी उस स्तर की स्थिति में नहीं है। शायद इसकी मुश्किल होने वाली धारणा की वजह से।
उम्मीद है कि LLM प्रवेश बाधा को कम कर देंगे और Rust भी एक केंद्रीय भाषा के रूप में उभरेगा।
Niko Matsakis,
rayonसे आगे बढ़कर, Rust के जनक के काफ़ी करीब की स्थिति में हैं। बेशक Graydon Hoare इसके संस्थापक हैं, लेकिन भाषा के सबसे महत्वपूर्ण हिस्सों में सबसे ज़्यादा योगदान Niko ने ही दिया है।यदि आप Rust डेवलपर हैं, तो स्वाभाविक है कि इसमें आपका थोड़ा ज़्यादा लगाव होगा, इसलिए यह थोड़ी पक्षपाती जानकारी हो सकती है! जानकारी साझा करने के लिए धन्यवाद।
PHP सबसे बढ़िया है।
लेकिन हमारे यहाँ तो Java है, है ना?
लगता है
goGC की वजह से बाहर हो गया है।तीन दिग्गज, वाह वाह