I've never been one to believe that languages like Ruby, Groovy or Scala are going to be a threat to Java the language and platform. I think the real threat is the .NET platform.
I have a friend who works for the Canadian Federal Government in IT. He says that Microsoft sales people are phoning the decision makers every week or two offering huge incentives to migrate to the Microsoft platform (Windows and .NET). They are offering huge discounts, practically giving the stuff away, and sometimes they do give things away. Microsoft is succeeding because the government is starting to use .NET more.
Another friend of mine, also in IT, works pretty high up at the corporate headquarters of a major bank. 70% - 80% of their systems are written in Java. Within the last couple of years they brought in consultants to help them decide which current Java technologies to focus on. Initially they chose Hibernate / Spring / Wicket, but later I heard they changed their minds and went with iBatis / Spring / Struts 2. Meanwhile, Microsoft has been calling their decision makers frequently offering deep discounts to switch to the Microsoft platform. Someone at the very top of the bank made a decision to rewrite EVERYTHING in .NET. Legacy systems, recently developed systems, and new systems. All Java programmers had to learn .NET. Why? They looked at the cost of upgrading their WebLogic and WebSphere application servers and doing some maintenance work on one of their applications. The cost was going to be $1M - $2M. They were able to complete the project in .NET for $150K, so they decided that Java is too expensive. I also heard something about a lawsuit that made it impossible for enterprises to use open source application servers like JBoss and Tomcat, which was another major reason they switched. WHAT?? Did this information come from Microsoft? I am unaware of this lawsuit.
Another friend who works in London England said his company had a mixture of Java, PHP and .NET programmers. The company wanted to consolidate onto one platform and they chose .NET. He said the main company HQ was a Microsoft shop, and his satellite office was the only one using Java and PHP.
The same thing is happening at my company. We currently use five programming languages, and it looks likely that we will consolidate on .NET.
Here is a list of reasons why I think a company would choose to switch to .NET:
1) The company has some reason to only buy middleware from companies like IBM, Oracle, and Microsoft. If they want to run on WebLogic or WebSphere then they are going to spend a TON of money which gives them the impression that Java is expensive. This has never been a problem for JBoss, GlassFish, Resin and Tomcat customers. You can use these products for free, or buy support for much less than WebSphere or WebLogic. Upgrades don't cost anything. In my eyes, Java is not expensive.
2) The Java programming language has stagnated over the last 4 - 5 years. .NET has pulled ahead with closures, lambda expressions, properties, LINQ, WPF, etc. Knowing that these features are coming to Java, this doesn't really bother me. Java FX 2.0 is Java's answers to WPF & Silverlight, and we'll have a production release by JavaOne 2011. Closures and lambdas are coming in Java 8 (2012). At JavaOne 2010 they hinted about the possibility of adding properties to Java 8. I'm not sure if we'll ever see LINQ, but that's not enough to make me abandon the entire Java platform.
3) Too much choice. For every decision you have to make there are many choices of libraries and frameworks. You have to spend a lot of time and effort to evaluate all of the options. This has fragmented the Java community into several religions. If you want to hire a Java programmer, you have to make sure they have experience with your choice of technology stack. In .NET land, the King (Microsoft) has made all the decisions for you. Just use it. In Java, there is a King (JCP) who tries to make decision making easy by providing standardized APIs for everything imaginable like in .NET, but the mistakes from the past have tarnished many developers' view and support of the King, so some choose to ignore anything and everything he has to offer. Then they have to wire together a plethora of libraries and frameworks before writing their application which is difficult and time consuming. I choose JCP standard APIs and open source Java EE application servers, so decision making and ease of use is not a problem for me
4) Politics. There's nothing you can do about this other than being well informed to try and sway the decision.
I hope Oracle and IBM realize what is happening and do something NOW.
Sunday, October 17, 2010
Subscribe to:
Post Comments (Atom)





This has mostly been my experience, too. My nitpick is that present-day .Net has more choices than it's given credit. Even apart from the ever-lasting divide between VB and C#, there's MVC as an alternative to WebForms. Then there are choices like NHibernate that originate from outside Microsoft and yet have a lot of users.
ReplyDelete.NET has been around for 10 years already and after the billions in marketing money they've put into it - it's still a third of the size of the Java market. If this was going to happen it would have already.
ReplyDeleteI'm facing situation when .NET on desktop, but backend is _only_ Java.
ReplyDeleteYou did not tell us why your company chose .NET over Java or PHP - surely you weren't bought off by Microsoft too? Oracle's acquisition of Java makes it a much less attractive proposition to PROGRAMMERS - this is what will hasten Java's demise. The only hope for the language is Scala or Clojure. Both are much more compelling JVM languages than Java itself.
ReplyDeleteIt's because they want to re-use ActiveX DLLs, embed Flash/Flex, embed a web browser, and use serial & USB on Windows. Plus the .NET guys think LINQ, closures, lambdas, and WPF are major reasons to use .NET instead of Java. I am the only Java developer.
ReplyDeletehello sie, this is yuvam jain from india , i am developing my engineering major project , which is voice control simple audio player . I am facing some problem . I heard about you and also about you knowledge in java technology , so please help me in completion of my project , please , please
ReplyDeletemy contact - YUVAM JAIN
+91 - 09406611844 mail- yuvamjain@gmail.com
please sir , if you give me your contact address like mail id or phone number , i will be very greatfull
ReplyDeleteThanks .
your very big fan...
YUVAM JAIN
Wow I didn't know I had a fan, thank you. My day job and family keep me very busy so I don't have time to work on side projects. I recommend you find the community that is best suited to answer your question. For example, when I have a GlassFish issue I use the GlassFish mailing list or forum. When I have a Spring issue I use the Spring forums. When I have a question about Seam I use the Seam forums. etc.
ReplyDeleteThis is an old thread, but I thinks it's more relevant after the stagnation as Oracle tried to find a way to monetise its newly purchased assets.
ReplyDeleteWhat I've noticed is that when you stick your little toe into the Microsoft world, suddenly it grabs you by the ankle and drags you in, just like in the film "Poltergeist"
http://www.imdb.com/media/rm2980677376/tt0084516
Our organisation is half in and half out of the quicksand at the moment, we still have the history of software development scattered around in our corporate applications, but it's all slowly being assimilated, or worse, being replaced by an "off-the-shelf" product and then customised for the next 12 months at consultancy rates.
I suspect some of this is because a number of senior IT executives have come from large corporations where Microsoft was the dominant platform, plus as you point out the Microsoft sales team are in the ear of every decision maker up the stream nearly every day of the week.