VMware and Google recently announced a partnership to enable Java applications based on the open source Spring framework to run in Google App Engine for Java (GAE/J). Does this mean enterprises should reconsider GAE/J as a deployment environment for certain Java applications?
Enterprise Java credibility
It’s fairly easy to conclude that Google has lacked credibility within the enterprise Java cohort prior to the VMware partnership. For instance, the GAE/J Google Groups forum had a grand total of 4,962 members as of this writing. Considering the millions of Java developers in the world, five thousand or so interested in GAE/J is a rounding error at best. While Google is a strong supporter of open source, and open web standards, Google has chosen to take a less than pure route when it comes to Java standards. This is true with the open source Android platform, where applications are written in Java but don’t compile to Java bytecode; causing consternations to the “write once, run anywhere” Java marketing proposition. It’s also true for GAE/J where Google has decided to support only a subset of Java Enterprise Edition (Java EE) specifications. I don’t know of too many enterprise Java decision makers who want to check a “Will it Play in App Engine” page to see if a Java specification or framework their company relies on will work in GAE/J. This clearly has played a role in the relative lack of attention that GAE/J has received from enterprise Java shops.
VMware lends Google enterprise Java credibility
Will VMware & Google’s new partnership addresses enterprise Java user concerns surrounding GAE/J? The overwhelming coverage of the announcement seems to suggest that VMware’s SpringSource division does lend Google credibility with enterprise Java developers, administrators and decision makers.
Readers familiar with the enterprise Java market will recognize SpringSource as the founders of the open source Spring Framework and other Spring-related open source projects. The non-standard Spring Framework is developed in the open by VMware/SpringSource. The Apache 2.0 license associated with the Spring Framework has proved historically sufficient to set aside fears of application lock-in to a non-standard framework. In many ways, the Spring Framework has become a de facto standard which competes against the open standards-based Java EE platform. It’s this “de facto” nature of the Spring Framework that Google appears to have been drawn to. Although, the open source nature of Spring likely played a role as key parts of GAE/J are based on open source projects.
Forrester analyst Jeffrey Hammond writes:
“VMWare gives Google a significant boost in enterprise developer permission. While Google is the darling of developers outside the firewall, they still struggle inside the firewall. The reality is that enterprise IT development shops are just different than Web startups or Web giants. And enterprise Java development is something that the Spring folk understand. While I question the magnitude of the adoption percentages that SpringSource GM Rod Johnson quoted yesterday, our own research with Dr. Dobbs and Eclipse developers confirms that Spring is indeed one of the most popular frameworks among Java developers at large shops (with a fair amount of Apache Struts and homegrown frameworks as alternatives).”
Open versus de facto standards
For this discussion, one has to consider whether “de facto” of Spring will be enough to get enterprises over the sparsely supported standards on GAE/J.
On one hand, Spring’s “de facto” nature adds to GAE/J’s issues. Like GAE/J, Spring is not Java standards compliant. One can clearly argue that a lack of open standards compliance hasn’t affected Spring’s adoption. However, history and the future are seldom related. I recall sharing with SpringSource CEO Rod Johnson a tweet to the effect:
“Enterprises didn’t much care about lock-in to the non-standard Spring portfolio when it was from SpringSource a small, friendly, company. Now that it’s coming from VMware, a large enterprise software vendor with well established profit motivations, it would be wise to get behind a relevant Java spec, like Java EE 6 Web Profile.”
Over the past nine months, and as recently as a WebSphere conference two weeks ago, I’ve heard of large enterprises using Spring that are planning on migrating to open standards. As predicted, being open source is no longer enough to alleviate fears of lock-in now that VMware is part of the discussion. To be clear, I am in no way suggesting Spring usage in the enterprise is not going to decline by half overnight or anything ludicrous like that. However, enterprises are starting to consider their future freedom of action with applications locked into a framework controlled solely by one of the largest software vendors on the planet.
The CIO is the last to know
On the other end of the spectrum is a quote from my friend James Governor of Redmonk is ringing in my head: “CIOs are often the last to know”. James’ would argue, and I’d agree, that developers selected the Spring Framework, standards be damned, well before their managers or CIOs knew or had a say. Some subset of these developers are likely to try deploying their Spring applications on GAE/J simply to see what works and what doesn’t. Of these developers, some will be able to convince their management that GAE/J represents a lower cost deployment environment than the traditional data center for Java applications. The application’s business criticality, and more importantly, the sensitivity of data required or generated by the application will have an impact on whether an enterprise IT decision maker will approve a GAE/J deployment. Using GAE/J for development and testing, with the actual production deployment not on GAE/J, is another potential use case for Spring with GAE/J. For its part, VMware is positioning the Spring Framework as a path towards portable Java in “any” cloud platform.
Where does your company fit on the de facto versus open standards spectrum? Will you give GAE/J another look now that Spring applications are supported?