This is sorely needed in the opensource world, and in no other software arena more than Java.
In general, Java folk are ‘engineers’. We like to try the latest and greatest. One project may be Tapestry/Pico/Kodo JDO/Ant and the next WebWork/Spring/Hibernate/Maven. We jump and leap between similar, and very disimilar worlds.
This can seem cool, and flexibility and choice is a pro for Java. But, imagine if you are running a huge company, and your large IT team is running around in this manner.
Now the Java platform becomes a burden as you can’t jump between projects easily, education becomes a nightmare, as well as reuse.
The goal at large IT shops is to be able to churn out applications in short order, that fit into the corporate enterprise view (and tie into the systems such as authentication, authorization, etc).
This is where the need for a common stack comes in. As a CIO of BloodyHuge Inc. I want to enable some flexibility, but within the guidelines of a stack.
Wouldn’t it be nice to have a development team start a project and:
- Know the technology inside and out (past projects, and good training)
- Know the lay of the land for the project (shared dir structure, build goals, etc)
- Have helpful code to gen some work (a la Rails)
We need common stacks to do this.
When I saw the SpikeSource announcement and the large amount of technologies in their ’stack’, I thought it was missing something. As a company I don’t just want to know that technology a thru z is ‘certified’ from a company, or that they offer support.
They want help. They want you to work with their engineers to choose a common stack that has everything setup from the beginning.
They also want it to be locked in stone for a couple of years, with a known release cycle of updates to the Stack.
When I look at SourceLabs and their AMP Stack, I think they may have gotten it.
Update: SourceLabs does have a Java Stack:
- Spring Framework: version 1.2.3
- Apache Axis: version 1.2.1
- Struts: version 1.2.7
- Hibernate: version 3.0.5
Java + Common Stack = Productivity
J2EE != Stack
I personally don’t think that J2EE is the stack. Right now, if you look at an average Java project you will see myriads of dependencies that have nothing to do with J2EE. Although the Java platform is growing, and you could envison a stack that consists of JSF + EJB 3 + java.util.logger + … even this isn’t everything you need for a project.
J2EE is great from the standpoint of API education IMO. When you use different implementations you will often need to tweak things… maybe at a config level, or what have you.