Microsoft को core C# code को फिर से लिखने के लिए Rust developers की तलाश
Microsoft की core Office 365 services पर काम करने के लिए Rust developers की job ad ने इस बहस को जन्म दिया है कि क्या यह C# और .NET से दूरी का संकेत है। अधिकांश टिप्पणीकारों का निष्कर्ष है कि ऐसा नहीं है: Microsoft C# का व्यापक उपयोग जारी रखेगा, जबकि Rust को केवल उन ultra-performance-sensitive और security-critical components के लिए चुनिंदा रूप से अपनाएगा, जहाँ hyperscale पर GC pauses और resource usage महँगे पड़ जाते हैं। यह चर्चा आगे Rust और garbage-collected languages की तुलना तक फैलती है, जिसमें memory safety, concurrency, tooling, और Rust के लिए teams को hire या retrain करने की व्यावहारिक कठिनाइयाँ शामिल हैं।
Microsoft के Rust अपनाने का दायरा
- चर्चा Office 365 routing/core services के लिए एक single job posting पर केंद्रित है, न कि .NET के wholesale rewrite या C# को छोड़ने पर।
- कई टिप्पणियाँ ज़ोर देती हैं कि Microsoft कई भाषाएँ उपयोग करता है (C#, C++, Rust, JS/TS, Go, Python, Java, आदि) और अभी भी .NET में भारी निवेश कर रहा है।
- Rust को performance‑critical या low‑level components के लिए replacement के रूप में देखा जा रहा है, जो पहले C/C++ में लिखे जाते रहे होंगे, न कि सामान्य business logic के लिए।
Performance, GC, और Scale पर Cost
- कई लोग तर्क देते हैं कि performance मुख्य चालक है: cloud scale पर, CPU/memory में मामूली gains भी बड़े cost savings में बदल सकते हैं।
- GC pauses और tuning, GC भाषाओं (C#, Java, आदि) में high-throughput/low-latency services के लिए recurring pain points हैं, खासकर जब “extra 9s” of latency हासिल करनी हो या resource spend कम करना हो।
- कुछ लोग नोट करते हैं कि .NET काफी बेहतर हुआ है और कई बड़े internal services के लिए “fast enough” हो सकता है, लेकिन O365 scale पर “fast enough” का अर्थ सापेक्ष हो जाता है।
Safety, Ownership, और Lifetimes
- कई टिप्पणियाँ Rust के ownership/lifetime system को memory safety से परे भी फ़ायदेमंद बताती हैं:
- Files, sockets, mutexes, temp dirs, आदि के लिए deterministic resource cleanup (RAII)।
- स्पष्ट, non-shared ownership, जो subtle bugs और data races को कम करता है।
- Counterpoints:
- C# पहले से ही memory-safe है, और
IDisposableतथाusingdeterministic cleanup के लिए मौजूद हैं, लेकिन ये opt-in हैं और इनका misuse करना या इन्हें भूल जाना आसान है। - Rust का borrow checker एक शक्तिशाली static analysis के रूप में वर्णित है, लेकिन जादू नहीं; कुछ लोग इसके runtime व्यवहार को लेकर गलतफहमियाँ भी स्पष्ट करते हैं।
- C# पहले से ही memory-safe है, और
Async, Parallelism, और Runtimes
- इस पर बहस है कि क्या ARM और modern workloads GC’d runtimes बनाम native code का मूल्य बढ़ाते हैं।
- .NET के async/await, ThreadPool, और work-stealing schedulers को परिपक्व और scalable माना गया है।
- एक अलग thread BEAM/Erlang की concurrency और fault-tolerance की तुलना .NET/JVM से करता है; कोई consensus नहीं है, लेकिन BEAM को “true” massive concurrency के लिए सराहा जाता है।
Rust Ecosystem, Tooling, और Jobs
- Rust tooling और ecosystem (cargo, crates) की व्यापक रूप से प्रशंसा की जाती है।
- Windows पर बड़े MSVC toolchains और कभी-कभी admin rights की आवश्यकता की शिकायतें हैं; GCC/MinGW एक हल्का लेकिन “janky” विकल्प माना जाता है।
- Rust job market को छोटा और blockchain तथा infra/security की ओर झुका हुआ माना जाता है; अनुभवी Rust devs को hire करना कठिन है।
- कुछ लोग मौजूदा stacks में Rust को incremental तरीके से introduce करने की सलाह देते हैं; अन्य tech-stack fragmentation और build complexity को लेकर चेतावनी देते हैं।
Overall Sentiment
- व्यापक सहमति है कि:
- C#/.NET और Rust साथ-साथ मौजूद रहेंगे।
- Rust चुनिंदा, ultra-critical components के लिए एक मजबूत fit है।
- Rewrites को concrete performance, security, या operational wins से justify करना चाहिए, केवल hype से नहीं।