Dear Microsoft,
I can’t tell you how much it pains me to write this letter. I thought we had a great relationship as developer/software provider. I left my Apple roots in the mid-90s for your brazen swagger and staggering command of the market. Lately it seems like you just don’t care. And by lately, I mean the last 10 years.
Unfair you say? Well, let’s talk about all the times you’ve let me down in the past decade:
Windows Vista: I think it’s fair to say that keeping me as a developer on the same platform for 6 years is pretty bad, but when it makes my customers stay there too and keep me entrenched on old platforms for far longer than I’d like, well that can be downright intolerable. Your market share for XP on the desktop is a staggering 50%. That’s like driving my car from high school…when I’m 35. Your own numbers can’t hide the fact you’re struggling to get people to care. Your incessant need for complexity in upgrade plans, coupled with astoundingly high prices to upgrade, not to mention the requisite hardware changes as well, pretty much made everyone take stock and sit back on their ancient PCs for another few years. Writing software for these clients is about as much fun as shoveling a barnyard full of manure. Wait, the manure pile is at least outside where I can get sunshine and fresh air. You’re less fun than that.
.NET, Silverlight, and a wide variety of aging platforms: Developing on your platforms is like building the World Trade Center on the shifting sands of an earthquake zone. Everyone knows it’s not smart, but we’re stuck with it because of prior commitments. Speaking of commitments, can you keep a platform alive for more than a few years? Let’s list the litany of technologies released and then abandoned by you in the past 15 years: ADO, Silverlight, DNA, BizApp, .NET, J#, XNA. With Windows 8, we’re now going to write everything in HTML5 and Javascript? Hello 1999, we were doing that ages ago, and with you leading the way. But not this time. Hell, you’re having such a hard time following, you aren’t even on the committees anymore. (And you just announced that you’re canning Silverlight and ALL plugins for your newest browser) Are you guys even listening to the conversation anymore or are you just mumbling to yourselves in the corner?
Windows Server: Windows 7 came after we all gave up on Vista, and that’s worked out pretty well now hasn’t it? (See my market share remark above). But on the cusp of Windows 8, you claim you’ve defeated the dragon of Linux? Seriously? We stopped taking Windows seriously as a server platform years ago. The only ones left who care are those stuck with Exchange or Sharepoint in their companies.
Windows 7 Mobile: I’ll give you props for making a gutsy move here. Acquiring a dying company, killing their development platform and shoving yours down their throat takes a whole lot of chutzpah. But Google and Apple aren’t even taking you seriously as competition, and neither are consumers or developers.
Skype: Picking up a company that doesn’t even use your core technologies ought to be a clear signal you’re not making the right move here. eBay couldn’t figure out what to do with them, and we all scratched our heads about that one…what makes you smarter this time? No one else seems to know, the smart money says you don’t either. Gambling is always a sign of a dysfunctional relationship.
I’ve grown in the past 10 years. You’ve floundered. I’m trying to stay on top of the market trends, meet the needs of my consulting clients, and learn exciting new technologies. You’re nowhere to be found in any of those places. I can’t take this anymore.
So Microsoft, I’m breaking up with you. You used to woo me with a promise of more software, better games, more developer energy. But that was a long time ago. You’ve been sitting on the couch, drinking beer and watching too many Windows Media Player videos. You’re fat, old and tired. I can’t live with that anymore. Apple won my heart back.
Apple did everything right the past decade: a good phone, a good tablet, good operating system and good hardware. They made it easy for me to work on whatever I want by supporting virtualization of any operating system. Most things just work right out of the box on my Mac. I haven’t had that experience with you in years. And most of my developer friends agree on that point. Last conference I went to, 80% of the attendees had Macs. Half of those do Windows development on them. I run Linux and Windows 7 in the background while I work on the Mac. Doing that on a Windows machine makes it want to roll up into a ball and cry like a baby. I can’t take changing your diapers anymore.
I’ve had enough. We’re through. And just so we’re clear, it’s not me, it’s you.
Hilarious! And unfortunately, but not surprisingly, I share a similar view.
OK, Buh-bye.
– Love, Microsoft.
.Net hasn’t been abandoned.
HTML+JS is only one projection of WinRT. You can also use CLR languages or C++ if you want to, and it feels a lot like writing WPF or Silverlight apps.
Silverlight isn’t going away, it’s just desktop-only (IE in the desktop frame still runs plugins; it’s the Metro chromeless version that has them turned off). Which is exactly what it is today; you don’t get Silverlight plugins on a WinPhone7, why would you expect it on a tablet with no desktop?
Most of the technologies you mention aren’t dead. Silverlight and XNA are built on .NET, and are still in active development and use. Most of the others didn’t suddenly become useless, they were just supplanted with better things.
As I struggled to sum up my disappointment with Microsoft, you did well and I agree.
Apple and Linux has more at the core to offer. Just need developers and commercial software support.
But it’s not the belle of the ball either: http://www.computerworlduk.com/news/applications/3284420/microsoft-may-abandon-silverlight-and-net-developers-worry/
From the looks of it, native HTML5 Metro is the preferred style and the rest of the CLRs are just ways to get there, and not 100% compatible.
http://blogs.microsoft.co.il/blogs/sasha/archive/2011/09/15/winrt-and-net-in-windows-8.aspx
Laughable. Yeah, yeah, Apple is infallible, Apple never makes mistakes, and Apple never, ever deprecates code or methods of writing code, right?
The fact that you haven’t had a good hardware experience with Windows almost makes me wonder if you have actually used any modern versions of the OS. Awful as some aspects of it were pre-service packs, even Vista had pretty good device support right out of the box (after the initial launch). Windows 7 is even better at that; most people don’t need to install any drivers at all after dropping it onto their machine, and that’s pretty significant, given that it runs on virtually any relatively modern hardware configuration. How many configurations can you install OS X on? Oops… looks like you’re stuck buying a new computer from Apple if you want to upgrade some parts.
Moreover, the fact that many of your developer friends are using Macs to write Windows apps isn’t really a statement about the quality of the OS they’re using. It’s more a statement about the quality of the hardware out there – cheaper (usually Windows) laptops can get flimsy and the battery life isn’t great. Not a fault of the OS.
All of this is cyclical anyway. Apple has had their time to shine, but that will probably go away within the next decade with the departure of Steve Jobs. And eventually some other company will come along and make a phone better than the iPhone, and suddenly iPhones will be the next Blackberry. And so it goes.
Acting like one has to draw a line in the sand over which OS they use is childish, though… especially when most of your complaints don’t even apply to the OS itself, and you demonstrate such a vast misunderstanding of the things you discuss.
Agreed. They obviously forgot also that they do lots of Enterprise business and this Metro crap just won’t cut it.
(I think the troll above doesn’t agree)
Your first link is speculation and an analyst quote, which is more speculation. I’m not sure how you got “HTML is preferred” from your second link; it just says that WinRT is a sandboxed subset of the full BCL.
One of the speakers in the keynote (I forget which) said that JS, CLR, and C++ are just “projections” of the WinRT API. I’m guessing it’s all native and COM-based, and the API surface is generated. This means you have access to the entire API surface from any projection in a more-or-less idiomatic way, and none of them are preferred.
It boils down to what you prefer to be writing in. If you know how to animate using jQuery and CSS3, do that. If you’re more comfortable in XAML, do that.
@Bryan: They’re not going to stop shipping the desktop. Win32 and WPF and WinForms and Silverlight full-trust apps will still work. Why are you feeling slighted?
.NET is abandoned? Clearly, the folks running MSDN didn’t get the notice: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27541
I didn’t realize XNA was dead either. Those Windows 7 Phone appls must all be make believe.
This is why I hate investing time in anything but straight HTML browser development. I love ASP.NET still but Microsoft trying to convince us to learn Silverlight, WPF, etc. is crazy.
I checked on the second link that dave the admin posted and like lots of folks out there he seems to be simply misinformed.
http://blogs.microsoft.co.il/blogs/sasha/archive/2011/09/15/winrt-and-net-in-windows-8.aspx
Quote:
“Although these limitations may seem artificial, annoying, and counterproductive, there is probably a good reason for having them. The Metro UI and Metro apps are a fresh start for Windows applications and their developers. There is no trivial way to port an existing UI app to Metro without a considerable UI redesign. It’s also a great opportunity to enforce additional limitations that make sure Metro apps respect the user’s privacy, conserve battery power, integrate well with the UI guidelines, and live in harmony within the application sandbox.
To summarize, WinRT does not replace .NET, nor does it compete with .NET – and the same applies to Win32. You can write server and client applications using .NET, including WPF and Silverlight. You can write server and client applications using C++, including Win32 and MFC. However, if you choose to believe in the Metro way, you can write Metro applications for Windows 8 using .NET languages or using C++ or using JavaScript, with a consistent set of APIs exposed through WinRT.”
.NET is fully compatible with WinRT but it is *different* than Win32 and doesn’t have a matching feature set and has a different expected execution environment so parts of the .NET Client Profile are restricted in the .NET Metro profile. Why? Because Metro style apps are mostly meant to target tablets not desktop PCs and there are more constraints such as battery-life, memory,etc to take under consideration.
.NET is not being abandoned and this article is coming off as pure FUD.
Oh come on… I’ve never seen an 80% Mac developer audience at any of the big conferences (PDC, BUILD, Teched, Devdays, you name it) and I’m not really interested of any conference down your road…
Besides what’s exactly your point? COM has been dead for how long now? 10 years? Yet there’s plenty of big projects out there that are using it and will be using it happily for god knows how long. While ISVs may be angry at MS leaving behind technologies, it mostly has to do with management complaining about costs of conversion. Yet, in real life, it takes so long for technologies like COM or .NET to phase-out that quite a lot of them (and/or their products) disappear earlier.
Learning new languages is trivial and object models/frameworks offer pretty much the same kind of things. Steve McConnell wrote that a good programmers should learn a new programming language every six months just to keep himself trained. I’m not sure through how many languages and environments I’ve gone through in my life starting with assembler. So what?
Good programmers know they’ll need to learn whatever is best at that moment to build what they need to build. Being it new, old or obsolete. The hard part is not in the technical details of a technology, it’s somewhere else. Developers should invest long-term in algorithms, patterns, relational model, transaction theory, graphs theory, queue theory and a lot of other founding things that are going to stay around for a long time.
It doesn’t take so long to ramp up on technologies and the fundamentals are still, today, what’s missing the most and what differentiate a talented programmer from a code monkey. Of course the market needs also a lot of code monkeys and patchwork-developers (meaning they patch together things without really understanding much of what their doing).
You should be heading to Apple if you see an interesting project and then maybe in a couple of years come back to Microsoft if you see another interesting one. Being it on COM, .NET or HTML5/JS. Hell, if you see a great data mining project where you can create new algorithms to analyze data, you should go there even if it’s on an old Mainframe. The meat is in the project not in the technology used to build the project. This is one of most depressing thing in the market: developers stuck in technological onanism forgetting they are building useful solutions.
Yet, it seems to me you’re sort of trying to find an excuse to go to the Apple camp. This reminds me, some time ago, of a MS blogger that made a post where he said he had to do buy an iPad to be able to show how ubiquitous an application built on the cloud can be. An application running on the cloud that can be accessed by a browser in a different OS! Can you believe it? Hello! It’s 2011, not even his wife believed him.
Just go there, you don’t need any excuse. It may simply be curiosity. But if you are more shifted to the “coding monkey” camp, you’ll be disappointed pretty fast also there. Apple will either collapse soon, or it will slowly (?) become the next Microsoft. We’ll see how long cocoa will be around and for how long Apple will be able to sell things like ASLR as a great innovation in security (when even Microsoft had it already in Vista and the Linux guys simply said “Uh? We though that was standard in every OS since ages”, so long for *nix roots btw).
Anyway, back to your article, there are lot of things for developers to be angry at MS but, really, big-a** generalizations/statistics from who knows which conference? J# as an example? Psychology in pills for the Skype acquisition? Please…
Sorry mate: -1, overrated (already, with just 12 tweets)
Try UBUNTU. Its magnificent! I resisted because I hate the name, but it is way way better than your dad’s-Linux.
If it is not the main API anymore but only a VM or extra API layer library that can be used in a compatibility mode then it is dead for me for new development. Sure, for legacy stuff it is still needed and I still expect updates for wide-spread technology. But for anything new or when the need for a technology change or major rewrite occurs it is out of the question.
I recently changed jobs and now use Windows 7 at work. I actually kind of like it. I only use macs at home (have for about 7 years now), but I was pleasantly not horrified by Windows 7. I have no idea what the developer experience is like though.
Well if you look at the graph from the link in this article, 50% XP’s are way ahead of all pretty much anything else, and there exists a definite trend toward more Windows 7 Systems each year. I develop using WPF for the presentation tier. However, can someone tell me why is Silverlight even needed? WPF had a very capable browser control, until they removed it. Why Silverlight and not ASP.NET using asp or basic html? Just to kill Flash?
@Mario,
thank you!
You have been reading too much crap on Internet it seems. While they are abandoning plugins in their new IE10 *METRO* browser, with METRO being the keyword, I just installed Silverlight AND Flash on the desktop version of IE for Windows 8.
BTW, Apple doesn’t support plugins either in Safari on mobile devices. The Metro browser is just that, to be used on tablets, notebooks with touch. When you are sitting in your money making cube, you’ll be using the desktop version more than likely.
ps – there are other things you are just flat out wrong about, you need to keep reading on Internets 😉
Great summary!!! I wish I had the ability to file for a full divorce too.
My plan is to continue with SL and WPF and the XAML for Windows. I do however plan to spread my wings a bit. Summarized my thoughts last night in this blog… Microsoft Windows 8 METRO and BUILD- The Good, Bad, Ugly, and WWTD
http://realworldsa.blogspot.com/2011/09/microsoft-windows-8-metro-and-build.html
I am a XAML lover, but Microsoft has really damaged any chance of it being used in most enterprises. I do think Microsoft shot themselves in the foot and killed Silverlight Politically:
http://realworldsa.blogspot.com/2011/09/political-side-of-silverlights-death.html
I do not like METRO for the enterprise, but am hopeful by the time it gets to the enterprise it will be a little more realistic:
http://realworldsa.blogspot.com/2011/09/metro-microsofts-embarrassing-try.html
I don’t think I agree with you about most of waht you say – it’s rather ill informed.
That said, I’m thinking of leaving Microsoft myself because with Windows 8 it seems they want to be like Apple in terms of limiting people’s ability to sell their own software through 30% commissions and censorship as they see fit. This monopolistic behaviour should be investigated in both companies.
Maybe I’ll develop for Android. Then again, maybe I’ll become a plumber. In the UK where I live they earn about four times as much as I do and seem pretty recession-proof.
Interesting article, thanks for writing it!
One thing you need to correct, and annotate the update in the post. Your chart links is misleading because it points to year old data. Note the dates in the URL. Try this one instead, same site, different dates, that shows that XP is WAY WAY declining and under 40%. More people use Windows 7 than XP.
http://gs.statcounter.com/#os-ww-monthly-200912-201110
Scott Hanselman
everyone has it’s own opinion.
I hope you can find your happyness with apple.
by the way, i’m running 3 virtualized windows server 2008 on my windows 7 pc. nothing crashing here… i suppose to be a very lucky boy.
The ship isn’t sinking, we just hit an iceberg (floating Apple). This ship is unsinkable (SS Microsoft). Consumers are moving away from big iron and expect it to work the first TIME!!! Microsoft’s culture is their biggest hindrance. Deploy it at any cost. But end user expectations have CHANGED!!! I’m 51 years old and worked on HP and DEC mini’s then IBM mainframes then Cisco switches and routers…..2007 I bought an iPhone and abandoned MSFT. Never looked back and I could see the future then and it is here. Oh, and I’m happy and my clients are happy. I heart developing iOS and OSx apps. The days of shrugging my shoulders when a Windows box abends are over. Don’t get me started on my 6 month Sharepoint (scare point) experience. Thank God almighty I am free at last.
Reading the comments on here by MS-centric developers reminds me a whole whole lot of a thread I found recently on google that was written back in like 2002 by ColdFusion developers. They were busy defending it, and Adobe, and how it was going to stay really relevant and there were still lots of jobs using it. It was laughable reading it now in 2011. Good luck with that obsolete useless skill set. The developers on here who still want to develop for MSFT because there’s still lots of legacy platform work out there are *exactly* the kind of “old software developers” you reference in your other blog posts that I would never, ever hire. I started with the first version of Visual Studio, OLE, and all that other early 90’s MSFT stuff and even then, it was glaringly apparent with their 50+ CD’s worth of MSDN quarterly update packages that their underlying philosophy was to shovel out garbage quickly and then abandon it – thereby keeping developers so busy on their treadmill they would never have time to learn any competing technologies.