Java frameworks – it sure is a jungle out there

March 28, 2007

If you need to start a new web application today – what would you base it on?

Will the client experience be managed by Pure HTML or RIA ( Yahoo UI or GWT or DOJO toolkit or ATF  or  OpenLaszlo or Flash or Swing…)

Will the web tier use MVC (Struts  2.0 or 1.3 Or Spring MVC) Or Tapestry or JSF ( MYFaces , Seam ) ….

What about templating and mashups? Tiles / Velocity / Framemarker / portal servers ….

How to address security and state management for Ajax UI? will you use a BPM engine?

And on the app layer? Pojo, AOP (Spring ..), EJB, ….

Which JDK 1.4/5/6( half the world is on 1.4)?

Java technology has never been as fragmented as it is now. There is no centre of gravity with Sun no longer being a dominant player.

This is making life extremely difficult for enterprises and architects – as you need to bet on a technology while creating enterprise applications which are supposed to last a few years.

We ( MindTree as Software development and consulting organization ) – are increasingly finding customers requesting our help to define a technology stack and if possible a framework. Neel who heads the Framework group at MindTree has an innovative solution in the form of a Meta Framework.

His team has created thin wrappers for various layers of frameworks which make accessing one layer from the other layer uniform ( regardless of whether its  Spring or an EJB behind the scene, and regardless of whether its struts or Spring MVC calling the business logic).

This approach makes it possible to swap in and out different layers without impacting the other layers.  This way he has been able to limit the problem in half (assuming only one layer will go desperately out of fasion at a time). Also the developers dont need to re-learn a lot if a new framework component is introduced.

He also spends time in tracking the list of mature options at each layer and has opinion on which technologies you can bet on . As always best option depends on requirements and what the customer organization has already invested in. Organizations may end up having hybrids – based on demands of individual options.

I faced with the above dilemma for a development I am going to jump into approached him and walked back with a stack of

(YUI And/OR OpenLaszlo ) => (Struts 2 OR Spring MVC) => Spring

though I am still not convinced on why not Seam.

Advertisements

7 Responses to “Java frameworks – it sure is a jungle out there”

  1. indroneel Says:

    Ever since Pranshu mentioned it, I wanted to do a blog article on the meta framework piece he mentioned. Glad to say it is finally available … at: http://neelzone.wordpress.com/2007/04/29/the-dependency-injection-meta-container/

    — Neel


  2. […] frameworks and Dependency injection metaframeworks seem to be in thing. I had earlier expressed my frustration with the abundance of Java Frameworks , however Salil seems to say that the Java community has no confusion, spring is the way to go all […]

  3. Shashank Joshi Says:

    i would like to know about ektron integration with struts struts spring integration building websites with lucences struts websphere spring junit framework build on spring.struts endeca integration


  4. I would like to know about ektron endeca struts integration and also about struts spring integration and how to write Junit test cases in spring

  5. steve duncon Says:

    Great site, quick question. what is the best spyware or virus software that i can use with Vista?

  6. razvanp Says:

    I share your opinion. Would monolithic platforms return?
    Integrating these layers enumerated above requires also a certain effort.
    I put your question from the GUI-oriented view (Ajax) here:
    http://razvanp.wordpress.com


  7. What a great post…

    hey shashank joshi to write junit test cases in spring :

    class MyController extends SimpleFormController{
    private IMyManager myManager;
    public ModelAndView onSubmit(HttpServletRequest _request,
    HttpServletResponse _response,
    Object _command, BindException _error)throws Exception {
    }
    public void setMyManager(IMyManager myManager) {
    this.myManager = myManager;
    }
    }

    I have also wriiten implementation of IMyManager interface that is used to get values form DB.

    I want to write unit test case using EasyMock mock objects API with junit test cases.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: