Microsoft at JavaOne 2007 - Final Commentary
About: This blog post is part of the “Microsoft at JavaOne 2007” series; it provides general commentary about the last day and the overall conference. Warning, it is arguably my most controversial blog post to date.
Greetings,
JavaOne 2007 is over, last night I went to the JavaOne “After dark bash”. The “MiniKiss”, a midget band dressed up as KISS was about as exciting as the JavaFX demo on the opening keynote. The battle bot fights were quiet interesting and generated some enthusiasm in a party where the most popular attraction seemed to be the five XBOX 360 gaming stations and the Gyro and arcade machines set up around the walls. The “Grinder Girl” turned out to be a girl wearing a stainless steel bathing suit with an electric grinder in her hand which generated sparks when put against various ‘parts’ of her body generating “Wows” & “Ooohs” from some of the attendees but looked quiet distasteful to the majority (some of the locals had brought their kids) who left the party at that point.
In terms of the overall comments about JavaOne 2007, when Richard Monson-Haefel (who is the author of one of the most popular books on Java and now works as an analyst for Burton group) wrote that “Java is dead” (http://www.theinquirer.net/default.aspx?article=32968) I thought that he had spoken too soon. However, attending JavaOne this year has convinced me of something that no amount of Microsoft marketing or conferences would have done, that the peak days of Java are definitely behind us. As someone who was part of the Java revolution and as a technologist, it is sad to see the missed opportunity and potential. The attendance, energy, enthusiasm, quality and exciting news around Java this year were definitely at a significantly lower scale (excluding mobile) than last year and the years before. In sessions where we asked people to raise hands if they also program in .NET, around 50% raised hands. I remember Java conferences where you will get a very small percentage of people who had any familiarity with the .net framework at all. I don’t want to get in to a detailed analysis of the reasons but here are some of my personal (not Microsoft’s) thoughts on the subject:
1. The business users are becoming more demanding, they have made it clear to IT that they do not care about Java, .NET, open source, cross-platform, SOA, ESB or Web Services. They care about time to market, increased revenues, customer loyalty, lower costs and better quality of service. IT cannot use their internal issues and academic arguments to justify a lower level of service to the business anymore.
2. Sun’s strategy of open sourcing Java and related tools is driving the entire market down. Businesses are not charities and cannot be run as such, (btw giving out software for free but charging for support and services is not open sourcing, it is just a different business model for getting the payment from the customers). Sun, IBM, BEA, Oracle, Red Hat and every other Java vendor pays salaries to their engineers as no open source enthusiast would agree to work for free. When Sun makes its application or portal server available for free (because no one would buy it), it hurts the Java vendors that are selling their application servers forcing them to lower their costs and reduce the investments they can make to improve the products (or get the investments from a different part of their business), that in turn results in slowing down the pace of innovation and the ease of use with which enterprises can develop on Java platform.
3. Microsoft’s strategy around putting infrastructure plumbing code in the .Net framework and significant support for open standards in the latest versions is making it a preferred choice even in organizations that used to be pure Java shops. Some of the adoption numbers according to independent industry studies (future development, 56% on .NET vs. 44% in Java for some of the largest enterprises in North America) are pretty astounding considering that .NET was a fraction of the marketplace just a few years ago. When you can produce similar or better applications significantly quickly and for significantly lower cost, the argument for Java and its cross-platform nature loses some of its charm.
4. The businesses are realizing that the important areas are open standards and total cost of ownership and not what you may or may not pay at the time of acquisition. I recently went to a bank which used 7 different tools (4 of them open source) to architect, design, develop, test, bug track and deploy applications. It was one of the easiest conversations I had to move the bank to Microsoft technologies, my basic point after they admitted that they spend months in lost productivity due to integration, training and maintenance issues was that at a cost which translates in to a few days of salary (compared with the 2 months) they could have an integrated suite which will solve a lot of issues they are facing. This is the primary reason that Visual Studio and Eclipse are becoming increasingly popular in the enterprises.
5. The process of innovation in Java which requires approval from a large variety of vendors with different agenda and interests results in very lengthy discussions and intense disagreements which lead to the specifications not covering some key areas. The big turning point for me a few years ago was trying to make application server by one Java vendor work with the identity server from another, it took me and a team of engineers about 15 days to get it to work and the Microsoft champions at the customers showed me how to do it in the Microsoft world in about 25 minutes. Again the big question now is how to serve the business better.
These and a culmination of other factors e.g. increased expectations around user interface and experience where Java was always weak is producing the perfect storm against Java. The thing that is working for Java right now is the large install base and many people that bet their careers on it. These individuals (some from the small talk base) are now at a stage of their careers where some of them are unwilling to consider alternatives. From an IT organization standpoint, the cost savings and other advantages of .NET are sometimes not considered enough to justify the cost of developers learning new skills. In my opinion, that is IT propagating its internal problem to the business; granted that the problem is genuine in many cases, in my opinion it is still a losing battle. For IT to become a strategic asset and not just the cost of doing business it must be run like a business and not like a subsidized unit. It must be willing to learn, reassess and make the choices that are the best for its customers; that is the only way forward. If it means replacing one technology on which it might have standardized with a better one that is the right thing to do, otherwise sooner or later the business users will find others to lead the IT organization (or outsource it) so that they can get the level of service they need to be competitive with others in the industry.
Best regards,
Mohammad