Is there still a .NET vs Java batlle?

imageI’m not sure how long you guys have in the industry, but I have been around the software engineering space for a while. I was already been coding and working professionally when Microsoft’s released .NET back in 2001 or 2002 and started tinkering with the thing using the beta build of .NET Framework 1.0.

The company I worked for at the time had some tough decisions to make and decided that the company was going to place a significant amount of its eggs in the proverbial basket sitting comfortably in the Microsoft bandwagon. I believed then as I do now that it was a wise decision however, being such early adopters, and being the ‘new kid on the block’ going up against the then industry darling Java, there was quite a bit of research and some pretty interesting debates at the office about the choice of .NET as our primary development platform.

I recall very clearly the day I fired up the IDE for the first time. It was Visual Studio 7 & .NET Framework v1 and a colleague (who was affectionately called ‘The Overlord’) for whom I have the greatest respect, looked over my shoulder and said, “Hum, that’s interesting, but … why don’t you use Java?”.

image

Over time there were a number of very heated discussions on various technology subjects and Microsoft’s technology decision as it related to their platform and products, but I think Microsoft did some things that won us over. They were certainly evolving their platform and doing some things extremely well. Their implementation of Attributes and delegates were impressive from the get go, then the choices that they made in implementing Generics in the version 2.0 of the Framework where truly impressive (especially compared to Java’s erasure implementation) to rationale behind the choices that they made in changing the runtime truly impresses us (well me at least). The evolution of the C# language and the truly productive IDE deserves mention as well. I can go on about the list of impressive things, but that isn’t the point of this post.

A lot of my career has been spent with smaller companies during their ‘building years’. My experience at those companies and interacting with others of similar size and developmental stages has been pointing to Microsoft .NET the preferred software development ecosystem. At the same time, when speaking with larger companies, either as clients or colleagues you would often get the funny looks and people push back saying as if it is simply a universal fact that – “At the enterprise level, no one uses the .NET platform. J2EE is what runs the enterprise”. I heard almost the exact same thing with regard to the Windows Server OS this week on the job, which shall be the subject of my next post … and by the way, I now function at an enterprise capacity as my company does consulting to the Government of Trinidad and Tobago.

As a Solutions Architect, its actually my job not to take sides and have an objective view of the entire playing field and when I hear (or make) statements such as these, I need some level of empirical evidence. It would seem that in this case however, the fire behind this particular argument has largely subsided since I found it a bit difficult to get recent and independent information on the subject. Any links that my readers find would be greatly appreciated =) … So… See for yourself:

Software developer survey

http://www.zdnet.com.au/java-net-still-top-trumps-for-developers-339313210.htm

and … some interesting findings from Research another  group

http://www2.prnewswire.com/cgi-bin/stories.pl?ACCT=109&STORY=/www/story/11-28-2007/0004712963&EDATE

LONDON, ON, Nov. 28 /PRNewswire/ – Despite commonly held assumptions in the developer community, Microsoft’s .NET platform is more popular than Java among enterprises of all sizes and industries, according to recent research from Info-Tech Research Group. The research study explored the relative prevalence of Java and .NET across different types of enterprises, revealing that Microsoft’s .NET platform has gained considerable market share, becoming the favorite of most enterprises.

Cheers

Advertisements
Tagged with: , , , ,
Posted in .NET, Java, Microsoft, Personal Projects, Random Thoughts, Research
9 comments on “Is there still a .NET vs Java batlle?
  1. Jack Door says:

    It has always been interesting to me to see the routine trotting out of stats from sources of varying levels of credibility in polarizing debates – Windows vs Unix! Microsoft v Open Source! Android vs iOS.

    Often times, the amount of smoke that is used to blur visibility of the real issues – which platform are you going to select for your MISSION CRITICAL APPLICATIONS? What are you going to bet on for future stability and resilience? – is so great that polemic debates erupt and are never resolved rationally. At the end of the day it is often developer vs architect; IT Manager vs CIO, CIO vs CEO and this list can go on and on. Sound familiar.

    I will throw my hat in the ring with a few pertinent observations:

    FACT 1. Gartner’s most recent MQ treating with the Enterprise Application Server (see the archived/cached link at http://www.gartner.com/technology/media-products/reprints/oracle/article96/article96.html) showcases the obvious – which App Servers (i.e. which technology) dominates the market in the deployment of MISSION CRITICAL APPLICATIONS (i.e. ERPs, Portals, ECMs,and the like). Oracle + IBM + JBoss (all Java) vs Microsoft (.NET). It is safe bet to say that Java dominates the Fortune Global 1000 deployments while it is very likely that .NET plays heavily and strongly in the SME space. Not only that, we haven’t begun counting pre-Oracle Sun, SAP, Apache (Geronimo), OpenCloud – all based on Java.

    FACT 2: Another REPUTABLE Research organisation, Forrester states the following in (http://blogs.forrester.com/application_development/2010/02/forrester-databyte-application-platform-adoption-trends.html):

    .NET and Java remain the dominant application platforms. Microsoft .NET and Java remain the most widely used platforms, and overlap between the two is considerable: In 2009 46% of Enterprises and 23% of SMBs use both platforms, up from 28% and 21% respectively in 2007. .NET adoption is higher than Java at companies with less than 5000 employees, and Java usage is higher in companies with more than 20,000 employees. It’s in the 5,000-19,999 segment that things get interesting. Java has traditional been more highly adopted in our surveys in this segment, but .NET appears to be closing the gap. This year 71% of these very large companies are using Java, while 68% are using .NET.

    The Forrester analysis is straightforward and the distinction between SIZE of organizations using the platform is especially important.

    Also important is this observation:

    “Web 2.0 technologies are gradually emerging as alternatives to .NET and Java. There’s a third group of developers out there, that are neither Java jocks nor .NET gurus. These developers choose a different route, based on Web technologies like Javascript, Flash, PHP, Python and Ruby. Web developers have been mainstream outside the firewall for years, but they are also moving into the enterprise, especially as firms invest in the Web as a direct channel to customers and business partners. At this point 1 in 3 shops is using rich internet technologies (e,g, AJAX, Flash). While this looks like a dip from 2007, we think that’s actually due to a change in our survey methodology. In 2007 we did not distinguish between RIA platforms and Lightweight Web frameworks like CakePHP, the Zend Framework, and Ruby on Rails. In 2008, we broke these options out separately, and since then we’ve seen adoption of RIA platforms grow from 26% to 24% and Lightweight Web platform adoption grow from 11% to 16% respectively.”

    FACT (kinda) 3: One of the best, most dispassionate articles I have read on how an ISV chose between .NET and Java. Worth a read for its clear articulation of the facts. http://www.relevant.com/pdf/articles/j2eevs.net.pdf

    Later

    • Jack, Thank you for the fantastic feedback.

      Let me first say first that my intent was absolutely not to do the whole “routine trotting out of stats from sources of varying levels of credibility in polarizing debates” as you put it.

      As a casual blogger, I find myself consistently not having the time to research the topics as much as I would like. In the past this would simply prevent me from posting, but I’ve decided to go the “crowd sourcing” direction and learn from others; which is why I am very greatful for your contribution.

      My response to your comment: I completely agree that with your observations regarding new Web 2.0+ development paradigm shift and I’m really interested to see where the industry goes with this.

      While I agree that the argument that you put forward re: “MISSION CRITICAL” applications, this may have been applicapable back in 2003 (give or take a couple years), we’re now in 2011 and the intent of my question as the title attempted to indicate was in fact to determine if there was evidence of where we are *today*. The information that you have provided while accurate, still dates back to 2007 / 2008. The articles that I’ve posted albiet from ‘questionable’ sources as you stated, are 2011 articles.

      The document that you said was the most dispassionate was a fantastic read, but that treated with ** .NET Fx 1.1 ** Now, I’m not trying to take sides here and my experience has obviously put me in a biased position, but it would seem like there has been phenominal strides made on the .NET side since then, whereas I don’t see comparative levels of innovation coming from the Java world – ** DISCLAIMER: I’m not trying to start a flame here, just stating my own observations **

      The thing that actually got me thinking about this was the fact that it is now actually my job to become an expert in the IBM WebSphere side of the world and I really would like to see the arguments lifted beyond the “Everyone knows that *this* sucks and that *this other thing* is better” and start seeing information and research like those that you’ve offered up. — I heard those exact statement made about Linux / Unix vs Windows Server vs other OSs. My response well, that’s fantastic, but what does the industry *today* *actually say*.

      One thing that I found interesting in the “Relevant” study was relationship between the issue of server platform stability and technology choice. So, having heard only days ago the “Everyone knows anything Enterprise and Mission Critical will never be on Windows” argument, I went in search of information which is the subject of another post. The information is surprising in Windows’ favour and I can’t help but link the dots and wonder if *now* it’s very different from 2003 or ever 2005 and 2007.

      Thanks again. Loofing forward to your thoughts.

  2. Jack Door says:

    Be careful … in your haste to push the argument forward I find it interesting that you have not observed the date of the the Info-Tech Research Report … 🙂

    Also,

    FACT 4 : And this IS a FIRESTARTER .. to the patently unsupported observation you have made re: “whereas I don’t see comparative levels of innovation coming from the Java world” …

    The Android SDK – http://developer.android.com/guide/basics/what-is-android.html

    Number of Applications in the Android Market: 300,000 + and growing rapidly

  3. Jack Door says:

    BTW, Just to be sure I myself am not accused of unsubstantiated statements re: the Android Market, the data was sourced from http://www.androlib.com/appstats.aspx

  4. You got me on #1 – I used the google index date but didn’t see the URL index date until you pointed it out. [2007 is still a better date than 2002 though :)]

    I’m note sure that I agree that there is *comparative* innovation and creativiy as compared to the *use* of the platform.

    Use != Innovation

    Sure, Java is used alot on the Android platform, and sure a lot of fantastic libraries have been built, but has the JVM evolved at the same pace of the CLR? Has the language constructs changed to facilitate changing needs to express solutions to problems more clearly? e.g. Lambdas, Type Inferencing, Proper Generics Implementation, Parallel programming constructs, Dynamic Programming, Query Expressions over Lists at part of the language, Adoption of Functional Constructs into supported languages and the Runtime itself, Covariance & Contravariance language patterns, Improvement of Programming Correctness with Compile time enforcementand the list goes on.

    Even in the library evolution space I think there is some interesting research to be done there, though I doubt very much that I’ve been out of touch so much that I be completely way off base, I would venture to say that there has no been as much *comparative* innovation even in this space.

    Let me see if I can provide you with some evidence, let’s consult the cloud at random:

    http://j10.indicthreads.com/ (2010 – Show a community starting to think about the issues, not Oracle)

    http://www.indicthreads.com/5001/the-questions-being-asked-of-java-today/ (Questions being asked of Java in 2009)

    http://www.theregister.co.uk/2009/12/17/dot_net_noughties/ (2009 – Ten years of .NET – Did Microsoft deliver?)

    http://www.theregister.co.uk/2011/02/08/oracle_loses_client_to_server/ (2011 – Oracle and Java: Mobile dev FAIL dooms Ellison’s future)

    http://itmanagement.earthweb.com/entdev/article.php/3862566/Whats-Javas-Future.htm (2009 – Blogger commentry)

    http://blogs.forrester.com/mike_gualtieri/10-11-23-java_is_a_dead_end_for_enterprise_app_development (nov 2010)

    http://www.eweek.com/c/a/Application-Development/Top-10-Programming-Languages-to-Keep-You-Employed-719257/

    okay … Its 4:30am … enough reading for more links another time.

  5. Jack Door says:

    So … while we agree that the future will likely lie in NEITHER Java or .NET – at least in the forms as we know it today … your original argument was about emergence of .NET as a truly viable Enterprise development environment (my response: depends on size and application type – whither the Enterprise ongoing investments in SAP, Oracle/Peoplesoft etc.) and a harbinger of innovation (response – innovating on Windows vs innovating on multiple platforms?).

    In your admitted quest to learn more, without the need to simply “consulting the cloud at random” and to truly understand the benefits of “open” technologies, have a read of “one guy’s” (but observe who “the guy” is) Java’s evolution through Rod Johnson on his blog at http://blog.interface21.com/main/author/rodj.

    Submitted in the hope that you continue to keep an “open” mind.

    • Not quite. While technologies like HTML 5, JScript/ECMA script, CSS3, Flash ActionScript, Silverlight, etc. are fantasic technologies, they are all specifically geared towards presentation delivery. Languages/Frameworks such as .NET and J2EE (and I believe the PHP, Groovy, Ruby etc.) are the guys doing the heavy lifting behind the scenes.

      Thanks for the Ron link, but those are most still innovation from the Library points of view. Check out the following articles
      Red Hat’s New Java Alternative: From Coffee to Tea: http://www.linuxinsider.com/story/72312.html

      This one is probably the best articly that I have found that addresses my specific question with the language and actually *confirms*! my concerns with the language. Note that the article is from the linux community as is the previous artilcle showing that RedHat is very concerned about the Language: http://www.linuxinsider.com/story/71532.html. From all the reading resulting from our discussion around this issue I have found that the Java ecosystem is advancing, but around the JVM and not the Language. Last article says that there has not been an update to the language in the last 4 years. That say something all by itself.

      Thanks for the conversation Jack 🙂 I got mad love for Java, and this has sparked quite a bit in interest in the topics of innovation by the java community for me. Lookout for more articles around these and more topics in the future.

    • Just some light Humor: http://www.metacafe.com/watch/6085167/java_vs_microsoft_net_trailer/

      🙂 – Even thought the guys are taking cheap incorrect shot at .NET, it’s still very funny.

  6. Just came accross this article today quite by accident: http://mail.openjdk.java.net/pipermail/jdk7-dev/2010-September/001528.html

    Talks about JDK7 being available in 2012 as a best estimate (as currently defined). This I believe best illustrates my point about rate and nature of the evlution of either platform.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Calendar
May 2011
S M T W T F S
« Apr   Jun »
1234567
891011121314
15161718192021
22232425262728
293031  

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 410 other followers

%d bloggers like this: