How one announcement damaged the .NET ecosystem on Windows
medium.com
medium.com
Some background, from what I recall: - During the planning for Windows 8 XAML was the leading candidate for the UI technology but late in the process Sinofsky personally overruled it to make HTML the preferred UI technology.
- Through the first half of Win8 development XAML support for Win8 was essentially a side project by DevDiv with very little support by Windows.
- Other orgs analyzing UI technologies we told point blank by Windows that Silverlight was dead and HTML was the way forward.
- DevDiv had fairly little confidence in the HTML strategy and was essentially hedging with XAML. But Windows was focused on HTML.
- After people started building apps it became apparent how painful HTML was (this is IE9 HTML- no web components, no ES6, with a framework written by JS noobs), and Jupiter was re-orged into Windows. This was where XAML re-appeared in the PDC slides.
- Sinofsky likes to re-imagine history and say that he was merely getting the Windows org to bolster the otherwise ignored HTML platform, but this is deceiving. The message was clear to the grunts on Windows for the first half of Win8 that HTML was the direction and there was a very hostile relationship with Jupiter.
There was a lot of damage internally to Silverlight through this process- morale was low, internal customers were being warned off of it, etc.
Also this comment just gets me mad: https://twitter.com/stevesi/status/733699065763004416
Sinofsky was the root of so much politicking and poison. Good riddance SteveSi.
This about creating "Native" apps using JavaScript and html as an interface for native apps. Fundamentally it still using the same components C++/Com store and .Net store apps. They've just written a language adapter for it.
XAML is alive and well in the WinRT apps.
XAML is now alive and well (to the extent that Windows is), but it went through a very very tough patch in 2010-2011.
And why Jupiter didn't get full backwards compatibility with WPF?
In particular, if you're making enterprise software, for example, and aren't interested in the Windows Store, what can you do except throw up your hands in the air and switch to the web.
Even if you're determined to make a desktop app application, at this point WPF seems even more likely to become problematic in the future than the Win32 API!
Mac OS X and iOS aren't also 100% compatible, neither are ChromeOS and Android.
You can create your own business store if you want, or you distribute the app through a file.
If I absolutely needed a desktop app I would either go Qt or write my own simple win32 wrapper.
The last thing you want your "developers, developers, developers" to do is to stop and think about which APIs they need to evaluate switching to. Because that's how you build mindshare on iOS, Android, OSX, ChromeOS.
I also wondered how a programmer used to strong-typed languages (like C#) and a robust IDE/debugger (like Visual Studio) would fare in the hell that was a browser 4 years ago, the joyful world of JS (vanilla + frameworks) debugging and the always entertaining fight with CSS (in)compatibility, (where IE in particular has caused many a dev to utter a sigh).
I even made a post about it back then: https://www.reddit.com/r/cscareerquestions/comments/p1r3s/st... (and it got on here as well IIRC). It was titled "Stick with Microsoft WPF et al or jump ship?"
I ran as hard as I could from Microsoft and picked up Linux Ubuntu and Android development. I'm a full-time Java developer now (on Ubuntu as we speak) and very happy with that.
Pretty glad I dodged that bullet.
Yes, because Oracle is so much better.
http://blog.wouldbetheologian.com/2010/11/its-about-trust-mu...
Even without hindsight, it seems short sighted to have bet on Silverlight.
Apple execs were publicly (and rightfully) mocking the Windows 8/RT mess he created and today he's unironically critical of its aftermath while praising Apples stellar execution.
http://www.theverge.com/2013/3/19/4124548/microsoft-paying-d...
This was actually a net negative for the store, as it led to the bulk creation of a lot of crappy, low-effort applications, setting up the expectation for users that most of the content in the store was junk, and making legitimate applications harder to find. I wouldn't be surprised if this played a significant role in discouraging developers.
1: Camera was able to take nice pics but so slow to actually fire that it turned it to be nearly useless.
Microsoft quality I suppose.
I contacted several vendors during this time to figure out what was happening. All of them said MS was unhelpful.
Even when MS made that "email us about junk" push thru didn't respond to people and kept the junk piling up. Often, the store's own "Top" lists had this crap.
Bizarre, and a total waste of goodwill and trust in their new platform.
P.S. I never got into ASP/ASP.net ... is that what people use .net for most these days?
For web development, yes. MS's REST framework is called WebAPI, and most people pair that with Angular, but you can use your poison of choice. If you want a more traditional MVC framework, there's MVC. If you want be all hip and cool, you can deploy a web api container to one Ubuntu machine, and the your frontend to another.
it's powerful and using typed-compile-time-checked LINQ for building DB queries is far superior as a developer experience than some monolithic blocks of SQL text and a test suite.
asp.net5 is getting pretty decent (and close to release) so for current projects I use c# to host my API and bootstrap the app up, but all the frontends are modern js frameworks (using typescript) rather than MS MVC.
http://www.joelonsoftware.com/articles/APIWar.html
This I think was the beginning of the downfall of Windows as the controlling force in personal computing.
It's a different kind of stability though. Windows tends to support everything old written for their platforms in some way or another through tons of compatibility layers. It's 98% legacy and 2% of what's currently the favourite thing Microsoft would like you to do (which is constantly shifting). With Apple it's a lot less legacy support but the stuff actively sanctioned by Apple is also more stable.
Before Mac OS X, I remember Pascal being the best thing, only to be replaced by C and C++, then as they couldn't improve their own tools, having them based on Metrowerks.
I remember Common Lisp, Dylan, Hypercard, Newton, Quickdraw, Quickdraw 3D,...
So I think it is more than fair to put them on the same bag.
And I say all this as someone who has mostly stuck with Windows since NT 4. Personally, I find it just sad the way they've mismanaged the developer story for the platform, starting, really, with the introduction of WPF.
On OS X, in contrast, the developer story has been pretty consistent since the introduction of OS X: Write your apps in Objective-C+Cocoa. Full stop.
Of course, now Apple has introduced Swift, and the coexistence of Obj-C and Swift does seem like it complicates the developer story. But not nearly to the extent the MS developer story has been, and continues to be, a mess.
I mistakenly stuck with .Net and ended up going to back end data work before returning to the web side as I had begun years before. Things are good on the web and cloud side but I stick see Xaml as too risky to go back to now, even with Xamarin.
(also "Ratnering" too, and saw some people here in HN creating the name "Elop effect" that is when you do a "Osborne" and a "Ratner" in the same announcement).
Some examples:
1. That Memo "Symbian is dead", when in the third world Symbian was crushing the iPhone like a hydraulic press, due to its sheer utility/price performance (ie: being almost useful was the iPhone was, for much lower price, this is including all the informal dev ecosystem). In Brazil Symbian had 68% of the market share... in the end of that year it was zero, and chinese OEMs instead took over the market selling unbranded Android phones. Nokia now in Brazil is a unknown brand, some people recognize chinese OEM factories and don't recognize Nokia.
2. Microsoft repeat killings, and unkillings of their game APIs, for example they removed DirectDraw from Vista, noticed part of the sales stall was direct result of that, and put it back (in emulation form), still, this was enough to make many, many people do their best to not switch from XP, and introduced in gamers the notion to not upgrade immediately (also MS notoriously removed in Vista support for 3D Audio Hardware Acceleration, and only added partial support back on Win8, that one killed an entire industry, 3D Audio chip companies went dead left and right, or became zombies, now that 3D Audio is /needed/ for VR to make people not feel sick, it is the GPU companies that are trying to pick up the slack and make hacky workarounds to generate 3D Audio using the video API to go around Microsoft).
3. Sort of part of point 2, but MS killing XNA out of the blue, the intention of XNA was to be a Xbox 360 dev API that you could also use in Windows, they killed XNA before announcing Xbox One, and now are advertising Windows Universal Platform for Xbox One with selling points very "XNA-like", but this time you don't see devs rushing to evangelize for MS, instead they are writing opinion pieces on Guardian (EPIC) warning against it, creating their own Linux Distro (Valve) to go around it, and so on. Also it caused a mono gamedev ecosystem to show up, with XNA dead, all the C# devs had to go to mono, making the previously MS-only platform games now become cross-platform (something that is probably bad for MS in the business sense).
4. The "DX12 is Win10 only" thing while Win10 is not being able to overcome past Windows versions in market share, the best outcome for this for the wide public is instead of using DX12 the devs go with Vulkan, something that for MS is obviously bad in the platform clamping-down sense. But probably what will happen is the worst outcome: like in the DX10 for Vista era, devs will just keep staunchingly supporting DX9, like they are still are (even new AAA games with native DX9 support come out sometimes), resulting into a even messier backwards compatibility environment.
Windows 10 past 20% market share http://gs.statcounter.com/#desktop-os-ww-monthly-201504-2016...
That very much sounds like "not being able to overcome past Windows versions in market share" to me.
Also, Steam defaults to "Windows lastest version" in some situations (example: the stats for game purchases by platform, count as lastest windows when you buy using mobile)
Also Wine counts as Windows.
Finally, you forgot to count the 32 bits versions of each OS.
Win10 64+32 is 39.51%, Win7 64+32 is 39.54%
And for a dev standpoint, going exclusive DX12 now would still be a stupid decision, if you look in the "DX graph", you will see that only 33.52% has Windows 10 AND DX12 GPU at the same time, meaning a DX12 exclusive game would lock itself to a minority of the market.
1. MS anticipated cheap Android OEMs
2. They anticipated VR and anticipated the need to integrate 3D audio in 3D hardware, which is the grafics cards at the moment. They were involved with VR from Kinect.
3. Multiplatform is not bad.
4. DX9 is probably good enough.
[1]: http://allthingsd.com/20121113/in-the-sinofsky-departure-bil...
My guess on this one: the new Metro-style app platform was the work of Sinofsky's Windows Division, while traditional XAML app tooling belonged to some other division. In such a scenario, if XAML could be deprecated and Metro-style apps made the One Way to develop apps on Windows, it would mean that a big slice of Microsoft's business that had previously belonged to some other exec would now belong to Sinofsky.
(A turf war, in other words.)
If the idea of a Microsoft executive being willing to pursue a course that would hurt Microsoft just to increase his own power seems unrealistic, I would refer you to the Iron Law of Institutions (http://www.tinyrevolution.com/mt/archives/001705.html):
The people who control institutions care first and foremost about their power within the institution rather than the power of the institution itself. Thus, they would rather the institution "fail" while they remain in power within the institution than for the institution to "succeed" if that requires them to lose power within the institution.
Windows division wasn't happy seeing the new .NET guys getting all the focus and I bet most of the issues weren't technical challenges that couldn't be solved, rather political between divisions.
After all, history of computing has enough examples of OSes being done in memory safe languages.
I also bet it is no coincidence that WinRT model isn't nothing more that the COM+ Runtime brought back from the ashes, using .NET metadata instead of COM type libraries.
This is what .NET was supposed to be like, before Microsoft decided to go with the CLR approach instead.
That would be Developer Division. And a little later, this happened http://www.zdnet.com/article/microsoft-splits-up-its-xaml-te...
Switched my main focus to .NET around 4 years ago, and we keep on having more requests for proposals than we can fulfil, including new applications.
I totally agree the mishandling on the Windows 8 announcement is what killed windows just as it was getting good. The freedom to style WPF apps would have made Windows keep it's place as the OS that you could make your own but Windows 10 is trying to be Apple, constraining what you can and can't do and forcing you through an App Store.
All our projects are either Java or .NET stacks, both with native and web deployments, with some C++ on the side when required.
We started to focus again in .NET around 2010, way before any of the open source announcements took place.
The Windows 8 tablet-ification push was a serious misstep, and it is a damned shame, because the underlying guts of Windows have gotten much better since Win7.
I'd love to read a summary of the improvements if anyone has a link handy.
Everything other than #2
---
https://en.wikipedia.org/wiki/Features_new_to_Windows_10
Everything other than #s 1.3, 1.4, 2.3, and 3.3
There's some other nice things, like finally being able to mount ISOs natively without DaemonTools.