too many cooks in the kitchen


I don't blog that much about Java because hey, let's face it, this is my personal blog, and I like to blog about stuff that's fun for me. However, on Jroller you get to see a lot of themes here for all sorts of different types of Java developers. There's the Wicket diary, a lot of voices about Spring, and so on.

Something that other Java blogs have pointed out is that Java is riding the crest of a wave, and after 10 years, people are wondering when Java will officially 'peak' and begin to get its market share eaten up by someone else; look at Jayson's recent post about the Innovator's Dilemma; now that we're at the top of the mountain, where do we go? And who is climbing that mountain behind us? Jayson (and a lot of people along with him) seem to think Ruby on Rails is waiting to take over where Java is starting to lag.

JDJ's own Joseph Ottinger once stated in an editorial that we, the Java community, are suffering from too much innovation; he had to make an embarrassing about-face in the next issue of JDJ and state, for the record, that there's still some innovation left for Java, and that we will need to keep growing and designing products that are, at the very least, easier to use for the general developer community.

With that in mind, is Sun and the Java community in general simply giving away their market share? Have we innovated to the point of maximum complexity, where we are nothing but code beaureucrats, impressing our friends with framework X and package Y?

Take, for example, the ServiceMix code package, which bills itself as an Enterprise Service Bus (ESB) which implements the Java Business Integration (JBI) specs, linked to from ShareMe LLC:

ServiceMix currently has the following JBI components:
Service components * Rules based routing via the Drools rule engine. * BPEL support for WS-BPEL via PXE * Cache for caching service invocations using a Map cache or a JCache provider * Groovy for clean integration with the Groovy scripting language as a component, transformer or expression language * JCA allows the Java Connector Architecture to be used for efficient thread pooling, transaction handling and consumption on JMS or other Resource Adapters * Quartz to support enterprise timer integration via the Quartz library * Scripting support to allow any JSR 223 compliant scripting engine to be used to easily create a component, perform a transformation or be an expression language. * Transformation using XSLT * Validation for schema validation of documents using JAXP 1.3 and XMLSchema or RelaxNG * XSQL for working with SQL and XML via Oracle’s XSQL library

How many people think this is too much innovation? Too little? Too much innovation in one direction only?