Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
How Windows Everywhere finally happened (arstechnica.com)
182 points by nikbackm on May 22, 2016 | hide | past | favorite | 140 comments


I don't like the Universal apps or whatever they're calling them this month. They are limited, slow, crashy and buggy. They regularly just disappear after a sleep and wake. I have been left questioning my sanity wondering if I closed Messenger.

Also, they are clunky and slow. For example, switch to a desktop with a universal app open and for the duration of the desktop slide animation, the app window will be completely blank. And then suddenly all the content will flash into sight after the slide ends.

The start menu itself is slow and will miss your first few keystrokes if you try to start a search too quickly. The notification bar is sometimes laggy to open, and so are the universal style notifications.

Sharing across universal apps sometimes works, other times it just opens the target app and sits there. I dunno if this is an app problem or universal platform problem.

I wonder if improving Windows Forms would have been a better strategy. Instead now Forms is seen by many as a dead platform, and UWP is so limited/slow that nobody is developing for it. When soundcloud is smoother/less buggy running on Chrome than as a standalone UWP app, what is even the point of having a software ecosystem, apart from a web browser?


Agreed. I WANT to push back against the recent trend of using Electron to build desktop apps with HTML and JavaScript, as they "don't look and feel native". Then Microsoft goes and develops a native desktop framework that looks and feels like Electron apps.


I disagree with that, HTML/CSS/Js is by far the most widely understood paradigm for building user interfaces. There's nothing stopping apps built with these technologies looking native other than the stylistic choices of the designers.


Someone should have created a Windows.css framework for easy native design..



That's Windows 10 Universal look-and-feel, which kinda goes back to the original parent comment. You're basically using a web library to emulate a native library that emulates a web library!

At that point, I'd rather just pull the eject handle and use Twitter Bootstrap or something.



Windows Forms is the ironborn of Microsoft APIs - What is dead may never die...

But you do have to pray to a bizarre and Cthulhu-like old god (Win32).


To this day still have coworkers learning WinForms and Visual Basic.

I just don't understand.


An awful lot of software has been built and deployed with VB, WinForms, MFC etc. It needs to be maintained just like other legacy tech eg mainframes.


As a side note, I fixed the Start menu searching issue by disabling the slide animation for the menu: http://lifehacker.com/disable-this-animation-to-make-windows...


That dialog appears to have remained with little change since XP. I always use "adjust for best performance" (which clears all the boxes), then select only "show windows contents while dragging". Everything instantly becomes so much faster.


Thank you! That really improves the situation!


I can crash/hang newest Windows 10 build by simply quickly clicking repeatedly on radio buttons (in privacy section of all places) in SETTINGS app (a joke of a half replacement for Control Panel). Feels like a race condition.


Operation successful, patient dead...

It's kind of tragic that much of this effort may never pay off: in the process of merging platforms and restructuring API's (that started with Vista and is still going) Microsoft lost the connection to many of its developers, who went to build Web, iOS and Android apps. WPF, Silverlight, WinRT, XAML, UWP: there were too many changes, rewrites and deprecations. Windows Phone, brilliant as it is, did never reach mass adoption and all the effort that went into unifying it with Windows has probably been wasted.

I think developers prefer a crappy but stable technologies with a proven market over uncertain and fast-moving technologies. It takes many years for a new platform to mature and settle down.

Microsoft really needs to stop introducing "upgrades" that require application rewrites in Windows for the next 3-5 years, and focus on getting the Windows Store going.


As a long-time Win32 programmer (over a decade), I can safely say that the vast majority of existing applications still remain (for the time being) forward-compatible.

Here's some examples:

https://www.youtube.com/watch?v=JOj-bAZBhnE

https://www.youtube.com/watch?v=mRfn4M5DXTE

https://www.youtube.com/watch?v=wqFWuNmWbHk

The reasons people hold off on "upgrading" Windows versions is not mainly because of compatibility, but other factors like unwanted UI changes and removed features, and particularly with Windows 10, the increased data-collection intrusiveness and "we own your machine" attitude:

http://www.howtogeek.com/243581/windows-10-may-delete-your-p...


That's the problem. If Windows was more like Linux or BSD, you could take the good parts and omit the bad parts. They're doing genuinely good and - for mainstream desktop systems - innovative stuff in the kernel and surrounding subsystems, but once you reach the Windows shell, the desire to change stuff "willy-nilly" rears its head. Classic UI as found in Server 2003 or XP was great and if you wanted you could use themes, but now it's one highly questionable and user-unfriendly style after another, with the waste of screen real estate on top. Microsoft as a whole doesn't get it and the teams doing the good stuff must be in pain, seeing what's put on top of their creations as user-facing bits.


The deprecation of SHA-1 is an issue, though. Timestamps after January 1, 2016 must be SHA-256, and SHA-1 signed files will be blocked after January 1, 2017. However, Microsoft has blogged that they may block them starting this June. Pre-Win7 systems don't recognize SHA-256, so you have to dual sign the files if you want backward compatibility. Except, MSI files can't be dual signed. I'm also finding that more Win7 users than I would expect don't have the proper updates, so their systems don't recognize SHA-256.

In short, it's a mess.


You can sign with a SHA1 hash but a SHA256 certificate, and have it work on unpatched Win7 and even Vista SP2 with a hotfix installed (to fix a minor problem).


> The reasons people hold off on "upgrading" Windows versions is not mainly because of compatibility, but other factors like unwanted UI changes and removed features, and particularly with Windows 10, the increased data-collection intrusiveness and "we own your machine" attitude

Since quite a lot of people swear that they will never upgrade to Windows 10 for those reasons (esp. the data-collection, privacy, telemetry, and forced update issues), what do you think of the feasibility of a software product that blocks Microsoft from doing all those things?

This product would automatically configure Windows 10 to minimize all those intrusions, and where Microsoft does not provide an opt-out or disable setting, it would actively block the intrusive activity (like the way anti-virus software blocks certain malware actions).

Is this technically feasible? Would it violate Microsoft's terms and conditions? Is there enough of a market?


People have done that (just search for "Windows 10 disable telemetry", a few of those have made it onto HN too), it probably does violate ToS in some way, and there is certainly a huge "market" for it. Just look at all the "start menu replacements" that appeared when Win8 decided to remove that feature.

The biggest problem I see is that MS has somehow made all the pieces very tightly coupled (e.g. http://superuser.com/questions/957907/unable-to-install-font... ), and in typical fashion these days, has adopted a "you're either with us or against us - it's for your security" attitude in dealing with things like patches and other modifications.

Back in the XP and Vista days, well-meaning people would make customised versions of OS install images with a lot of these types of changes and share them. Piracy aside, that movement was mostly decimated by claims that all of them contained malware. Sure there were some, but a lot less than the FUD wants you to think, and the community of more experienced users quickly discovered and strongly called out those who tried. Maybe the "malwarez" creators have blossomed since then, I don't know; I haven't been following that scene for a while.


> the increased data-collection intrusiveness

The irony of this common complaint is that most people voicing it carry iPhones or Android phones, which are heavily instrumented to collect data by the operating system provider, the hardware manufacturer, and the carrier. Unlike a desktop PC, it knows where you are at all times because of its onboard sensors and has access the content of any communication you make with others.

(Note that even using custom OS images doesn't necessarily disable all telemetry since all smartphones run a separate OS to manage radio functions. See http://www.osnews.com/story/27416/The_second_operating_syste... for details.)

Most of the collected data is, of course, benign. Just like the data collected by Windows 10.


> Unlike a desktop PC, it knows where you are at all times

A single web-API call can return an accurate geolocation based on IP address alone for the majority of users (there are a few exceptions like VPNs or a small subset of IPs where the location is not good). If the desktop has Wifi, then geolocation becomes even more accurate as you can use known Wifi SSIDs to cross-reference. If the user has set a time-zone for their clock, then again more accurate location data.

> Most of the collected data is, of course, benign. Just like the data collected by Windows 10.

Source? Have you been able to analyze all the data Windows data-collection/"telemetry" sends up to MS?


Yes, the name "Windows as a service" was coined for a reason.


That's great! I didn't know about it. Would anyone happen to know how does it compare with the applications on Linux? Are they similarly forward compatible?


Oh, in no way, shape, or form, unless the application was statically linked, which is uncommon.


Closed source programs usually are, exactly for that reason. (Or at least ship all libraries they link to, up to and including the libc.)

Go also makes it relatively easy to statically compile everything, one of the reasons why it's gaining popularity.

Apart from those two it's highly uncommon: You're supposed to ship sources and compile them on the target system.

To get a sort of forward compatibility you'd need to find compatible sources for all involved userland, or ship them with your sources. The latter is sometimes used in larger projects, to work around distributions having wildly incompatible versions of whatever library you need (Samba, Firefox, LibreOffice e.g.).


You could always run them in a container.


Absolutely not, at least not on compiled form.

It's not all black though: this problem is usually offset by the fact that most Linux software is open source and can be recompiled against the new platform source.

You take some, you give some. The result is quite different but looks the same to the end user.


To expand on copperx, they might be. Since you can have several versions of a lib installed and the kernel<->userspace interface is stable, if you can get the old versions you need for your distro, then you can run the application. At worst, you might need to compile from source (which I do realise can take a lot of time and effort).

So the kind-of proper answer to that question is, "if you want to run a popular old application on a popular current distro, there is probably a repository you can pull packages from that will allow you to do it, otherwise it's somewhat of a crapshoot".


> Microsoft really needs to stop introducing "upgrades" that require application rewrites in Windows for the next 3-5 years, and focus on getting the Windows Store going.

You mean like the "Framework of the day" on web land?

Or the "rewrite your app with each Android version" that you cannot get?

Or "your language just got replaced" on iOS land?


It wasn't always like this. The Windows API was fairly stable from the mid-late 90s for at least a decade. They decided to start breaking that compatibility in the name of 'progress' at around the time they started trying to squidge together their touchscreen and desktop interfaces, but this API stability used to be one of the huge drawcards of the Windows platform.


My Windows coding experience goes back to Windows 3.0 and I am looking forward to the day Win32 and Hungary notation are nothing more than plain maintenance coding, replaced by a proper type safe OO ABI like WinRT.


My past experience with others "OO-ifying" APIs (e.g. MFC) makes me think that'll just end up being worse because it tends to add a lot of complexity that gets in the way and obfuscates the flow of the code. Besides, Win32 is implicitly quite OO already and can be used from a variety of languages because it's based on C. Not everyone wants to use C++.


MFC is not a good example. OWL, VCL are much better approaches to Windows frameworks.

Not everyone wants C to stay around.


Android actually has reasonable forward compatibility. 2.x apps still work, they just look ugly and don't support newer features.


ObjC ain't going anywhere.


The amount of ObjC sessions at last WWDC 2015 and the upcoming WWDC 2016 send another message.


Yup. The Standard Apple Deprecation Cycle works something like this:

1. New shiny thing is announced

2. Old busted thing starts getting talked about less

3. New shiny thing becomes the default, old busted thing hidden away

4. Official deprecation warnings issued

5. Old busted thing stops being supported. Apple being Apple, this quickly leads to

6. Old busted thing stops working altogether after something like an OS update.

We're currently at step 2. Originally I thought that Obj-C would be kicking around for a lot longer, but given that Apple dropped an entire CPU architecture in relatively short order, and their scorched earth attitude towards backwards compatibility...

I give it 2, maybe 3 years before ObjC isn't officially supported in Xcode anymore.


ObjC is dead when swift no longer spends most of its time calling in to ObjC for the typical iOS/OSX app.


In case you didn't got the memo, GDC and XTest are being re-written in Swift, it will eventually happen to other frameworks when it makes business sense to do so.

Let's see what else gets announced at WWDC 2016 and how many talks do show Objective-C code.


GDC is C code... I'm talking UIKit.

Totally agree that on the WWDC they announce that UIKit is written in swift then it's officially dead.


ObjC will be around much longer than 3 years. It can't be deprecated until most of OS X is rewritten.

Remember how long it took them to get rid of the Carbon Finder?


Sure, but the way it is being handled is a sure signal were things are going.

Apple even mentions Swift as a C and Objective-C replacement on their documentation.

Of course, it doesn't make business sense to stop the engines and rewrite all the stuff.


I think developers prefer a crappy but stable technologies with a proven market over uncertain and fast-moving technologies.

Businesses - yes.

Developers - my experience says no (myself included).


As a developer, I prefer technologies which don't plunge me into the "abyss of uselessness", where I know enough to know that something should be possible, and how it's done in the "old way" but have no idea how to do it in the "new way".


I'd prefer to use a functional API with a few warts and limitations over having to learn yet another goddamn 'fast-moving modern' interface which will disappear within five years.

Churn might be great for job security but it's a huge waste of everyone's time and efforts.


Five years? I'd be glad if we stopped moving to a new Javascript stack every six months.


I think developers like uncertain and fast technology IFF they get to choose.

New web framework comes out? Cool I'll try it.

Web framework version I am using is suddenly EOL'd and I have to upgrade to something radically different? Curse upstream!



I despise Microsoft for this. Two days ago, my dad accidentally triggered an upgrade to Windows 10. In a panic, he switched the computer off, and now it no longer boots.

It's now down to me to repair the computer. Apparently, months of dismissing the pop up invitations to upgrade to Windows 10 were not enough for Microsoft, they had to go and practically force it down people's throats. And my family is paying the price.

Microsoft, you are utter scum. You have wasted my time, my dad's time, and cost him hours of lost work.


I'm just curious because I really don't know more than my own sample-of-1 experience:

Don't you have to agree to "Terms and conditions" before the Windows 10 installation actually starts?

I actually re-enabled the Windows 10 upgrade warnings on my Windows 7 desktop, because I intend to upgrade in the last week of the upgrade being free. My desktop (Dell XPS 8500 from 2012) is not supported with Windows 10 (the first time I have to say "Dell, you suck!" - I've had 5 systems from them, desktops and laptops, and a few monitors up to 32 inches), and with my XPS (9333) 13 laptop (which Dell supports with Windows 10) I had pretty much unsolvable (Realtek) sound crash issues.

So anyway, just two days ago after reenabling the Windows 10 upgrade warning it started installing it on its own, as you say - but it first asked me if I agree to the "terms and conditions". I clicked "disagree" and the upgrade was canceled.

So from my own experience I can't see that Microsoft installs Windows 10 without an option to stop the process? I also have not been bothered with another attempt of auto-installation in the days since, but that's probably going to happen after an actual reboot - thus far I've only used "suspend to disk" to switch the PC off.


I honestly don't know, I didn't get to see what dialogs appeared. Bear in mind that computers often get us to accept terms and conditions, and virtually no-one reads them before clicking OK. There's no way I could blame my parents if that's what they did.

Hell, most of my security advice to them is explaining what is a 'legitimate' message box is and what isn't (Quick test: try describing it yourself, the many varied OS / browser / A/V popups, v.s. the scammy fake dialogs that appear.)


I know the feeling. My mother's approach to computing is infuriating: If she would just READ the often perfectly simple message on the screen she could solve 90% of her problems. For the same reason as your parents ending up with Windows 10 my mother managed to install the pay-version of the free anti-virus software I had installed - when it asked here if she wanted to upgrade to the non-free version she clicked on "Yes" and then didn't dare to cancel the process...

It seems that in some people anything unexpected happening on the screen causes some of their inhibitory neurons to fire action potentials (only 10% of neurons in the brain, but an inhibitory signal has a much stronger effect than an excitatory one) - blocking entire brain circuits from contributing their output. It's probably an ancient fear response.

So the best solution isn't to educate them - that's mostly unnecessary, since their intellectual capacity is not really the problem. One would have to get them to relax, so that unexpected things happening on their computer screen don't trigger the blocking of all reason.


One other difficult problem I find with my parents, and with others of a similar age, is trying to persuade them to experiment with using their computer. They often find some convoluted way of doing something and stick with it.

For example, for a long time my Mum would return to google's homepage by quitting and restarting firefox. I had to explain how the home & back buttons worked several times. My parents were afraid to even try pressing unfamiliar icons in a program (or even realise that they were buttons that could be pressed). Again, it's not stupidity, but just uncertainty and their fear of breaking the computer if they do the wrong thing.

Giving a tablet as a present for my parents was a big help here. The biggest ease of use has been that I have persuaded them that there is just about nothing that they can accidentally break on it, and if they ever reach something confusing, then pressing the only button on the front will always take them back to a recognisable place.


My parents were afraid to even try pressing unfamiliar icons in a program...

That's because it might force upgrade to Windows 10 if they hit the wrong button.


It can install silently without user approval -- this happened to my wife's laptop over the weekend. Luckily it is a fairly recent Windows8 HP machine and still works (unlike the three different Windows7 machines of mine that ended up unusable post-upgrade).


I manage my ex-wife's PC using TeamViewer and just regularly check updates to see what's up and to make sure MalwareBytes is running and up to date. This prevents her (and my kids) from doing "bad things".

A proactive approach is better than complaining about Microsoft, whose model has changed whether you like it or not. Windows is a service now. Not a product.

The more quickly we accept that (or switch OS's), the happier we'll be.


Not really fair to blame the end-user / victim, who bought a product. Requiring business-level IT policies and monitoring on home/consumer IT products isn't really viable for the vast majority.

Windows 10 might be a service, but previous versions were products.


Does TeamViewer prevent someone from desperately powering off a machine because they don't know to stop an update? I can't see how your advice would have helped here.


Time to consider an OS change maybe?


If only it were that simple. Even if we restrict ourselves to open cross platform software, hardware support remains a big issue. I have a Skylake laptop with which I daisy chain two external monitors via displayport. Linux doesn't even support Skylake properly, let alone my dual monitor configuration.


>I have a Skylake laptop with which I daisy chain two external monitors via displayport. Linux doesn't even support Skylake properly, let alone my dual monitor configuration.

And how many normal users actually do stuff like this?


I wish I could, but you and I both know that's a massive amount of time and work.


Given the number of large organizations that appear to have been paralyzed for much of a decade by the problems of switching from XP/IE6 to Windows 7/IE11, a whole new OS might be a bit of a challenge.....


What's really weird is that these same large organizations didn't have that much trouble migrating computing platforms in the past: MS-DOS, Win3.x, Win95, Win98, Win2000, etc. Then they got to XP and suddenly they were stuck.


They probably saw diminish returns upgrading from XP to Windows 7, whereas the past upgrades you list add a lot of new functionality and applications. Windows was pretty much "feature complete" with XP.


Delaying the move to Windows 7 cost them vast amounts of money due to more frequent crashes and reboots, less efficient operations, greater susceptibility to malware, and generally higher support costs etc.

It didn't save them any money because they were almost always paying for Windows 7 even while they were using XP. (Either they paid for Windows 7 and used the downgrade option or paid for it via Software Assurance.)

They didn't save the cost of moving to Windows 7, they just deferred it to a later date when the move was more expensive.

Microsoft tried to help them to move by giving them a free copy of Windows XP in the form of Windows 7 XP Mode. That wasn't available in Windows 8/8.1/10.

So, as far as I can see, sticking with XP was a really dumb move. I'm sure there would be special cases connected with software that couldn't be upgraded and/or expensive peripherals, but still, in the bast majority of cases, they could have done a Windows 7 upgrade leaving just a few instances of XP.


the upgrade and its scheduled implementation is approved when the user either clicks the "OK" button or the "X" in the upper right corner of the notification

This reminds me the many stories about those shady popups that show a fake dialog box where clicking on the 'X' in an attempt to close it actually does something very, very unintended, perhaps even downloading and running some sort of malware. MS is getting pretty desperate.


>>Microsoft really needs to stop introducing "upgrades" that require application rewrites in Windows for the next 3-5 years, and focus on getting the Windows Store going.

Those application rewrites are part of the Windows Store push. Want the latest version of X, then you need the latest version of Windows which, if all goes to plan, will only run software from the windows store. MS has always been very good at turning the updating of third party software into new sales for windows.


Well, if they moved on to web, they certainly didn't choose for stable technologies over uncertain and fast-moving ones.


> Windows Phone, brilliant as it is, did never reach mass adoption

Being kicked in the nuts by the 'cloud' division does not help either.

Because it was the free 15 GB storage from all those phone buyers that was dragging them down.

"Adult supervision, can I haz it?"


Windows FOR everywhere. No matter that Microsoft says, windows is still a choice. We have all seen shops where windows is just taken for granted, but every senior guy I know has some horror story about MS that makes them dream of a world without.

A typical story:http://www.zdnet.com/article/microsoft-no-longer-allows-admi...


> Microsoft promised developers that Windows would run anywhere. This summer, it finally will.

Bullshit. Versions of Windows that are all labeled Windows 10 are running in a lot of devices, and you can write applications that in theory can run on all of them (though practically writing one application that runs well on all of them may be somewhat harder if you want your application to be useful in any way.)

But that is NOT the same as "Windwos runs everywhere." in a number of ways.

The first and most obvious way is that you can't just take your existing Windows application and put it everywhere, which is what that phrase seems to imply. Nor can you buy one of these devices and immediately have access to all the library of millions of Windows applications that exist. No, if you're a developer you have to write a new universal app and embrace the Windows 10 App Store whether you want to or not.

And if you're buying a device, you better check twice that the software you want is available for the platform you're buying lest you find out too late your device has special requirements.

Secondly, we've had a version of Windows running on lots of devices for a long time. The only thing that's different now is the branding. They're finally all branded "Windows 10" even though in many cases (like Phone and X-Box One) the user and developer experiences are totally different. Is that helpful? I don't really think so.

This article might as well have been written by Microsoft's PR department. Totally not grounded in reality at all.


Your comment has some merit, if we ignore the fact that now same kernel is running across devices, with same subsystems and same applications, with possibility to write one application that works on all. While it is difficult to write UI to scale across screen size and input types, it is possible to build responsive UIs and people are doing so.


>"with possibility to write one application that works on all"

I'm not sure this is such a good thing. Maybe I'm in the minority but my phone and my desktop OS have vastly different use cases and I'd expect apps running on each of them to be different.

I'm not interested in a converging UI. I want a user experience tailored to the platform I'm running the app on.

I'd rather a solid desktop experience then having to put up with trade off's the developers decided to make because they wanted a "one size fits all experience".

I've seen it in the Linux world where toolkits/desktop environments tried to chase the idea of converging UI's and we ended up with the worst of both worlds - miserable to use apps on a phone/tablet and miserable Desktop Apps.


> I'm not sure this is such a good thing. Maybe I'm in the minority but my phone and my desktop OS have vastly different use cases and I'd expect apps running on each of them to be different.

But why should they be programmed different?

You can create XAML forms that are optimized for each platform. But why would you want to rewrite your code to adapt to the different GUIs?

Won't it just be easier, as a developer, to create a singular platform with two XAML (one for small screens, one for large screens) that share the same codebase?


Your assumptions hold for OS X and iOS even though they are not the same OS and never claimed to be.

> Won't it just be easier, as a developer, to create a singular platform with two XAML (one for small screens, one for large screens) that share the same codebase?

In theory yes, in practice changing the UI isn't the only problem. The problem is that a phone is much more limited, both in hardware and in what it is allowed to do.

Just as a simple example, on the desktop you can have storage that's shared between apps (at least for now), hence if you want your app's settings to be synchronized with Dropbox, you only need to detect Dropbox's folder and save your stuff in it, whereas on a mobile, you need to integrate with Dropbox's API. Plus on the desktop you usually have a lot of storage space, like my 5 year old desktop has 1 TB of storage, whereas my phones only have 32 GB and 64 GB respectively and these are high-end phones. So clearly storage is a bottleneck on mobile phone, but not on desktops. Another simple example: battery life. Mobile developers have to worry about battery life, the big and forever bottleneck of mobile devices, whereas desktop developers have never been concerned about it. For example I avoided to install Skype on my Android for two years because it was sucking my battery dry in only 2-3 hours. And now mobile Skype is so aggressive in cutting down on background chat that I cannot rely on it to deliver chat messages on time. And you want to hear the worst part? Moore's law doesn't apply well to batteries, so unless major breakthroughs happen, this will only get worse ;-)

And if universal apps on the desktop are as limited as their phone counterparts, that would turn out quite ironic for Microsoft to have turned your powerful desktop into a dumb phone just to have the same experience everywhere. Of course, them and others will try and turn this around as being for the senile grandmas everywhere that are unable to use their laptops, but many of us will have known the truth about that one.


For a lot of people, "desktop" really means laptop these days.

Laptops are much closer to mobile than the traditional desktop PC you describe. Limited storage and battery life are important considerations on a MacBook just as on an iPad.

Also the Mac desktop software environment is more like iOS these days, if you want to go through the Apple-sanctioned route of using the Mac App Store. For example direct folder access is not possible, so the Mac desktop app in your example would have to use the Dropbox API too.


> Limited storage and battery life are important considerations on a MacBook just as on an iPad.

No, I don't believe that's true.

Laptops are bigger, so they can afford bigger batteries. My Macbook Pro's battery holds without problems for 4 to 6 hours of intense work, which is not something I can say about my phone and I'm talking about working on and compiling Scala code and few things are more intensive than that.

Also, most of the time, laptops are used while sitting on desks for actual work. Oh, I know, you might pull your laptop at your coffeeshop to write an email or write comments on HN, or you might need it for work during a flight, which is cool, but overall laptops do get used pretty near an electrical outlet.

But the biggest difference is one of expectations. Phones are still communication devices which we rely on. If my laptop's battery goes out during a flight, I don't care because I do not need my laptop to make phone calls or to orient myself using maps or to call a cab or to open my travel documents or whatever. Whereas I do really need my phone. So the Scala compiler running on my laptop doesn't need to be battery efficient. But my phone needs to last for 12 hours while traveling, otherwise I'm fucked.

> Mac desktop software environment is more like iOS these days, if you want to go through the Apple-sanctioned route of using the Mac App Store ... the Mac desktop app in your example would have to use the Dropbox API too

Oh, I don't know about that and the reason is the Mac App Store is a wasteland and I can't think of a single app I installed from it. Also, the Mac App Store isn't the "Apple sanctioned" way and they know it's a wasteland too, it's not like they are blind.

No, the Apple sanctioned way is to sign your app. Signing apps needs an Apple developer account, which is fairly costly for open-source devs, but at least I can see the benefit to it. And as long as your app is signed, OS X gives you no problem in letting it be installed.


But why _force_ it with different APIs?

Is it impossible to imagine a set of applications (ie: generic Bank of America banking app: take pictures of checks and send them in sorta thing) where the UWP model doesn't help?

If you need a 2nd application for your task, then write two different UWP applications. If you don't, then write one application with two XAMLs. If you want a very cheap program, write one application with a "responsive" XAML that works on all systems.

By unifying the code base, you have the flexibility to do whatever code you need. Different code paths if the applications are grossly different, or the same code path if you need to save some money.


>The problem is that a phone is much more limited, both in hardware and in what it is allowed to do.

The full version of MS Office is capable of running quite well on those inexpensive Atom tablets with only 2 GB of RAM. That's about as much hardware capability as the average smartphone has already and peripherals can be handled by a docking station.

Granted, apps will need to show different UIs and adjust power consumption depending on whether they're in mobile or desktop mode but convergence is really just about here.


>I've seen it in the Linux world where toolkits/desktop environments tried to chase the idea of converging UI's and we ended up with the worst of both worlds - miserable to use apps on a phone/tablet and miserable Desktop Apps.

I abandoned Linux just because of this. Some people just don't get it. I don't want mobile UI in my double 1080p monitors which I do development on them.But people like gnome developers just don't get it.they push for various kind of animation without properly optimization and at the end we have gnome 3 debacle.

I am not against animation or touch UI.But if you want develop touch UI do it simultaneously with desktop branch, not by ruining desktop. After so much debate just look at ridiculous ui for classic shell in recent gnomes. Are they fucking kidding people? Is that notification and tray icon for real?

(I know there is extensions,but I am talking more broadly,about core developers mind sets.)


Don't ditch Linux because of Gnome 3 or Unity. You can install Cinnamon, MATE, XFCE or KDE in five minutes.


As a good example of this problem, I remember the new Metro (or whatever it's called now) calculator taking a whole screen on a 22". Yes it worked, but it looked really terrible and unusable.


Apparently it's also extremely slow, to the point that it needs a loading screen:

https://www.reddit.com/r/windows/comments/3ng3f4/windows_10_...


UWP apps (excluding the start menu) all just have a splash screen when you launch them, it doesn't have anything to do with 'speed'.


> it doesn't have anything to do with 'speed'.

Even then, that means it has to do with speed but in an even worse way. An artificial slowdown added to everything.


>This article might as well have been written by Microsoft's PR department. Totally not grounded in reality at all.

Well, Peter Bright loves MS tech and has bias against Google. IMO you should take his articles with a grain of salt.


That's putting it mildly. :)


I totally agree... they should not be calling it the same operating system.

Now it is near impossible to ask a sales person "will software X run on this new machine i am thinking of buying".

One now needs to ask what sort of processor is it has "Windows 10" tells you nothing about what software it can run.

fxxking stupid


All platforms now have enough hardware to run a bloated OS. Even the dinky machines. Thus, we now have Windows and Linux everywhere, endlessly being patched because some feature completely irrelevant to the application has a problem.


What are the substantial benefits of getting onboard the UWP rain ? Will the platform code work faster.. will the deployment be faster ? what about the knowledge devs have gathered for decades. will the new way of doing things produce a more efficient and better running application ?


For long time Windows developers like myself, the underlying model of WinRT is what the original .NET was supposed to be.

It was called Ext-OS and based on an improved COM API, called COM+ Runtime.

https://blogs.msdn.microsoft.com/dsyme/2012/07/05/more-c-net...

So with C++/CX and .NET Native built on top of WinRT, Microsoft has gone full circle back to the original idea.

Personally I enjoy developing UWP (started right away with the old Windows 8 model), because it offers me a modern OO API to Windows, similar to the OS APIs from Xerox PARC and ETHZ OSes.

Also, sadly Microsoft torpedoed the whole WP eco-system, but the tooling is so much pleasant to use than Android's.

I also welcome the container model to put some control into the mess that is installing Windows applications.


I'm a "long time Windows developer" and personally my opinion seems like the exact opposite: I enjoy pure native Win32. All that new stuff never interested me much, and felt like too much added complexity and learning curve for little gain. MFC looked more like a bloated make-work scheme, I was very much not impressed when I tried playing around with .NET for the first time, and I can still discern clearly which apps I need to use daily are native and which are using .NET, simply by how long trivial operations take and how much memory they consume. It's better than Java, although that's not saying much...


I've found that WTL is a good level of abstraction for pure Win32 API. It's not free (in terms of size and speed costs) and does contain some kludges but you get an object oriented system to control the Win32 API.


Do you use XAML? What do you think of it? I've never really been able to get my head around it - although my professional projects are mostly ASP.NET MVC and WebAPI so I've had no real pressing need to learn it.

Am I the only one who still likes Windows Forms?


It has the developer sanity that web development lacks with its Frankenstein mixture of HTML, CSS, JavaScript to make <div/> behave like native widgets.

Have you ever tried to use any web design tool capable of matching Blend for UI design?

XAML is what web could have become if XHTML and its sublanguages had been adopted properly.


When I don’t care about the UI design, just need some GUI that works — yes, I still like Windows Forms.

When I have professionally-made UI design on input, and need to make GPU-rendered GUI — XAML is the best technology with the competitors far behind.


Any github Project or existing application developers.. who have successfully ported their libraries to UWP.. that you can point me to ? That would be damn awesome.. :)


Not sure what exactly what you would like to know.

There are lots of projects using C++/CX on Github.

https://github.com/search?utf8=%E2%9C%93&q=C%2B%2B%2FCX

Edge HTML is UWP based.

Gears of War: Ultimate Edition, Rise of the Tomb Raider, Quantum Break, and Forza Motorsport 6: Apex (Beta) are all UWP games.



pjmlp seems to be an expert in a lot of this stuff but I'll throw in one other perspective: if you need to write a native app on Windows, yes, UWP is the way to go, certainly over MVC, WinForms and WPF. But it is tied to Windows...

I doubt the performance improvements are significantly different. It's really about portability (Windows Store) and latest Windows features (start menu, menu bar, Cortana, ink, touch, high dpi)

Also, I hear if you do have an exiting WinForms/WPF app, you should be able to upgrade it to UWP.


+1 app on MS App Store.


> Microsoft has still arguably achieved something that its competitors have not. Rumors that Google will somehow merge ChromeOS and Android have been circulating for some time, but it hasn't happened just yet

Uhhh.. ChromeOS and Android are both Linux. This is just as merged as running a stripped down Windows kernel.


I think you might be underestimating just how aligned Windows 10 is across these devices, certainly more than Android vs ChromeOS is. (Then again, from what I hear, ChromeOS is starting to creep more toward Android... So maybe that is changing). This is more than a shared stripped-down kernel.


Google is experimenting with an Android Runtime for Chrome:

https://developer.chrome.com/apps/getstarted_arc

Assuming this does take off, ChromeOS (and any desktop OS running Chrome) will have direct app sharing.


I'd call linux a direct competitor of MS. There may be no single entity who as done as much with linux, but linux as software is certainly more pervasive than windows.


Linux is a kernel.

I cannot run GNU/Linux applications on Android/Linux nor on ChromeOS/Linux.


You can if the applications are packaged properly.


Sure, if you install a GNU stack (glibc, for example, being an important part) you can run typical Linux software on Android. It's not the default, however. While the Linux kernel has proliferated, the userlands are more varied; Android/Bionic on phones and tablets, uClibc on routers and other embedded roles, GNU/Linux for most servers and desktops--though even in that final category, we see substantial variation such as systemd versus init.

Sometimes this is to Linux's advantage; it underscores its flexibility, and the ability to use, for example, busybox uClibc on small systems is definitely an advantage. But other times, like having no standard UI toolkit that works across desktop, tablet, and phone, or having different approaches to managing services/daemons, the advantages are less clear.

Canonical was heading hard in this unified direction, but I'm not sure what their current phone/tablet plans are. Their stupidly implausible kickstarter seems to have disrupted these efforts.


Frankly the UI toolkit is a lesser issue.

The bigger issue is that the big desktop toolkits, GTK in particular, can't keep their APIs straight. Every other release or so they change some behavior or remove/replace something.

This in contrast to the kernel where once something is in, its in, and stays in that shape.

Thus you can run a CLI binary from the early 90s against a modern kernel. But you can't run a GTK binary from a year or two ago against a current lib version.

Edit: hve you taken to defending your own articles on third party sites now? Dueling in the Arstechnica comments not enough?


Android has a custom Dalvik/ART stack for running apps. Typical Linux distros consist of Xorg/Wayland with GNU packages. They're not related in any regard other than the Linux kernel.


Most of the GNU packages do not have GUIs. They work fine on android. You can easily chroot into a full Debian install, among other options.

And there are X server apps to provide you the full experience.


It's a little ironic that in the summer they have achieved Windows everywhere, that it would coincide with my first summer of Windows nowhere.


I had a little funeral for my last Windows machine when I powered it off last Fall, as I no longer have much time for video games (Windows's last hold-out). Given MS's dominance throughout the 90s and early 2000s, I never thought the day would come. I still have an old Windows VM hanging around on an external drive somewhere, should the day ever come where I need to fire it up, but honestly I can't think of a reason why I'd have to do it these days.


Did you steal that from the Ars comments, or are you the same guy trying to get cleverness points twice?


I bet it has been a great summer so far too


All they needed for Windows back then reminds me of https://www.youtube.com/watch?v=Vhh_GeBPOhs I miss that guy


> Apple and Google will probably do something similar with their various operating systems, but Microsoft has managed it first.

I thought all of Apple's OS variants these days were based on the Darwin kernel and variously intersecting sets of the same unix components and APIs. Every now and then I see someone complaining that a new Apple device contains 'an entirely new OS' like Apple TV OS, but isn't that just a variant of iOS? It seems to me it's precisely because Apple have been determinedly pursuing this common core stragety ever since the first iPhone OS that they've been so successful, compared to Microsoft's strategy at the time of having completely different code bases across product categories.


I'm only speculating, but I believe that Darwin is much more bare or stripped down compared to universal Windows. I believe that the author was refering to being able to run iOS apps on OSX and vice versa.

This IMO is not very smart. Each platform, mobile or desktop, has a different purpose and requires different things. So to make a universal OSX or iOS it means that either you make a significant amount of compromises which don't benefit either platform and each suffers. Or you build everything into the core and it ends up being a complete and buggy mess with a bloated install size.


The article doesn't discuss it, but I thought the Kin was the forerunner to a lot UX of the Windows Phone 7. Was the Kin also a forerunner to the Windows RT platform change, or was it just a re-skinned Windows CE?


Zune HD was released before Kin, and I think that was the first WP7-like touch-oriented UX.

Kin and WP7 all run CE. The platform for WP7 was Silverlight 3, designed long before the RT.


There was an excellent segment on This American Life about a man who cured his own severe allergies by giving himself hookworms: http://www.thisamericanlife.org/radio-archives/episode/404/e...


I wonder why the Windows Phone team decided to remove USER and GDI. After all, they ran fine on PCs in the 90s, so surely performance wouldn't be a problem on smartphones.


Modern graphics hardware isn't optimized for drawing bitmapped lines. It's optimized for drawing textured triangles. This means that it's not actually a good fit for GDI any more. Given that Windows Phone was, as far as apps were concerned, a clean slate, there was little reason to retain USER and GDI.

win32k.sys is also rife with security flaws, so scrapping it has arguably reliability benefits too.


I think you’re right about the performance: on WP7 hardware, mobile ARM CPUs should be able to run native Win32 GUI, and the code was already here.

GDI is just too old.

GDI was created long before multi-core CPUs gained traction, so it paints everything on the single thread. XAML uses two cores, rendering and animations run on a separate thread called “composition thread”.

GDI was designed long before GPUs gained traction, so it paints everything on the CPU. XAML manipulate textures on the GPU: it’s faster because GPUs are massively parallel, it uses less energy because custom hardware is more energy efficient than a general-purpose CPU. Here’s more about that: https://msdn.microsoft.com/en-us/library/windows/desktop/ff7... It’s for D2D API, but both WinRT/XAML and WinPhone/SL platforms use GPU in the similar fashion to D2D.


First immediate thought: Can you get virus/malware scanners for XBox?

Otherwise, it seems an immediate easy target for a new botnet.


Upon consideration, I'd consider the existence of viruses/malware for a platform is actually a good thing, as it's a sign of openness. If there isn't, it's most likely because there is a central authority deciding what you can and cannot do on the platform.


And if someone else controls what you can and cannot do on the platform, the platform really isn't secure from your point of view. This is especially true when that someone not only has that control but also has access to your activities, metadata, data, PII, etc through cloud based applications and features, telemetry, central store registration/purchases, etc.


Windows Azure datacenters have more than 1 million servers combined. They all run Windows, and unlike those cheap XBoxes, they are powered on 24/7 and connected to very fast fiber optics.

If you think Windows is an immediate easy target, why don’t you run your botnet on Azure?


Because, I would hope, the people running boxes on Azure are run by IT people who are about security. Not the case for consumer hardware.

Taking control of a few Azure accounts might be worth a few hundred Xbones but which one is easier and more likely to go unnoticed?


> run by IT people who are about security

People who are about security can secure 10 servers. Manually securing 1 million of them is prohibitively expensive.

MS have the technology to secure them by default. Key part of this technology is hardware-assisted virtualization + hypervisor.

The same architecture runs MS XBox one, MS Azure, and many other products like Amazon EC2.

> Taking control of a few Azure accounts

Accounts? How about actual, hardware servers?


Windows has had a sufficient built-in virus/malware scanner for a while now. But, I agree, it's now as easy of a target as other Windows 10 machines out there.


No, because desktop and server Windows 10 machines have to be compatible with arbitrary older binaries that were written against the Win32 API. The Xbox One version of Windows 10 can leave out the backwards compatible and more easily targeted parts of Windows, and only support UWP apps, which are sandboxed and thus are less exposed to various types of exploits.


I agree. MS's recent anti-malware offerings are definitely up there. Their efforts in the area have been paying off.

The major issue is identical executables being operable across platforms makes for much easier transmissability. Eg, how many people put their XBoxes and Windows machines on the same home network? I'd posit a majority of people who own both platforms, simply for simplicity's sake.


Aren't the Xbox One apps only delivered via the Windows (App) Store though? So they have the benefit of being sandboxed and needing to be reviewed in some form or another by MS before appearing.


I must have missed something because last time I checked it was still on the desktop, a failed phone platform and a game console with an installed base of less than 30 million. Meanwhile Android is everywhere from phones, tablets, desktops, cars, TV's and numerous IoT devices.


The article is about the state of the technical implementation, not the actual market penetration.


We've been using the Windows 10 for RaspberryPi and love it. Don't think of Win32 as your API--think of .NET and it all makes sense.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: