Microsoft, Windows 11 के UI फ्रेमवर्क WinUI को ओपन-सोर्स बनाने के लिए चरणबद्ध कदम उठा रहा है
(neowin.net)- Microsoft ने Windows 11 के यूज़र इंटरफ़ेस फ्रेमवर्क WinUI को ओपन-सोर्स करने के लिए चरणबद्ध योजना की घोषणा की।
- WinUI में जटिल संरचना और कई proprietary code होने के कारण इसे तुरंत पूरी तरह सार्वजनिक नहीं किया जा सकता ( कौन-सा हिस्सा शेयर किया जा सकता है और कौन नहीं, इसे अलग करने का काम आवश्यक है)।
- ओपन-सोर्सिंग की प्रक्रिया चार चरणों में की जाएगी
- 1 चरण: मिररिंग की आवृत्ति बढ़ाना : WASDK 1.8 रिलीज़ (अगस्त के अंत) के बाद आंतरिक commits को GitHub के साथ अधिक बार sync करके पारदर्शिता और विकास प्रगति को साझा किया जाएगा।
- 2 चरण: बाहरी डेवलपर लोकल बिल्ड : बाहरी डेवलपर सीधे कोड clone करके लोकल पर build कर सकेंगे, और सेटअप तथा डिपेंडेंसी से संबंधित दस्तावेज़ भी उपलब्ध कराए जाएंगे।
- 3 चरण: बाहरी योगदान और टेस्टिंग: कम्युनिटी contributors Pull Request सबमिट करने और लोकल टेस्ट करने के लिए सक्षम होंगे; साथ ही आंतरिक dependencies की सफाई और टेस्ट इंफ्रास्ट्रक्चर सार्वजनिक भी की जाएगी।
- 4 चरण: GitHub-केंद्रित विकास मॉडल में बदलाव : अंतिम चरण में GitHub मुख्य विकास, issue management और community communication का केंद्र बनेगा, तथा आंतरिक mirror सिस्टम चरणबद्ध तरीके से हटाया जाएगा।
- WinUI की ओपन-सोर्स roadmap सार्वजनिक रूप से GitHub परियोजना बोर्ड पर संचालित की जा रही है।
- डेवलपर्स और उपयोगकर्ता फीडबैक, स्पष्ट issue लिखने और मौजूदा टिप्पणियों/सुझावों पर वोट करने जैसे कदमों के जरिए WinUI के विकास में योगदान दे सकते हैं।
3 टिप्पणियां
COM और Webview दोनों अच्छे नहीं लगते... अगर कोई इस्तेमाल करने लायक GUI मिल जाए तो अच्छा होगा।
अब तक Windows के लिए जो UI मैंने इस्तेमाल किए, उनमें सबसे ज़्यादा Qt4 मुझे पसंद आया। Qt5 से लगता है कि उसका फील/महसूस काफ़ी बदल गया था।
सच कहूँ तो मुझे याद है, MFC भी उतना खराब नहीं लगा था... हाहा
Hacker News टिप्पणी
Windows के नेटिव UI टेक्नोलॉजी के भविष्य को लेकर चिंता है।
OS डेवलपर्स आमतौर पर वही उत्पाद बनाते हैं जो वे खुद इस्तेमाल करते हैं—इसलिए ऐप्स ठीक से चलें और native अनुभव consistent रहे। लेकिन Windows 11 में स्थिति उलट गई है। Windows 10 में कम से कम बेसिक Mail/Calendar ऐप ठीक से काम करते थे, जबकि Windows 11 के latest अपडेट में वे हट गए और धीरे चलने वाले WebView wrapper से बदल दिए गए, जिससे रन होने में कई सेकंड लगते हैं।
WinUI community call देखकर लगता है कि नए hires में से ज्यादातर को Windows का कोई अनुभव नहीं, और management भी इस पर ध्यान नहीं देता, इसलिए बेसिक बातें ठीक से सीख नहीं पाए।
एक Windows developer से पूछे जाने वाले सामान्य सवालों का जवाब भी नहीं दे पाते, और यह भी नहीं समझ पाते कि सवाल क्यों पूछा गया।
इसी कारण Windows 11 में इधर-उधर Webview2 instances की भरमार दिखती है।
Windows 11 की UI समस्या यह है कि टीम नए ऐप और फीचर्स पर बहुत केंद्रित है, जबकि पुराने tools को अपडेट नहीं किया जाता।
उदाहरण के लिए Control Panel लगभग वही skin पहने हुए Windows 7 से चल रहा है।
थोड़ा गहराई में जाएँ तो हर कोने में पुराने टूल छिपे मिलते हैं, जैसे Homer Simpson के बालों पर क्लिप चिपकाने वाला meme।
ऊपर से नया लगता है, लेकिन काम करते समय सीमाएँ जल्दी दिखने लगती हैं।
शायद किसी दिन MSO (Office) को Dart और WASM जैसी टेक्नोलॉजी से पूरी तरह दोबारा लिखा जा सकता है।
यानी पूरी तरह native toolkit से अलग होकर Excel की सभी capabilities फिर से बनाई जाएँ और O365 Premium प्लान मॉडल की तरह कहीं से भी accessible हों।
अंत में शायद ChromeOS जैसी स्थिति हो जाए: बस lock/login screen जैसे हिस्सों में simple नेटिव UI रहे, बाकी बहुत हल्का हो।
Microsoft के अंदर की power politics और कठोर ऑफिस राजनीति समझ लें, तो ये बदलाव क्यों हो रहे हैं, स्पष्ट हो जाता है।
लगता है departments एक-दूसरे पर बेहतर दिखने की लड़ाई में हैं।
Windows में कम से कम 10 अलग-अलग UI frameworks का मिश्रण लगता है।
Windows 11 किसी natural history museum की तरह लगता है।
कुछ ऐप पूरी तरह Windows 2000 era की skin में अटके हैं, और कुछ में Metro शैली का भारी-भरकम, तेज रंगों वाला UI दिखता है।
नया Win11 style ऊपर से ठीक लगता है, लेकिन व्यावहारिक रूप से यह "सुअर पर लिपस्टिक" जैसा दिखता है।
Right-click menu इसका अच्छा उदाहरण है: सुंदर दिखता है, पर फीचर्स कम हैं—'More' क्लिक करना पड़ता है, तभी पुराने स्टाइल वाले ज़्यादा options मिलते हैं।
कुल मिलाकर सब कुछ बेतरतीब है।
Microsoft के "Microsoft goals के साथ alignment", "resource allocation में caution" जैसे ऐलान में ईमानदारी नहीं दिखती। अंततः लगता है strategy यह है: framework बाहर दे दो, और passionate external developers को maintain करने दो—resource निकाल लो।
"passionate losers" phrase बहुत negative है। मान लीजिए मुझे Win11 UI में रुचि नहीं या यह ओपन-सोर्सिंग सिर्फ cost-cutting की cynical move लगे, फिर भी जो लोग इसे आगे ले जाने की कोशिश कर रहे हैं, उनके प्रयास का सम्मान होना चाहिए।
साफ शब्दों में, यह वही बड़ी कंपनी वाला जवाब है: कोई guaranteed support नहीं, security bugs के अलावा कोई अतिरिक्त update plan नहीं, अपना काम खुद करो।
मज़ाक में पूछने का जी चाहता है: 'Apache Windows कब आ रहा है?' सीरियस होकर देखें तो अब desktop UI toolkit कोई competitive moat या एंट्री बैरियर नहीं रही। सिर्फ Windows में ही 3-4 अलग official styles circulate कर रहे हैं। लेकिन security और stability अभी भी Windows के enterprise, finance और सरकारी ecosystem में ज़िंदा रहने के लिए critical हैं।
किसी दूसरी कंपनी का UI framework ओपन करने की बात कहीं-कहीं समझ आती है। उदाहरण के लिए Atlassian या AWS के frameworks, क्योंकि वे Jira/AWS में इस्तेमाल होते हैं, इसलिए B2B SaaS में काम आ सकते हैं। लेकिन ये framework क्यों चुनें, यह साफ नहीं। अगर सिर्फ Windows native apps नहीं बना रहे, तो पहले से बेहतर विकल्प मौजूद हैं।
WinUI को मैं failure मानता हूँ।
Windows development community में WinUI को लेकर गंभीरता से निवेश करने वाले लगभग नहीं के बराबर हैं; WinRT/UWP में पहले ही निवेश करके फँसे हुए लोग ही इसमें अटके हैं। Windows 8 के बाद से कई bridges टूट गईं, और community trust गिर गया। साफ दिखता है कि Microsoft issue खुद ठीक करने की बजाय इसे community पर डाल रहा है।
DevExpress, Progress Telerik जैसे vendors भी WinUI controls में खुद निवेश नहीं कर रहे, यानी इन्हें भी WinUI का future भरोसेमंद नहीं लगता। अभी की स्थिति में enterprise apps के लिए practical विकल्प लगभग WinForms और WPF ही हैं। वास्तविक काम में मैंने WinUI3 से बना हुआ कोई app नहीं देखा।
सच में, Microsoft का कोई भी UI framework अब कौन गंभीरता से अपनाएगा? पुराने framework अक्सर पूरी तरह बंद होने से पहले ही आधे-अधूरे छोड़े जाते हैं, और फिर चमकीले नए framework की ओर सभी का ध्यान चला जाता है—परिणाम: सब भुला दिए जाते हैं। उलटे, open-source cross-platform frameworks कई बार बेहतर fundamentals और functionality के साथ ज्यादा mature होते हैं और अच्छी तरह maintained होते हैं। शायद यह WinUI भी अंततः वही fate पाएगी: एक और ignored UWP legacy.
अब Windows में कितने UI frameworks हैं, गिनना मुश्किल हो गया है—बहुत confusing। Open-source करने से असल में अपेक्षा क्या है, यह सवाल है। क्या यह सिर्फ 'open दिखने' की image-building है, या Windows-targeting developers को वास्तविक फायदा मिलता है?
WinUI, UWP का evolved version है और UWP खुद WinRT का evolution है। WinUI का इरादा स्पष्ट है और यह long time से develop हो रहा है (वर्तमान संस्करण WinUI 3)। MAUI को प्रतिस्पर्धी product नहीं, बल्कि cross-platform विकल्प की तरह देखना चाहिए। फिर भी पूरी OS को, खासकर management tools तक, अगर WinUI से rebuild नहीं करेंगे तो long-term trust बनाना कठिन है।
शुरुआत में ऊपर दिए गए सारे abbreviations देखकर मुझे यह satire लगा था: WinUI, UWP, WinRT, XAML, Avalon, WPF, Project Reunion, Win2D, MFC, wxWidgets, Qt आदि। इतने framework/version नाम मिलाकर सिर्फ नाम सुनना ही लंबा और confusing है।
शायद Microsoft फिर वही कर रहा है—अब की बार AI जैसी नई wave पर focus करके—पुरानी टेक्नोलॉजी से बिना ज्यादा विरोध के निपटने का तरीका खोज रहा है। वास्तविक विरोध शायद ही कुछ लोगों तक सीमित रहे।
वास्तव में Windows में तीन UI frameworks हैं, और उनमें से सिर्फ दो वास्तव में active हैं। बाकी बाकी लाइनें दरअसल Win32/native और WPF/Managed की repeated evolution ही हैं। WinUI3 शायद इन्हीं दोनों के gap को भरने के लिए आया।
लंबी अवधि में देखें तो शायद सबसे टिकाऊ विकल्प अभी भी MFC ही है। अभी updates रुके हैं, लेकिन यह आने वाले 20 साल तक रह सकता है।
काश Microsoft WPF को बस लगातार evolve करता रहता। मैंने इसे बहुत से projects में लंबे समय तक use किया है; learning curve होने के बावजूद Data Binding, ViewModel और XAML अभी भी solid लगते हैं। लेकिन WPF को बेहतर करने के लिए कुछ सुधार जरूरी हैं। हाल में Microsoft के नए framework या अन्य open-source विकल्प (Avalonia, Uno आदि) भी try किए, पर samples नहीं चले या development approach ठीक से फिट नहीं हुआ। अंततः वापस वही परिचित WPF चुनना पड़ा। WPF का सबसे बड़ा सुधार idea शायद यही है कि Data Binding सिस्टम को runtime reflection की जगह .NET compile-time code generation से बनाया जाए। इस तरीके से असली AOT build संभव होगा, performance jump करेगी, और XAML type safety, cross-platform support जैसे कई फायदे मिलेंगे। खुद open-source में करने की कोशिश की थी, मगर समय नहीं था और काम बहुत ज्यादा।
जैसा ऊपर दूसरे para में कहा गया, यह बिल्कुल Avalonia पर fit बैठता है। Avalonia पहले से ही AOT, compile-time binding errors और cross-platform features support करता है। अगर आपने हाल की updates नहीं देखी हैं, तो Avalonia compile-time data binding docs और XamlX project देखें।
इस approach से assembly trimming भी संभव है। self-contained deployment में अभी .NET libraries 200MB+ तक जुड़ जाती हैं, लेकिन यह तरीका काफी कम कर सकता है।
पहले जब WinUI3 evaluate किया था, developer experience बहुत खराब था। app को debug करने के लिए उसे सिस्टम पर वास्तव में install करना पड़ता था, और शुरुआत में start menu में अनावश्यक entries भर जातीं, registry भी messy हो जाती। sample code में तो button क्लिक करते ही app तुरंत crash हो गया था। मैं आज भी Windows app development में Win32 + WTL ही बनाता हूँ।
जैसे कई लोग पहले ही कह चुके हैं, Windows UI framework कई वर्षों से ठीक से consolidate नहीं हुए, उल्टा chaos बढ़ा है। अफसोस, cross-platform open-source side भी अलग नहीं है। GTK भी काफी समय तक messy था, और Qt में features बहुत हैं लेकिन professional use के लिए licensing structure भारी/जटिल है। (Nokia काल की उम्मीदें, बाद में MS की acquisition, फिर Qt ownership changes आदि कारणों से वह भरोसा चला गया।) कुछ क्षेत्रों में Dear Imgui जैसा ठीक विकल्प है, लेकिन overall देखें तो native या cross-platform UI/widget frameworks में permissive license, native compilation, बेहतर widget composition और Vulkan 3D rendering को एक साथ support करने वाला विकल्प लगभग नहीं है।
Windows 11 में native vertical taskbar अगर वापस आए तो बढ़िया होगा। यह feature Windows 98 से मौजूद था, मगर 11 में हट गया। Windhawk (forced horizontal taskbar) या StartAllBack (Windows 10 code restore शैली) जैसे third-party tools हैं, लेकिन पूर्ण नहीं।
UI framework को open-source करने से taskbar features नहीं बढ़ने वाले हैं। इस क्षेत्र में external contribution UI framework से नहीं, सीधे taskbar component यानी explorer.exe के open होने से ही संभव है।
ध्यान दें: Windows 95 era से vertical taskbar विकल्प मौजूद था।
taskbar functionality explorer.exe के अधीन है। अभी जो open-source announcement चल रहा है, वह explorer से related नहीं है।
यह भी सवाल है कि क्या Windows team सच में WinUI से real native desktop UI बना रही है।
आजकल Windows UI work मुख्यतः Win32, GDI और DirectDraw पर हो रहा है। CsWin32 और नए C# (ref returns) की वजह से accessibility काफी बेहतर हुई है। पहले अलग C++ project बनाना पड़ता था, पर अब सिर्फ native methods को
native-methods.txtजैसी फ़ाइल में डाल दो—codegen बाकी handle कर लेता है। Win32 निश्चित ही अन्य UI frameworks की तुलना में अधिक low-level है, लेकिन उलटे Microsoft के लिए इसे बदलना या हटाना मुश्किल भी। लंबे समय में देखें तो इतनी stable API शायद ही कहीं हो। web platform तो long-term perspective में तुलना के लायक भी नहीं।फिर भी कई जगह C++ अभी भी जरूरी है। यह Windows टीम की COM के प्रति कठोरता के कारण है। Windows Runtime Components, .NET ecosystem को स्तर उन्नत करने का मौका थे, लेकिन वो हाथ से निकल गया। shell extension, context menu extension आदि के लिए C++ चाहिए; .NET में करने पर अंततः C++ stub रखकर .NET process call करना पड़ता है।
मुझे इन high-level framework discussions से ज्यादा low-level API की बातें ज्यादा रुचिकर लगती हैं। Windows rendering stack सच में GDI/DirectX पर बैठा है, और Win32 भी अंततः GDI के ऊपर है। अगर Windows UI stack पर वास्तविक 'metal के करीब' चर्चा करनी है, तो DirectX से शुरू करना ज्यादा meaningful होगा।
user perspective से देखें तो Win32 अभी भी पर्याप्त high-level है। अभी तक buttons, scrollbars आदि सही से draw करने वाली toolkit बस Win32 ही है।
काश community Windows native development के लिए सच में अच्छा framework build कर पाती। लेकिन वास्तविकता यह है कि इतनी बड़ी टीम के लिए पर्याप्त community size अभी नहीं।
पुराने Windows UI development में जो सबसे ज़्यादा याद आता था वह था: Microsoft द्वारा बनाया हुआ लगे ऐसा natural/native alignment वाला app आसान बन जाए। Web tech के आने के बाद Windows UI अनुभव की consistency काफी टूट गई। समस्या केवल पुराने apps को modernize न करने की नहीं है; नए tools भी style-guide aligned libraries नहीं दे रहे। यह trend Vista के समय से शुरू हुआ था, और MSDN में भी "यह feature ऐसे इस्तेमाल करें" जैसे practical examples धीरे-धीरे कम हो गए हैं।