How Microsoft Lost the Joel War

In which I commit the cardinal sin of criticising Joel 'My Hero' Spolsky.

[continues...]

You love Joel Spolsky. I love Joel Spolsky. He's hard not to love.

But don't be tricked by Joel Spolsky.

Joel is clever, knowledgeable and very convincing. Joel writes in a way that suggests he is your friend.

But is Joel Spolsky really your friend? Do you even know Joel? Is it possible that Joel sometimes uses his charm and wit to hide his true feelings and his true agenda?

I know! I know! Joel is one of the good guys, isn't he? But sometimes I worry about what drives him. Don't you?

His recent article 'How Microsoft Lost the API war' is damn good, very interesting, excellent food for thought.

And (like you) I've thought hard about this article. There's a lot of it, so I printed it out and read it on the bus. Then I read it again and underlined a few things with my pen. Then I read it once more and made notes in the margin. Finally, I read it yet another time and made notes in a little notebook I keep on me.

After all this, I've learnt a lot of things. But I've also come to some rather harsh conclusions.

The harshest conclusion is that Joel's article is a piece of FUD from a very frightened ISV (Independent Software Vendor), who has decided to try and invent the future.

Joel's fears (largely about finding and keeping a market for his products) lead him to build the following hidden argument.

  1. ISV's are the most important thing in the universe.
  2. ISV's feel intimidated by Microsoft, because it releases too many development tools.
  3. ISV's feel threatened by Microsoft, because it is the world's biggest ISV.
  4. ISV's who write web applications have less to fear from Microsoft.
  5. ISV's of the future will only write web applications.

Yes -- I've committed the "straw-man fallacy" by inventing an argument which Joel didn't really make. So i won't go on to derail this fictitious 'hidden argument.' I'll say this much: To the extent that Joel is saying these things, he's clearly misguided. Web Developers have even more to fear than Windows Developers. There are more malicious competitors (just a mouse click away) and guess what? Microsoft is still among them. So don't run from fear. Embrace fear. Acknowledge it. It's always going to be there.

Joel makes several valid and thought-provoking points throughout the article. My favourite points are:

  1. Microsoft has started breaking backward-compatibility. (for example IIS 6.0 has a different threading model)
  2. If you write a brilliant application for Windows, it may turn out that you were 'merely doing market research for Microsoft.'
  3. People don't upgrade their software often, and they don't buy new computers very often anymore.
  4. The biggest trouble with [VB/Java/.net] is shipping [the runtime/JVM/.net framework]
  5. Software Development is made waaaay more productive by Automatic Memory Management
  6. Asp.net is years ahead of other server-based software apps
  7. A "whole generation of developers" chose to write web apps over windows apps

I'm going to write down some thoughts on each of these points.

1. Microsoft has started breaking backward-compatibility. (for example IIS 6.0 has a different threading model)

Microsoft should stop doing this.

Every morning when a MS developer wakes up, she should say to herself:

Then the developer should take a long deep breath, look in the mirror and add:

2. If you write a brilliant application for Windows, it may turn out that you were 'merely doing market research for Microsoft.'

Microsoft should stop doing this.

Every morning when a MS developer wakes up, she should say to herself:

Then the developer should take a long deep breath, look in the mirror and add:

3. People don't upgrade their software often, and they don't buy new computers very often anymore.

So true. We let our computers and our software get woefully, woefully out of date. And often we don't upgrade the Operating System, or our biggest applications (like Office), until we buy a brand new computer.

But when we do buy a new computer we almost always stick with the same platform and we're usually amazed by the improvements. Ever seen someone go from Windows 95 to Windows XP? There's a lot of ooohing and ahhhing. Some cursing too, but mostly ooohing.

I think the shelf-life of a given home or business PC's will still be considerably less than that of a mainframe. Upgrades still happen, even if they're not as fast as microsoft wants.

4. The biggest trouble with [VB/Java/.net] is shipping the [runtime/JVM/.net framework]

Amen to that. This is something MS is going to have to make easier and easier if they want desktop Win Forms to take off.

But notice that this is identical to the biggest problem with HTML 4 (and SVG), i.e. 'How do you get people to upgrade their browser?'

5. Software Development is made waaaay more productive by Automatic Memory Management

Amen to that too.

I like how he points out that C# owes more to VB than it does to C++. With a little rebadging it could be called "VB.net: Squiggly Bracket Edition".

6. Asp.net is years ahead of other server-based software apps

You're right! You're so damn right! Asp.Net is brilliant! It leaves Asp, Php and every other damn thing so far behind in the dust that they look as useful as a frothy cup-full of goat's teeth*.

7. A "whole generation of developers" chose to write web apps over windows apps

Oh. That's pretty sucky. Web Apps are difficult to write well, so I pity us. Luckily we should all start moving to asp.net pretty soon now.

People who choose to write asp.net applications find it easy to write .net windows desktop applications as and when the need arises. This is because Asp.net applications are really a special, quite tricky, subset of Windows Applications. So the next generation of developers will automatically start falling back into the Windows Development world, even if they do only write asp.net apps.

And in a XAML world (at the moment i tend to believe that the XAML world will get here eventually) the conceptual gap between Web Forms and XAML Forms will be smaller. Don't hold your breath waiting for that. But it may pan out to be true.

Now, to get on with the anti-joel point of this blog entry. There are several points he raises that I'm not convinced of:

  1. Microsoft's crown strategic jewel [is] the Windows API
  2. Sharepoint [is] a veritable panoply of external dependencies each one of which is going to be a huge headache when you ship your application to a paying customer and it doesn't work right. the technical name for this is DLL Hell.
  3. The new winners in the application development marketplace will be the people who can make HTML sing.

1. Microsoft's crown strategic jewel [is] the Windows API

No, their crown strategic jewel is their gigantic user base. The user base is the asset. Until they lose that, they've still got the crown strategic jewel.

And no, it wasn't the API that got them there. I don't buy that for a second. They got there through lots of things: clever marketing, hard work on the office suite, industrial might, backroom deals, competitivness to the brink of criminality, purchasing other software companies, business savvy, luck, a tight grip on their IP, a user-focused culture (sorry but it's true) -- many crucial things that we will probably never fully learn about, but things that have little to do with the API.

2. Sharepoint [is] a veritable panoply of external dependencies each one of which is going to be a huge headache when you ship your application to a paying customer and it doesn't work right. The technical name for this is DLL Hell.

Joel is quick to spread a little FUD against the competition.

Sharepoint simply doesn't lead to 'DLL Hell'. But it is a rocking great product and a potential threat to sales of his CityDesk product. Sharepoint is a category-killer in the knowledge management/intranet portal space, if you can afford it.

[Disclaimer: the company I work at sells Sharepoint (and sells competitors to it, too). Sharepoint sales aren't related to my own role as a developer; and notably, my employers don't read this blog.]

3. The new winners in the application development marketplace will be the people who can make HTML sing.

Some of the winners may make HTML sing. But that's not where I'd look for most of the innovation.

The most innovative new consumer applications tend to be new desktop/server applications. Some recent examples of this include:

  • P2P software
  • Instant messaging software
  • RSS aggregators
and so on. Even though these are all TCP-IP based examples, they all rely on stepping outside the browser.

A lot of new categories, and new winners in the desktop app arena are yet to be invented. Please, developers, Think outside the browser. This is true regardless of what platform you work on, what rank you are, what size your organization is.

Actually, I like that point so much I'm going to repeat it in BIG letters and stop there.

Please Think Outside The Browser

cheers

Leon

[* Apologies for the Goat-Teeth similie. I've been reading too much Scott Adams lately.]

 

I'm currently writing a book about how to build your first product. If you want to build your first product, please sign up to be notified when the book is available.

(By the way, I read every comment and often respond.)

Your comment, please?

Your Name
Your Url (optional)
Note: I may edit, reuse or delete your comment. Don't be mean.