Thursday, June 7, 2007

The Danger of Selling Development Tools

If you have a platform—like Microsoft Windows or Mac OS X operating systems, Java and .NET virtual machines, the iPhone, etc.—and you make development tools for it, I believe you're better off delivering said tools for free.

Now, you can charge for the platform, for the tools, for both, or for neither, but I'd argue that you want the development tools to be as cheap as possible, and, if possible, free. You want to do this because you want to encourage as much development
as you can, and any barrier to development, including the cost of tools, reduces the likelyhood of outside developers building software for your platform. And an active development culture helps to make your platform compelling.

You can't build everything yourself. You can build the premiere applications for your platform, and establish a look and feel, a set of standards that everyone strives for -- Apple does this well, but if you try and lock out the outside developer, you will eventually lose ground to someone else, because an active development community is vibrant. They'll turn out crap, and they'll turn out some weird stuff, and they'll turn out some really great things, and you'll miss out on all of that. I'm biased, because I'm a developer, but even as a consumer, I've shied away from platforms that felt as if they were a development monoculture.

For instance, I've tended to prefer PCs because the Mac development community has often been less vibrant, IMO. In recent years, this has seemed less true.

You also want to make your tools extensible, for the very same reason. If you attempt to build all the tools yourself, you'll lose ground to someone whose tools can be extended by the community, because, again, you can't build all the tools yourself, and if you help developers to help themselves, they'll build an array of supporting tools that make your tool that much more powerful. This leads to more developers using your tools, developing for your platform.

This is, I believe, one of the areas where Microsoft has gone wrong with Visual Studio. They charge for most of the editions of Visual Studio, which encourages some developers to look elsewhere. They offer a free edition, Express, which is a good move, but the free edition cannot be extended (see the TestDriven.NET story for that; I won't attempt to argue who's in the right there, but I do believe it is in Microsoft's interests to allow developers to extend Visual Studio Express).

Now, because Microsoft Windows is one of the most successful platforms on the market, the tool strategy may not hurt them as overtly as it would hurt others, but I do believe that it hampers the adoption of .NET, and reduces the number of potential Windows/ASP.NET programmers.


anjanBacchu said...

hi there,

nice post.

"but I do believe it is in Microsoft's interests to allow developers to extend Visual Studio Express"

Won't a large segment of paying customers shift to using express if MS allowed that ?

MS shareholders surely are NOT only interested in goodwill but their bottomline ?

Thank you,


Geoffrey Wiseman said...

Yeah, it's certainly a risk, in that regard. If MS doesn't believe it can do a better job building on Visual Studio than the open-source community, it may lose some or all of its visual studio revenue to the community.

On the other hand, if that ends up being true, I think that's for the best. You have a vibrant and engaged developer community using your tools. You can invest less in those tools yourself, if you're not getting revenue from them, or help the community tools grow.

Ultimately, though, I believe you end up with better, albeit indirect, revenue by encouraging lots of developers to get involved and stay involved -- so instead of selling Visual Studio licenses, you're selling more copies of Windows for the servers and desktops their applications generate.

Now -- that's harder to argue in Microsoft's case, where they may already be getting significant revenue from Visual Studio, and might argue that they wouldn't see significant increase in the desktop market share (which is already pretty high). They might see a noticeable return on the server-side market share if they could capture the minds of more server-side developers.