Bob Warfield says:
Ever since their spat with Sun over Java, Microsoft has been on an increasingly proprietary path called .NET.
I am not sure why .NET is “increasingly” proprietary. Why is it more proprietary now than it used to be? Arguably it is less so; Mono is more advanced; and in addition Microsoft is going cross-platform with the CLR, by bundling it into Silverlight. That does not make it less proprietary in itself, but means that it is less closely tied to Windows.
Warfield does not quite say, but strongly implies, that .NET is failing in the market:
It’s symptomatic that you can find about 18 million Google hits on “SQL Server” but there are 77 million hits on mySQL. There are 2+ billion hits for PHP and 135 million for Java. C# gets a modest 15 million hits.
Right, so by the same logic PHP is vastly more important than Java. For some reason, I get different results on MySQL, which reports 171 million hits. Just for fun I tapped in Oracle, which gets only 105 million, inflated by all sorts of non-database references, so we must conclude that MySQL is far more important in the Enterprise than Oracle.
No, this sort of Google-diving is lazy analysis. Sure, the results are interesting, but they are skewed in all sorts of ways.
I am not suggesting that .NET is bigger than Java. Nevertheless, it has been a success story for Microsoft, particularly on the server which is the focus of Warfield’s comments. So too has SQL Server; in fact if I remember rightly, the server side of Microsoft has been showing healthy growth versus the more stagnant Windows/Office side of the business.
Look at what Netcraft is saying: in its October 2007 web server survey it show gaining market share for IIS and implicitly .NET technology, and has done for several months. Don’t take the Apache drop too seriously; Netcraft’s figures are skewed by the decision to remove Google’s servers from the Apache figures. Nevertheless, Microsoft seems to be growing its web business on the server side.
Jobs? I track these from time to time in the UK, and C# has shown remarkable growth since its introduction, partly at the expense of VB, but also versus Java. Yes, Java is bigger, but you would expect that.
Why has C# succeeded despite Java? Ease of use, productivity and tools. All of these can be debated; but there is some consensus about the excessive complexity of JEE, which has benefited Microsoft. I’ve also noticed innovations in C# being quietly adopted in Java. Given its false start with Java in the early days, I think Microsoft has done well to establish its new language.
Now, I do partially agree with Warfield. Microsoft is an island and I notice strong polarization when I attend conferences and the like: there is a Microsoft crowd and a non-Microsoft crowd. And I agree that the open source community builds largely on open source technology, within which Java is more widely accepted than .NET. However, the .NET island is relatively large and so far has proved resilient.
Should Microsoft drop .NET and embrace Java or PHP, as Warfield kind-of implies? No. There is no technical need for it, because .NET works well. It is not really a rift with the web, because it is server technology and actually plays pretty well with others, through web services for example. The key thing on the web is to be cross-platform on the client. Writely, acquired by Google, was a .NET product. Did anyone care? No; in fact I doubt many were even aware of it. Now Google has incorporated it into Docs and I should think it has been rewritten in Python or something. Few care about that either; but if it did not work properly on a Mac or in FireFox we would all hear about it.
I don’t mean to minimize Microsoft’s problems. More than any other company I can think of, Microsoft has difficulty in balancing the needs of its OS and desktop application business with the migration we are all making to the Web. Further, it has big PR and image problems, and poor market acceptance for Vista must be a headache. Yes, there is a Microsoft crisis brewing. I’d suggest though that the company can succeed best by building on .NET, not by abandoning it.