My Framework Picks

When I talked about how Context Matters When Discussing Frameworks I intentionally left out naming any picks because the point of that article wasn’t to start a framework debate (neither is this one, but at least it will get isolated in here). In this post, I’ll cover my choice of frameworks.

My Personal Choices

For me personally, nothing does Web Applications better than JSF backed by Java EE 6. A year ago I would have said Seam, but Java EE 6 now carries most of the Seam functionality. Java EE 6 with Seam 3 sprinkled in for good measure will rock. (if you think Java EE 6 sucks for not being whole until it has Seam 3 added, think of it more like adding jQuery to your web pages). I do like Wicket, but for me, it’s one of those that sits in the middle and does a bit of both. It’s like riding a bike to the mailbox (only a little bit of overkill), or to the store (better than walking, but still with limits). However, it is a very viable alternative.

For web site type projects, I would look for a framework that is more client oriented since people will want to start leveraging the advancements with HTML 5 and Javascript. I would probably use Spring MVC or at a stretch, possibly Grails. Primarily because it offers a development structure that is not so dissimilar to using JSF, and can include Spring Web Flow for more statefulness. At the same time it lets you get under the hood more with CSS, HTML and JavaScript if you choose to. It also gives you some more deployment options without taking features away.

Note that these are merely my personal choices and their selection says nothing about the choices made by anyone else any more than choosing to drive a Ford is being critical of someone driving a Honda. Similarly, if you think Fords suck, you should have at least have a good reason for believing so, other than you couldn’t drive one before you learned how to.

4 thoughts on “My Framework Picks

  1. Hi Andy!

    You wrote: “nothing does Web Applications better than JSF”. However you return to this topic again and again. Does not that mean that though relatively good JSF is still far from being a satisfactory framework? Many people are in such a loop.

    I will appreciate if you have a look at HybridJava framework. I bet it gives a better solution for several aspects of the Web Application server-side presentation layer.

    Alex
    PS This is not a request for an article. I will appreciate if you simply answer me by email.

  2. Hey Alex,

    I think people have a hard time finding a framework they are completely happy with, every feature in a framework has a cost and a benefit. I often keep coming back to the issue because I don’t think there is a good answer yet.

    As for HybridJava, web frameworks need a lot of momentum that the home-brew ones can’t generate. It looks like JSP remixed except with the code built in to the page. People are looking to separate that stuff more than ever and I don’t think view generation is the pain point people are facing. They want better ways of interacting with the server and doing server side things, possibly as part of a multi-page process. All this while keeping it maintainable and understandable.

    Cheers,

    Andy Gibson

  3. >>> People are looking to separate that stuff …
    That is worth a bit of discussion. People often say that words, but what are the separated items? What is separated from what? Quite reasonable to seek separation of presentation layer from business (and other) layers. So was it at the beginning of the time.
    What many mean now is separation of Java from HTML. That is not the same. We are talking about dynamically generated pages, which HTML as such does not give. We need at least conditional and repeatable generation. In other words presentation layer is doomed to have a bit of logic too and all technologies add that bit, though some openly take the corresponding constructs from programming languages while others shyly hide them under a dress of tags. That rids from Java, but not from conditional statements within presentation layer.
    Then we should not mess possibility and necessity. If you do not want to mix Java and HTML simply do not do that. That is more a matter of your own culture not of the language. With HybridJava (same as with any other language) you may write in different ways. In particular in the HybridJava examples all the pages and most of widgets are written in “separation style” you tell all are looking for. Only few low level widgets had to use bits of Java Syntax, like IF tag. For that HybridJava (unlike JSP+JSTL) has zero predefined tags – you may write them all yourself.