I’m starting to dig into Java Server Faces (JSF), and giving some serious consideration to becoming involved in the MyFaces project, which is an open source implementation of the JSF standard. Digging into JSF has started a few thought processes; among them, the gap between so-called “Enterprise” software, and regular “run-of-the-mill” software.
For example, you don’t see a popular open source blogging platform based on JSF, on Struts, or even on Java, for that matter. Why not? Because PHP is greatly superior for creating blogs? Everyone has their preferences of programming languages, but objectively speaking there is no reason PHP, Perl, Python, or Ruby are in any way “better” for creating a blogging platform, a CMS, or any other web application. The most obvious explanation would be that J2EE solutions have a higher barrier to entry: they are more complicated, there is a steeper learning curve, and most low-cost hosting platforms do not include servlet containers or the other components needed to run J2EE web applications.
That’s actually a pretty good explanation; no matter how robust or interesting a JSF-based blogging system a la WordPress would be, the pool of people who would be able to contribute to such a project is comparatively small, and those who would be able to run it — not much larger. This isn’t necessarily because it’s that much more difficult, but more because the platform on which it would need to run is less common on run-of-the-mill hosting solutions.
I’m not going to say that this gap between “enterprise” software and more accessible solutions is bad (or good). I don’t have a solution, a suggestion, or any real insight other than the observation that such a gap exists.
On the other hand, there are a few technologies gaining prominence which would seem to sit in between the two extremes; Ruby On Rails (and associated frameworks) comes to mind. It seems that RoR is capable of scaling, which is a key requirement to something being considered usable in large-scale (ie, “enterprise”) situations. At the same time, Rails is more and more ubiquitous, and while hosting platforms that offer Rails environments are not as common as those which provide PHP, et al, they are more common than hosts offering Servlet containers. Rails is unique, at this time, in that it seems to have Raving Fans among both communities: the enterprise developers and the independent, grass roots, open source developers.
The exact reasons why this is are best left to some other post, maybe even to some other writer, but I’ll hazard a couple guesses. Naturally the choice of Ruby and its meteoric rise in popularity have contributed to its popularity among the open source community. Its agile nature and adherence to the (ubiquitous) MVC pattern would naturally attract savvy enterprise developers.
So, is Rails the missing link between the enterprise and the community at large? I don’t know that I’d go so far as to say that. This is just a collection of observations and barely-formed opinions… that’s what blogs are for, right?
