How Microsoft Lost the API War

Joel Spolsky’s recent essay on Microsoft’s API shift is a slam dunk. It’s a long article (as blog posts go), but it’s a must-read for developers.

Funny enough, I seriously considered moving my development to .NET by writing FeedDemon 1.0 in C#. The C# language itself is very nice, and .NET certainly makes some things a lot easier than Win32. But several existing RSS readers received poor reviews due to their .NET-related memory usage, and requiring the 20MB+ .NET runtime is suicide for most downloadable shareware apps. So, in the end I stuck with Delphi, which I’d used to create both TopStyle and HomeSite. Delphi creates standalone (ie: no runtime) Win32 executables, which for the moment makes it a better choice for shareware.

Oh, and I couldn’t help but nod in agreement with this quote from Paul Graham:

“If you want to write desktop software now you do it on Microsoft’s terms…and if you manage to write something that takes off, you may find that you were merely doing market research for Microsoft.”

I’m a one-person shareware company, and I even have to worry about the looming threat of Microsoft entering the same market that my software targets.

11 thoughts on “How Microsoft Lost the API War

  1. I expect that as Microsoft’s next desktop OS hits the market and XP becomes what 98 is now, the end-user worries of the .NET runtime will be ameliorated.
    However, I think the points about Microsoft’s de facto declaration of how we should all program is exceedingly cogent and forward-looking.
    Personally, I am looking to projects like Python and Ruby and maybe PHP5/PEAR to allow shareware developers to continue to provide the value and eash of use they always have.

  2. My problem with programming for .NET is, that you´re mostly stuck with VS.NET as an IDE (allright, there is Delphi.NET, but seriously…). I personally think that C# is nice (the only way I would consider programming .NET, as it is the language “closest” to the .NET way of thinking.
    But if I have to force people to download a runtime and have a lot of memory, than I will program in JAVA of course (with Eclipse).
    Just look at Azuereus, Java + SWT make for a good client platform.

  3. You wrote: “I’m a one-person shareware company, and I even have to worry about the looming threat of Microsoft entering the same market that my software targets.”
    Just don’t get into any negociations with MS over them buying your products… ;-)
    From what I’ve read over the years, they seem to have a history of using this tactic:
    – MS approaches interesting company with a good product to do merger talks
    – MS looks over all the tech details of the product during due diligence
    – MS then calls off the talks and walks away
    – A few months later, eerily similar product appears from MS
    … poor sucker goes out of business or tries to sue MS, which has a big enough pool of $$$ and lawyers to keep you in court until *his* money runs out…
    I’m sure glad that never happened during your talks with them over HomeSite… and glad you didn’t sell to MS. They would have ruined or canceled it within just a few revs.

  4. I looked at .NET as well in the beginning, but rapidly moved away from it. Sure, C# is a nice language, but the runtime and the fact that you are tied to Microsoft is what got me away.
    I also looked at Java, but honestly, I don’t see the point. Java looks like making everything a lot more difficult than it is supposed to be.
    I’ve been programming in Python and PHP for the last few years, and depending on what type of thing I need to program, I always seem to take one of the two. Python with e.g. wxPython is a really nice way of creating window based applications (cross platform without any worries), while PHP is still rocking for website related stuff.
    The nice thing about Python and PHP is that they are totally free, and that is not only the interpreter, but everything from IDE to libraries etc…
    pieter

  5. Don’t get me wrong here – I’ll move to .NET eventually, when it makes more sense to do so. C# is an excellent language, and the VS.NET IDE is nicely done.
    But right now switching to .NET offers no benefit to my customers, and chances are it won’t make sense to switch until Longhorn.

  6. Jeff, MS isn’t the only one that uses these tactics. I’ve talked with other companies who used buyout offers as a way to figure out where I was headed. The thing to remember is that both parties see each other’s plans, so I benefit just as much from these talks as the other company, even if the buyout is just a pretense.
    In Microsoft’s case, I don’t believe the HomeSite buyout negotiations were bogus – after talking with their team, it was obvious that they wanted some UI assistance on Visual Interdev. However, it is true that they would’ve killed HomeSite (immediately, in fact).

  7. You might want to go the .NET route when PC OEMs have completed their 3-year cycle of pre-installing the .NET run-time on every new PC.
    Of course, even in this scenario, you are bound to use config files to use a proper CLR run-time.

  8. I must admit i´ve thought about “porting” something similar to Topstyle to the Eclipse Platform. Would be a killer Ap, and Eclipse has build-in support for versioning systems & ftp & server managment.
    But it´s really lacking when it comes to CSS / XHTML. Even IBMs WSAD has crappy support for CSS / HTML…
    Topstyle as an Eclipse or RCP Plugin would be sooo nice :-)
    Besides, Eclipse has a very similar UI concept.

Comments are closed.