How Microsoft Lost the Joel War
secretGeek .:dot Nuts about dot Net:.
home .: about .: sign up .: sitemap .: secretGeek RSS

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.]





'David Pickett' on Thu, 24 Jun 2004 13:01:10 GMT, sez:

I think you understate the importance of the API (and associated junk that helped developers write to it). IMO, Microsoft owes a large part of the dominance of Windows to MSDN. The OS with the most useful applications wins. BeOS couldn't win, because it didn't have people writing apps for it. OS/2, ditto. Novell NetWare, ditto (writing to the NetWare API was a special circle of hell all its own). Windows, there was a load of free, useful developer information, there were useful cheap or free third-party tools for developing for it, there was a (relatively) cheap way to get all the tools you needed, and there was a large crowd of people who had developed for MS-DOS, for whom the move to Windows was an evolution, instead of a revolution. Sun was smart enough to toss up a metric ton of development information (and free tools) for Java, which helped adoption on the part of developers. Linux has a bunch of free tools, of course, and quite a few developers who dabble, and if someone ever figures out how to write a REALLY GOOD software installation system, cheap or free, easy for developers to use, and brainless for end users, I think Windows has some competitive worries.
Windows didn't win *solely* due to "the API," of course, but it could not have won to the extent it has *without* it.



'secretGeek' on Thu, 24 Jun 2004 21:49:26 GMT, sez:

you're probably right David.

MS always made writing apps very easy on their system. And all those nice third-party apps may have helped sell people their first MS box.

But a lot of the applications that sold so many windows applications were MS apps -- i.e. Office (Word and Excel in particular). {granted, MS didn't do all the actual programming themselves ;+), and this is significant to the story. }

thanks for the feedback,
leon



'Gord' on Thu, 24 Jun 2004 22:46:37 GMT, sez:

Great post.

Joel is a very clever man. The way that the has built a community around him and his great writing skill is a great feat, and one that plenty of wannabe ISVs are trying to replicate as part of the "blog explosion" (stand more than forty feet away at all times).

But what always makes me curious, is the question -Can he turn this developer community and industry recognition into some truly great products? There sure haven't been any yet - sure CityDesk is neat, but kind of dinky in the CM world - FogBugz is prolly just the bugTracker they used writing CityDesk...

As such, I think you need to use a critical eye reading all his posts. He's certainly aware of the influence he has, and isn't above using it to his advantage. Remember it was Joel who taught you about Fire and Motion...



'Richard Tallent' on Fri, 25 Jun 2004 05:43:06 GMT, sez:

As a long-time web application architect/developer, I only differ really on one point:

ASP.NET applications are *not* really a special, quite tricky, subset of Windows applications. That's like saying that WinForms apps are a "special, quite tricky subset of command-line apps." It's a whole different world, and they require a completely different mindset to be done right.

Give me my DHTML+CSS any day of the week over the frustrating world of form-loading, control positioning, user-drawn controls, and linguini-coded little pockets of event-handling code. Web apps have a single *real* event (the "request"), an open canvas (that the user can replicate into other windows or tabs as needed), instant deployment, etc.

The pretty wrapping that *some* of ASP.NET (the library of postback/viewstate-style forms and server-side controls) is a decent transition abstraction for the newbies from the WinForms world, but many of us ASP.NET devs out here are much more productive and flexible without all that fluff.



'Mike Dimmick' on Fri, 25 Jun 2004 07:42:00 GMT, sez:

It's not so much that Microsoft are breaking backward compatibility. It's that they're not planning to enhance - much - the backward-compatible APIs. IIS 6.0 can be put into an IIS 5.0-compatible mode - but you don't then get the extra reliability features of its native mode.

Likewise, the current plan is apparently that the system-supplied Windows Forms libraries won't be much enhanced from their 2.0 version (coming next year) post-Longhorn, and that the Win32 API won't be much enhanced either. The plan is that the .NET-based WinFX libraries will become the primary interface to new operating system functionality.



'Jacques Surveyer' on Sun, 27 Jun 2004 21:36:54 GMT, sez:

I will add an addendum to your "Think outside the browser ....." admonition to developers: "... because if you don't Redmond will surely make you pay since they have gutted all support for DHTML and bring IE up to W3C standards in HTML, CSS and most importantly DOM. Redmond also stopped all development on IE and therefore throttled JPEG2000, SVG, PDF, XForms, Flash/SWF, and many other de facto and de jure Web standard apps and utilities. In the meantime, Redmond does not provide a toggle switch in their developer programs that allows users to choose like they can in Adobe and Macromedia apps to have all generated code adhere strictly to W3C and other Web standards - no I don't want the FrontPage nor CSS nor DOM proprietary extensions. Oh and by the way, Redmond has bought the rights to poison the well of Java development on the Windows platform by being able to issue an obsolete and outmoded JVM through 2007."

So be advised developers - if you want to play in the Windows world, realize its going to be a tilt tilt tilted playing field.



'secretGeek' on Tue, 29 Jun 2004 20:31:03 GMT, sez:

hi Jacques -- Some of your comment is quite valid, but its tone is very preachy. I'd really rather you used *your* site for preaching, not mine.

cheers



'Kathleen Dollard' on Thu, 01 Jul 2004 01:47:41 GMT, sez:

Thanks for putting a big smile on my face!

C# = "VB.net: Squiggly Bracket Edition"

You are da' man!



'dawesi' on Tue, 13 Jul 2004 00:18:21 GMT, sez:

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

An interesting 'excemption' to this would be Macromedia's Coldfusion MX which can now be run on a cd or a memory stick cross platform. Sounds like asp.net is years behind Macromedia to me...

Try doing that with anything Microsoft?



'dawesi' on Tue, 13 Jul 2004 00:21:18 GMT, sez:

and Mike...

The items "IE" and "stabilty"... yeah good one.

Internet Explorer 6 is the new Netscape 4 - one patch a minute and behind the times on standards.



':-:s€zær->' on Sat, 24 May 2008 16:30:26 GMT, sez:

css textboxt input (textfield) style - examples - -
http://www.css-lessons.ucoz.com/textbox-css-examples.htm



'xxwcemil' on Sat, 07 Jun 2008 08:39:06 GMT, sez:

HI i need your help i really want to create my own website/web page but i dont know how to go about doing it so can you please help me out



'kreditrechner' on Thu, 20 Nov 2008 17:02:27 GMT, sez:

Give me my DHTML+CSS any day of the week over the frustrating world of form-loading, control positioning, user-drawn controls, and linguini-coded little pockets of event-handling code. Web apps have a single *real* event (the "request"), an open canvas (that the user can replicate into other windows or tabs as needed), instant deployment, etc.




name


website (optional)


enter the word:
 

comment (HTML not allowed)


All viewpoints welcome. But the right to delete any post for any reason is reserved. Don't make me do it. Comments may be republished, emailed to your loved ones or printed and used as toilet paper. Who reads this legal bit anyhow?

TimeSnapper is a life analysis system that stores and plays-back your computer use. It makes timesheet recording a breeze, helps you recover lost work and shows you how to sharpen your act.

TimeSnapper won last year's Developer Competition at Larkware.com, and is used by over 10,000 people.

Articles

What then, is b? What then, is b?
SQLike: A simple editor SQLike: A simple editor
Yet Another BizPlan Generator. Yet Another BizPlan Generator.
HOT GUIDS: A hot or not site for guids HOT GUIDS: A hot or not site for guids
How does life get better? One tiny hack at a time. How does life get better? One tiny hack at a time.
24 things to do, and 100 things *not* to do (yet) for building a MicroISV 24 things to do, and 100 things *not* to do (yet) for building a MicroISV
Venture capital won't kill Jeff Atwood, it will only make him Jeffer. Venture capital won't kill Jeff Atwood, it will only make him Jeffer.
A handy workflow image for newbie mercurial users A handy workflow image for newbie mercurial users
Fractal Feedback, a diversion into recreational programming Fractal Feedback, a diversion into recreational programming
Hump-Jumping: How the Education of Computer Science can be Saved, err, maybe. Hump-Jumping: How the Education of Computer Science can be Saved, err, maybe.
Suggested User Experience Improvements for DiffMerge Suggested User Experience Improvements for DiffMerge
SQL Style Extensions for C# SQL Style Extensions for C#
The Movie Hollywood (And My Wife) Doesn't Want You To See: Weekend at Jacko's The Movie Hollywood (And My Wife) Doesn't Want You To See: Weekend at Jacko's
Sysi: the ultimate administrators toolkit Sysi: the ultimate administrators toolkit

Archives .: secretGeek :: Complete Archives
TimeSnapper -- Automated Screenshot Journal TimeSnapper.com    
Version 3.3: true productivity boost

Next Action NextAction
Managing the top of your mind

World's Simplest Code Generator (html edition) World's Simplest Code Generator

25 steps for building a Micro-ISV 25 steps for building a Micro-ISV
3 minute guides -- babysteps in new technologies: powershell, JSON, watir, F# 3 Minute Guide Series
Universal Troubleshooting checklist Universal Troubleshooting Checklist
Top 10 SecretGeek articles Top 10 SecretGeek articles
ShinyPower (help with Powershell) ShinyPower
Now at CodePlex

Realtime CSS Editor, in a browser RealTime Online CSS Editor
Gradient Maker -- a tool for making background images that blend from one colour to another. Forget photoshop, this is the bomb. Gradient Maker


[powered by Google] 


How to be depressed How to be depressed
You are not inadequate.



Recommended Reading

The Best Software Writing I
The Business Of Software (Eric Sink)

Recommended blogs

Jeff Atwood
Joseph Cooney
Phil Haack
Scott Hanselman
Julia Lerman
Rhys Parry
Joel Pobar
OJ Reeves
Eric Sink

Aggregated Links

proggit
dzone
hacker news
dot net kicks

Human Link Machines

interesting finds
a continuous learner's weblog
arjan's world
weekly link post

LinkedIn profile
LogEnvy - event logs made sexy
ShuffleText - fuzzy search for .net
PC Smart Buys - Computer Hardware in Australia
 
home .: about .: sign up .: sitemap .: secretGeek RSS .: © Leon Bambrick 2003 .: privacy

home .: about .: sign up .: sitemap .: RSS .: © Leon Bambrick 2003 .: privacy