andrewducker: (Default)
[personal profile] andrewducker
Joel Spolsky (who you should all be reading, if you have any interest in computers) has something interesting to say on why he thinks Microsoft has a problem...
I'm quoting stuff dotted from all over an article here, even more so than usual - if you think you're going to read it, skip the following and go read the actual article

Although there is some truth to the fact that Linux is a huge threat to Microsoft, predictions of the Redmond company's demise are, to say the least, premature. Microsoft has an incredible amount of cash money in the bank and is still incredibly profitable.

However, there is a less understood phenomenon which is going largely unnoticed: Microsoft's crown strategic jewel, the Windows API, is lost.

There are two opposing forces inside Microsoft, which I will refer to, somewhat tongue-in-cheek, as The Raymond Chen Camp and The MSDN Magazine Camp.

The most impressive things to read on Raymond's weblog are the stories of the incredible efforts the Windows team has made over the years to support backwards compatibility

The MSDN Magazine Camp is always trying to convince you to use new and complicated external technology like COM+, MSMQ, MSDE, Microsoft Office, Internet Explorer and its components, MSXML, DirectX (the very latest version, please)

Inside Microsoft, the MSDN Magazine Camp has won the battle.  The first big win was making Visual Basic.NET not backwards-compatible with VB 6.0. This was literally the first time in living memory that when you bought an upgrade to a Microsoft product, your old data (i.e. the code you had written in VB6) could not be imported perfectly and silently. It was the first time a Microsoft upgrade did not respect the work that users did using the previous version of a product.

With this major victory under their belts, the MSDN Magazine Camp took over. Suddenly it was OK to change things. IIS 6.0 came out with a different threading model that broke some old applications. Then .NET 1.1 was not perfectly backwards compatible with 1.0. And now that the cat was out of the bag, the OS team got into the spirit and decided that instead of adding features to the Windows API, they were going to completely replace it. Instead of Win32, we are told, we should now start getting ready for WinFX: the next generation Windows API. All different. Based on .NET with managed code. XAML. Avalon. Not an upgrade: a break with the past.

Microsoft got big enough, with too many developers, and they were too addicted to upgrade revenues, so they suddenly decided that reinventing everything was not too big a project. Heck, we can do it twice. The old Microsoft, the Microsoft of Raymond Chen, might have implemented things like Avalon, the new graphics system, as a series of DLLs that can run on any version of Windows and which could be bundled with applications that need them. There's no technical reason not to do this. But Microsoft needs to give you a reason to buy Longhorn, and what they're trying to pull off is a sea change, similar to the sea change that occurred when Windows replaced DOS. The trouble is that Longhorn is not a very big advance over Windows XP; not nearly as big as Windows was over DOS.

The idea of unifying the mess of Visual Basic and Windows API programming by creating a completely new, ground-up programming environment with not one, not two, but three languages (or are there four?) is sort of like the idea of getting two quarreling kids to stop arguing by shouting "shut up" louder than either of them. It only works on TV. In real life when you shout "shut up" to two people arguing loudly you just create a louder three-way argument.

At last year's PDC they preannounced the next major version of their operating system, codenamed Longhorn, which will contain, among other things, a completely new user interface API, codenamed Avalon, rebuilt from the ground up to take advantage of modern computers' fast display adapters and realtime 3D rendering. And if you're developing a Windows GUI app today using Microsoft's "official" latest-and-greatest Windows programming environment, WinForms, you're going to have to start over again in two years to support Longhorn and Avalon.

So you've got the Windows API, you've got VB, and now you've got .NET, in several language flavors, and don't get too attached to any of that, because we're making Avalon, you see, which will only run on the newest Microsoft operating system, which nobody will have for a loooong time.

Installing a web application means typing a URL in the address bar. Today I installed Google's new email application by typing Alt+D, gmail, Ctrl+Enter.

Which means, suddenly, Microsoft's API doesn't matter so much. Web applications don't require Windows.

Much as I hate to say it, a huge chunk of developers have long since moved to the web and refuse to move back. Most .NET developers are ASP.NET developers, developing for Microsoft's web server. But it's a server technology, so clients can use any kind of desktop they want. And it runs pretty well under Linux using Mono.

Date: 2004-06-16 02:48 pm (UTC)
From: [identity profile] derumi.livejournal.com
Referring to a previous article you've linked to - Isn't this how WordPerfect lost out to Office?

Date: 2004-06-16 03:06 pm (UTC)
From: [identity profile] derumi.livejournal.com
I wish my memory hasn't been so shot lately. @_@

Well, I doubt Windows would swiftly cease to exist, but I'd swiftly abandon it if the apps I wanted ran on Linux seamlessly.

Date: 2004-06-17 12:41 am (UTC)
From: [identity profile] stillcarl.livejournal.com
Apple wasn't the only one that did themselves damage by ignoring backwards-compatibility - Amiga was the same. Amiga's big upgrade was from OS1.3 to 2.x and I used to get derided because I'd try and produce stuff that'd run on both versions. Forget those still using 1.3 I'd be told, but I couldn't see why I should.

Not that that was the only thing or the main thing wrong with Amiga's direction, but it was the one I noticed most directly. And as a user too, as a perfectly good WP and ray-tracer didn't appreciate the later versions.

And that's the main attraction of REBOL for me - I don't want to be tied to any one OS again. And I suspect that's the real reason for the move to Web-based apps suggested by the article. The price'll be high though with every second app you touch having its own unique approach to a user interface. Has to be an opening there for someone who can figure out a way to make Web apps consistent across OSs and languages.

A good read.

Date: 2004-06-17 12:52 am (UTC)
From: [identity profile] chillies.livejournal.com
Thanks. I Should read Joel on Software more often.

Whilst the article is a nice overview of Windows API hell, I think an important point is his distinction between languages with automatic memory management and those where developers have to do it themselves. That's another item on my figure-of-merit list when choosing languages for development.

Date: 2004-06-17 04:09 am (UTC)
diffrentcolours: (Default)
From: [personal profile] diffrentcolours
.NET 1.1 was not perfectly backwards compatible with 1.0

Ouch. Isn't breaking API compatiability what major version numbers are for?

Date: 2004-06-17 06:58 am (UTC)
From: [identity profile] douglasbryant.livejournal.com
Thanks for drawing my attention to this article, it is moderatly important to me and my work. It was certainly worth while reading.
Doug.

March 2026

S M T W T F S
1 2 3 4 56 7
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 8th, 2026 09:23 am
Powered by Dreamwidth Studios