You can't fail to have noticed that we released the world's first enterprise Java PaaS recently, when we put AS7 into OpenShift. Of course we certainly weren't the first to support Java and now we've just seen another entrant come into that space. However, it's good to see that we are still alone in offering a meaningful Java PaaS!
Let's look at what I mean by this. For a start I have a big problem with some of the statements made in association with the newest Java PaaS, which are no better than FUD, and you should know that I hate FUD. Apparently J2EE derailed Java (huh?!) Apparently there's an impedance mismatch with the way developers approach applications in the Java world (referencing a really old Sun document from 10 years ago as if it's an industry wide approach is really scraping the bottom of the barrel.) Is that desperation I smell? Then there's pointing to a recent analyst blog that is hardly objective in itself; this really doesn't help make the case either. I've already pulled that report apart, so I won't repeat that again except to point out that it is hardly a convincing result to use a single non-peer reviewed article to attempt to back up your statements, whilst conveniently ignoring the copious amount of data to the contrary. To paraphrase Shakespeare, "They doth protest too much, methinks." Here's a tip: if you're going to criticise then do so on the basis of facts not suppositions or downright myths! What was that I said earlier about FUD?
Furthermore, this recent announcement is a great example of how not to build an enterprise PaaS. It's interesting to see that the example used in the announcement is HelloWorld. Somebody more cynical than I might think that it says something about the complexity and enterprise nature of the applications they can support being deployed! Now of course you can argue that you can pull together more feature rich stacks and frameworks on such thin PaaS implementations. Yes, rolling your own stack is a much better use of a developers time compared to getting one out of the box!
I find it worrying for developers on any PaaS like this (and this one is not alone!) because if they need transactions, durability, high performance messaging, security, service clustering etc. then they're either missing entirely or may be provided in some limited form by the underlying platform. Now I have no problem with a platform providing these capabilities, but let's stop trying to suggest that an application server is not a platform! It is! In fact most application servers have been robust, fault tolerant and secure platforms for many years. And in this world, maturity counts, especially when you throw your data at them.
It is nice to see that our ideas of JBossEverywhere (JBoss as a common runtime fabric/infrastructure, no matter what the language) have caught on elsewhere too. Providing a common runtime across languages makes perfect sense. But if you're going to do that then surely it's better to start from the perspective of a strong enterprise platform as your foundation?! As I keep saying, cloud makes enterprise capabilities more of a necessity not less! There's a reason that middleware today looks a lot like it did 40 years ago, at least in terms of core services such as transactions, security, replication etc. And its not because the industry is lazy or users of it don't know what they need! Unless you're really only interested in writing HelloWorld for the rest of time, you're going to need one or more of these capabilities pretty soon! And you really don't want to have to worry about how they are deployed and configured, let alone whether the implementations work together correctly!
So in conclusion I can understand why, if you don't have the necessary components to provide the rich PaaS infrastructure that people need you'd try and downplay them. We've seen that for many years with competitors railing against JBoss. But it doesn't really hide the fact that where this recent announcement is concerned The Emperor Has No Clothes!