Microsoft knows Windows is obsolete. a sneak peek at its replacement
zdnet.com
zdnet.com
UWP doesn't explicitly require XAML as part of the stack directx and win2d provide more direct access to graphics hardware
Edge is not a Native UWP application - whatever that means - it's possible to take existing applications and package them to run as a UWP applications, even ones that use COM and Win32. The rendering engine that Edge uses is actually part of the UWP stack - any HTML+JS UWP app uses EdgeHTML as the layout engine. The JavaScript engine, chakra, is a cross platform open source c/c++ library
What MS is doing with WinS is attempting to promote a walled garden and changing windows into a closed platform.
WinS is the first consumer facing foray to this approach. Somehow announcing this in the same breath as education makes it ok.
It might be a noble effort to try to sandbox windows apps, however there are some major detractors: 1) The MS store is a mess, it combines the worst parts of the android App Store and the walled approach of the iOS App Store. But nobody seems to be committed into cleaning it up. 2) not having a compelling mobile story makes existing devs look elsewhere - even Microsoft itself. 3) eliminating compatibility for a broad swath of applications is orthogonal to the approach that Windows has had for decades.
Windows S is the freemium strategy applied to Operating Systems
I should also mention that UWP and Win32 aren't mutually exclusive; UWP is an overarching framework that supports WinRT and a subset of Win32 (now called the Windows API).[2] Edge uses some of the Win32 API as well.
[1] https://blogs.windows.com/msedgedev/2017/03/23/strengthening...
[2] https://msdn.microsoft.com/en-us/library/windows/apps/br2057...
My assumption is that it is compiled with .NET Native[0]. That would explain why it is only available on Windows 10, as only Windows 10 supports .NET Native.
[0] https://msdn.microsoft.com/en-us/library/dn584397%28v=vs.110...
I was under the impression that this was strictly verboten.
Because if this was the case, then why did Mozilla drop its efforts to UWP-ify Firefox?
Yeah, that's going to become real popular...
UWP is in many ways worse than Win32, it requires much more boilerplate code to get stuff done, and requires a proprietary dialect of C++ which is not quite compatible with standard C++ (good luck trying to compile most existing C/C++ code on UWP, it's even worse than the Objective-C situation on OSX/iOS).
The baffling fact that UWP manages to be even more complex and less pleasant to write code for then Win32 (which was also a pretty bad API to begin with), coupled with the suicidal closing-down of an once open platform is what really concerns me about the future of Windows. That's not how you win back the hearts and minds of developers.
C/C++ is good for people who have existing C++ codebases or skills, which they want to bring into the UWP world.
C#/F# for new app development.
JavaScript to bring in electron/web guys on board.
Another API and framework the good 16 year old DotNet never replaced Win32 either. All process that ship with and runs by default in Windows XP/Vista/7 or Office 2003/2007/2010 are Win32 and non is DotNet based. (you can verify with ProcessExplorer)
5 days ago MS declared DotNet a legacy thing. ASP.net 2 will only be compatible with Dotnet.core 2 (which is incompatible to DotNet and Dotnet.core 1). You can read about the outcry there https://news.ycombinator.com/item?id=14297974
The only thing that keeps people in general as well as enterprise companies on Windows is Win32 compatibility and Office. MS is now just milking their products with little QA and hostile to end users privacy "the user and his data is the product".
MS really missed the chance in 1999 to refresh Win32API with an improved Win64API. Like they did before - remember Win16API. Win16API got refactored and improved overall while keeping almost code compatibility - only a few tweaks and a re-compile were necessary back in 1994/95, and Win32s layer got backported to Win3.11. But MS went full in with their failed DotNet vision in 1999 and abdomened Win32API ever since. And never upgraded the Win32API, in fact the 64bit Windows still have the same Win32API and MS completely missed the opportunity window that was open for them. So much stupid management decision, it hurts.
C++/CX is a dialect of C++ that has refcounted pointers (like COM). It is much better than the (also proprietary) extensions for COM to C++ MSVC had decades ago, and it is also much better IMO that managed C++ and C++/CLI. Of course, in a way it is still a hack. But I read that MS is also working on a way of doing managed components in modern C++ (i.e. 11/14/17). MS is doing a lot of great work in the area of modern C++ lately (surprisingly to me).
And UWP is yet another incompatible version of XAML/WPF/Silverlight/.... I don't like the castrated nature of it, it is incredible simple things are hard or impossible (like cross process drag and drop, which is not supported even in MS Office store apps. Or any kind of IPC, or networking with localhost). But things are getting better, as MS removes the worst pain points and developers learn to circumvent the missing parts.
One thing that seems great in UWP is it's async-first approach. I learned to appreciate that paradigm with Python/Twisted and JS.
So it's not all bad. If Microsoft had UWP 10 or 15 years ago (in their "Avalon" phase) it would have been great. Now, it's just "meh".
The main thing limiting C++ code in UWP is sandbox, not the compiler. C++/CX is a glue language between proper C++ and the rest of the OS - you can freely mix it with proper C++ (11, 14, etc) within the same binary. I successfully compiled many open source cross-platform libraries for UWP without any serious issues.
As for complexity and generally APIs, UWP is way better than old Windows APIs. It is fairly consistent, predictable, and modern. I'm guessing you are really used to the old ways, but I don't really understand how can one prefer WndProc / manual message handling or message maps to clean approach of XAML; or think it was better.
Depends on the language. In C# it’s straightforward. In C++ yes it could be cumbersome. But that’s a language limitation, C++ lacks async-await so some boilerplate code is required to consume asynchronous APIs.
> good luck trying to compile most existing C/C++ code on UWP
Did that more than once. The largest problem is slightly different CRT, i.e. not all CRT functions are available.
For the language however, C++/CX is merely a syntactic sugar on top of regular C++ compiler that compile your stuff into native code. You can enable/disable “Consume Windows Runtime Extensions (/ZW)” for individual C++ source files inside a single project. The linker will happily link everything together.
Also, if you don’t like C++/CX you don’t even required to use it. You can compile your C/C++ code into a UWP DLL that’s not windows runtime components, but expose C-style API instead. You’ll be able to use that in UWP apps just fine.
Please don't tell me they are trying to androidize the desktop, because that could possible be the most hairbrained idea MS has ever had, esp. this late in the game.
[0]: First hit, article should give enough facts and keywords, if you don't remember or never heard about bundled IE in Windows in the EU: http://www.pcworld.com/article/166606/how_does_unbundling_ie...
Once I can't target Win32 anymore I'll switch to the browser. Metro/Modern/UWP isn't on my radar. I doubt I'm alone in those thoughts.
Even now, there isn't any Web tool that allows for designing Web UIs like Microsoft Blend (XAML) or Qt Creator (QML).
The Web could have been like that if XHTML and its related standards were adopted, then we could have had something like XUL or XAML.
Instead we have the broken promise of Web Components that still aren't properly supported across all major browsers, or the "UI framework of the day" without any kind of tooling support besides code.
I'm currently learning UWP as well but why would I bet my product on a technology that limits me to a single operating system version?
Nobody wants to write programs for it, and the only people who run UWP programs are those who either have no choice or do so by mistake.
If we can't run WIN32 or freely write win32 programs then windows is dead.
Legacy Win32 applications can be packaged as UWP ones.
Missed that one, as was under the impression that UWP and Win32 was strictly separated.
I do notice that this results in the Win32 program for all intents and purposes becoming a UWP app. Complete with the issues of installs only happening via the store...
Nonetheless, there's a truth here about UWP. Applications today are all HTML websites. They should be containerized native applications, navigated spontaneously like the web, but running native code protected by the privilege declarations system familiar to phone apps. In fact, the "web of apps" is long overdue, but it's been held back by two major players: Apple, whose Appstore discouraged inter-connected-ness by encouraging a micropayment model, while also promoting platform exclusivity; and Google, who pumps billions of dollars into browsers and other web tech propping up the antiquated HTML-based web.
A new system is overdue. UWP is not that system though, it's a straight-up copycat of Apple's app store ecosystem, nothing more.
Perhaps I misunderstood your point, but taking it literally: this claim is just plainly untrue, and reflects a very narrow-minded view of software in general.
Thankfully that isn't true.
https://www.gamingonlinux.com/articles/microsofts-latest-tac...
The end result is that games run poorly on Linux and give a terrible experience to anyone trying it, because nobody wants to invest in native titles that are as optimized as the Windows ones... besides Valve. Pretty much every Valve game runs as good or better on Linux than on Windows, but they were the exception able to throw what is in all likelihood more money than they have made from Linux users in their first year on the platform to port these titles correctly.
Top it off with how bad the uptake on Vulkan has been relative to DX12, and the future is not bright for Linux gaming. It is way better than it ever was, and for anyone except a hardcore gamer the library is definitely vast enough to not feel any desire to use Windows over Linux for the sole reason of gaming, but its in such a shoddy state it won't win over hearts or minds any time soon.
This is exactly what Valve saw when they started their Linux push.
I imagine we'll just continue to ignore that UWP and the Windows Store exist. Wake me up when full versions of Office and Visual Studio are built as UWP apps.
Also they did announce that the next Office version will move to the store.
Apple and Microsoft would never be that respectful of its users. The whole point of how draconian iOS and Windows RT 2.0 (aka 10 S) are is to strip user freedom to make more money.
(I don't think the problem is missing apps. My guess is that most UWP apps in the Windows Store use a tablet-ey, metro, modern ui, and nobody seems to like it much.)
I have a two-in-one laptop/tablet (from Lenovo's Yoga series), and while I have really tried to use the Store apps so that they are comfortable in the tablet mode, I've yet to find a PDF reader that doesn't crash randomly (including Adobe Reader's Microsoft Store port) and have basically no decent epub reader (I can't find a single app in the store that will open two epub files without any weird formatting issues, let alone support things like highlighting and such). There are no clients to any Google products. Your cloud option is basically OneDrive and that's it. Heck, I've even struggled to find a text editor, so in the end, I've just used OneNote to write down some texts. Kindle reader? Nope. Decent browser? Nope.
In fact, when I think about it, the only useful Store app I was able to find was the Slack client, which seems to me like UWP-bundled Electron app that simply works! Of course, not even that one comes with no issues, because font rendering in it is absolutely horrendous on a HiDPI screen.
I could go on and on about this. At the end, I'm mostly using desktop apps in the tablet mode (things like Calibre, Chrome browser etc.) and that seems to work fine. But the Store apps (with that one sole exception where I'm actually using a Store app in the desktop mode as well) are just useless.
This the boring buisness-thinking take that misses the forest for the quarterly earnings report. Operating systems are largely... done-ish. We've entered a period of refinement and iteration that can't keep pace with the expectation to have something new to sell. I dissagree with the author that pushing forward full-steam is going to keep the industry "healthy."
Windows XP SP 2 is the last OS that I wanted to upgrade to. The rest has just been a drag along as enhancements are held back to be bundled with the breaking changes that do justify a revision bump, and a fresh coat of paint is used to sell the whole thing. OS X is similar, but less egregious.
We're in a period of kicking the can down the road. The UI keeps lurching randomly in fashionable directions but makes interaction inconsistent, obtuse or lackluster. Feature sets get locked down to enable new paywalls. Gamification is everywhere turning tools into ARPU-optimizing skinner boxes.
The End of low-hanging fruit is here. How we deal with it will determine if computing retains it's magical unbounded possibility space or not.
https://en.wikipedia.org/wiki/Windows_XP_editions#Starter_Ed...
[0] https://www.onmsft.com/news/electron-apps-can-now-converted-...
Everything that I discovered there was such an amazing surprise. Good times.