I'm a Microsoft employee in Silicon Valley so I've gotten used to the slings and arrows of friends at social events. Last Friday was no exception. I joined a few friends for a get-together fund-raiser supporting a Team-in-Training runner. At the event I met up with a couple of friends; both marketing types like me. One, let’s call him M, works for a dev tools start-up in the software quality space and another is at a open-source startup.  M used to be at Redhat back when they had their groove on and with the other squarely in the open-source camp there was not much Microsoft love going around the table.  :-)

M’s product in the software quality space is actually pretty cool but only works on Java code.  Since Microsoft has been working at extending Visual Studio into other areas of the development life-cycle I thought it would be the right time for M’s product to integrate with Visual Studio.  As we move out into M’s area it would be a great opportunity for them to take advantage of the activities around the launch of Visual Studio 2005.  As I was leaving I offered to hook M up with the evangelist for Visual Studio Team System but he wouldn’t budge.  His response, “We’re just not seeing demand.  Are you sure that enterprises are using .NET?”  My response was that .NET had been picked up by the who’s who of Fortune 500 companies.  Both of them laughed and shook their heads.  They weren't buying it.  It was all in good fun and I had to leave but all the way home in my car I kept thinking that they were way off base. I think in many cases the information you get from customers is defined by which customers you ask.  Since then I’ve been looking to see if I could find some facts that justified my gut reaction and I found quite a bit.

Our own internal developer surveys show that .NET usage in Fortune 100 is upwards of 75% and 90% in Global 100.  But since those are internal surveys that might be seen as self-serving and I don’t have the data behind them I’ve looked around for independent validation of the momentum behind .NET.  It’s not that hard to find since “The vast majority of $1 billion-plus companies are now choosing to standardize their distributed computing on the Windows Server platform," according to Forrester.  Drilling down on that a little further, when they looked at a few different trends comparing .NET and J2EE last year they asked IT decision-makers at larger north american companies, “Which one platform will be used for the majority of your development work in 2004?”  Overall, 56% chose .NET over J2EE.  Interesting stuff,  have a look at the report.  In their words, “.NET has clearly arrived.”

Gartner had the similar results.  They ran a study of IT decision makers, developers and architects at large companies.  They asked to-the-point questions like, “What software application platforms do your company’s mission-critical applications run on?” or “Which one platform does your company currently use for the greatest number of its mission-critical applications?”.  Always, .NET was on par or slightly ahead of J2EE.  Not bad!

All of this points to the rarely spoken (ok, rarely outside of Microsoft :-) ) truth that Java and J2EE are just too damn complamicated.  Middleware Research has been doing some good work trying to compare the two environments.  They’re associated with TheServerSide.com (the enterprise Java community) and TheServerSide.NET (the enterprise .NET community) so they know the space well.  They did a pretty good study comparing Microsoft .NET and IBM WebSphere/J2EE in many different areas.  The 9 month long study looked at all sorts of things including developer productivity, manageability, reliability, and performance.  My favourite quote was in the area of productivity; “Microsoft’s tight integration approach paid off in the development phase, where VS.NET and the .NET platform proved more productive than either RRD or WSAD with the WebSphere platform.”

I say that the complexity of J2EE is rarely mentioned but I was amused to read a story recently where Sacha Labourey, European general manager at JBoss, came clean.  He said some interesting things about J2EE; “"If a company wants to create just five forms, it takes them four weeks to understand it.  Its very complex to do.” and nice things about .NET; “ASP.NET is good; too bad it's not in the Java camp."  Or even better, “Now that .Net has come along, which is easy to code with, much is needed to simplify Java”

Ultimately, I doubt that I can convince M of any of this.  That’s a shame since the problem they solve is also felt by .NET developers and if they leave the gap open for too long eventually someone else will fill it.  He’s waiting for customer demand but if you sell a product that’s aimed squarely at Java developers you’re not very likely to hear them ask you for a .NET version.  It’s self-selecting. Why would they ask about .NET if they’re using Java.  But who knows, maybe I’ll convince him the next time I see him. ;-)

If you’re interested in this kind of thing there is a bunch of good reading on this topic on MSDN.  Or, if you’re interested in some specific case studies (including some big names) have a look at the .NET site.