How Windows Everywhere finally happened
arstechnica.com
arstechnica.com
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?
At that point, I'd rather just pull the eject handle and use Twitter Bootstrap or something.
But you do have to pray to a bizarre and Cthulhu-like old god (Win32).
I just don't understand.
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.
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.
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...
In short, it's a mess.
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.).
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".
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.
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?
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 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.
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?
Businesses - yes.
Developers - my experience says no (myself included).
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!
Churn might be great for job security but it's a huge waste of everyone's time and efforts.
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.
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.
And how many normal users actually do stuff like this?
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.
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.
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.)
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.
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.
That's because it might force upgrade to Windows 10 if they hit the wrong button.
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.
Windows 10 might be a service, but previous versions were products.
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?
Not everyone wants C to stay around.
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.
Let's see what else gets announced at WWDC 2016 and how many talks do show Objective-C code.
Totally agree that on the WWDC they announce that UIKit is written in swift then it's officially dead.
Remember how long it took them to get rid of the Carbon Finder?
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.
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?"
A typical story:http://www.zdnet.com/article/microsoft-no-longer-allows-admi...
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.
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.
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?
> 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.
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.
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.
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.
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.
https://www.reddit.com/r/windows/comments/3ng3f4/windows_10_...
Even then, that means it has to do with speed but in an even worse way. An artificial slowdown added to everything.
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.)
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
Well, Peter Bright loves MS tech and has bias against Google. IMO you should take his articles with a grain of salt.
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.
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.
Am I the only one who still likes 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.
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.
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.
Uhhh.. ChromeOS and Android are both Linux. This is just as merged as running a stripped down Windows kernel.
I cannot run GNU/Linux applications on Android/Linux nor on ChromeOS/Linux.
And there are X server apps to provide you the full experience.
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.
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?
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 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.
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.
Kin and WP7 all run CE. The platform for WP7 was Silverlight 3, designed long before the RT.
win32k.sys is also rife with security flaws, so scrapping it has arguably reliability benefits too.
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.
Otherwise, it seems an immediate easy target for a new botnet.
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.
If you think Windows is an immediate easy target, why don’t you run your botnet on Azure?
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?
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?