डेवलपर्स .NET MAUI से खुश नहीं हैं, लेकिन टीम में किसी को इसकी परवाह नहीं है

डेवलपर्स का कहना है कि Microsoft का cross-platform UI framework .NET MAUI अस्थिर, खराब तरीके से maintained, और लंबे समय से चले आ रहे bugs से भरा हुआ है, जिससे साधारण apps बनाना और debug करना भी मुश्किल हो जाता है। कई लोग इसे एक व्यापक pattern का हिस्सा मानते हैं, जिसमें Microsoft अपने ही client UI frameworks में कम निवेश करता है, बड़े products में उन्हें शायद ही dogfood करता है, और अंततः उन्हें stagnate होने देता है। नतीजतन, टीमें shared .NET code की appeal के बावजूद MAUI और संबंधित stacks छोड़कर web technologies, Flutter, Avalonia, या पूरी तरह native apps जैसे विकल्पों की ओर जा रही हैं।

.NET MAUI की स्थिति

  • कई टिप्पणीकारों का कहना है कि MAUI अस्थिर और अपरिपक्व है: प्लेटफ़ॉर्मों के बीच लेआउट असंगत हैं, बुनियादी कंट्रोल्स गलत व्यवहार करते हैं, कलेक्शन व्यूज़ धीमे हैं, बिल्ड और डिप्लॉयमेंट यादृच्छिक रूप से विफल होते हैं, और खुद MAUI के अंदर क्रैश या मेमोरी लीक होते हैं।
  • कुछ लोग बताते हैं कि मामूली फीचर्स (pull-to-refresh, वीडियो स्ट्रीमिंग, वीडियो के साथ list views) में हफ्तों लग जाते हैं और फिर भी वे काम नहीं करते, जबकि इन्हें अन्य frameworks में कुछ दिनों में दोबारा बनाया जा सकता है।
  • खास समस्याएँ: Windows/iOS/macOS builds में path bugs, debugging का बार-बार टूटना, धीमे iteration times, और अस्पष्ट त्रुटियों वाले लंबे समय से चले आ रहे bugs।
  • कहा जाता है कि underlying native bindings, खासकर iOS पर, अधूरे हैं; Apple के नए frameworks और Swift libraries को पूरी तरह support नहीं किया जाता।
  • Linux support की कमी को कुछ लोग तुरंत deal-breaker मानते हैं।

Microsoft की रणनीति और dogfooding

  • बार-बार चिंता जताई गई कि Microsoft अपने प्रमुख apps के लिए MAUI (या पिछले GUI frameworks) का उपयोग नहीं करता, जबकि Electron, React + WebView, या Qt पर भारी निर्भर रहता है।
  • कई लोगों को इसमें एक pattern दिखता है: Microsoft नए UI stacks (WinForms, WPF, Silverlight, UWP, Xamarin, MAUI) को market करता है, लेकिन शायद ही कभी long-term commitment देता है या उन्हें अंदरूनी तौर पर व्यापक रूप से उपयोग करता है।
  • कुछ का तर्क है कि यदि Microsoft खुद इसे “critical path” में नहीं रखता, तो MAUI के robust funding या maintenance की संभावना कम है।

विकल्प और सिफारिशें

  • नए काम के लिए MAUI से, और अक्सर Microsoft के सभी UI frameworks से, बचने की मजबूत सलाह दी जाती है।
  • सुझाए गए विकल्पों में शामिल हैं:
    • Web technologies (plain web + MDN, Electron, React, आदि) — सबसे सक्रिय रूप से विकसित, और सबसे समृद्ध ecosystem (CSS, JS APIs, d3-style tooling) के साथ।
    • .NET के लिए Avalonia और Uno Platform; केवल Windows desktop के लिए WPF।
    • आवश्यकताओं के अनुसार Flutter, React Native, Qt, और अन्य।
  • कुछ टीमें Xamarin/MAUI छोड़कर native mobile apps या अन्य cross-platform stacks अपनाती हैं और कुल समय की बचत रिपोर्ट करती हैं।

समुदाय संबंध और issue handling

  • इस बात पर निराशा कि गंभीर, बुनियादी bugs वर्षों तक खुले रहते हैं और बहुत कम visible progress होती है; कहा जाता है कि PRs बिना review के पड़ी रहती हैं।
  • एक high-profile GitHub issue को “Discussions” में स्थानांतरित कर दिया गया, जिसे dismissive माना गया, भले ही underlying bug कहीं और tracked रहा हो।
  • बहस:
    • एक पक्ष कहता है कि rants का tone अनुत्पादक है और टीमें हजारों issues को समान attention नहीं दे सकतीं।
    • दूसरा पक्ष तर्क देता है कि वर्षों की प्रतीक्षा के बाद users का नाराज़ होना जायज़ है, खासकर जब MAUI को production-ready और एक बड़ी कंपनी द्वारा backed बताया जाता है।

Microsoft tooling और QA पर व्यापक चिंताएँ

  • कई टिप्पणीकार MAUI की समस्याओं को Microsoft के broader ecosystem तक बढ़ाते हैं:
    • Windows Phone, UWP, Xamarin, Blazor Server, Azure DevOps, और विभिन्न APIs के साथ पुराने अनुभव half-baked या abandoned माने गए।
    • दावे हैं कि कुछ Microsoft products (जैसे Azure DevOps) stagnate कर रहे हैं क्योंकि ध्यान overlap करने वाले offerings (जैसे GitHub) पर चला गया है।
  • एक thread में बताया गया कि Microsoft ने अतीत में अपनी QA टीम का बड़ा हिस्सा निकाल दिया और contractors तथा agile processes पर निर्भर हो गया; इसके कारण bugs निकलकर बाहर आ जाते हैं, और developer experience के लिए बहुत कम exploratory testing या advocacy होती है।

Cross-platform UI चुनौतियाँ

  • कुछ लोग नोट करते हैं कि cross-platform native UI frameworks स्वाभाविक रूप से कठिन हैं: abstraction की अतिरिक्त परतें bugs के लिए और जगह बनाती हैं, खासकर छोटी teams में।
  • सुझाव: business logic को language-agnostic libraries में साझा करें और जहाँ संभव हो UIs को native या सरल रखें।
  • कुछ लोग पूछते हैं कि क्या React Native या अन्य stacks में भी इसी तरह की परेशानियाँ होती हैं; जवाब मिश्रित हैं, लेकिन इस thread में MAUI को व्यापक रूप से अपने प्रतिस्पर्धियों से बदतर माना गया है।