Matt RaibleMatt Raible is a Java Champion and Developer Advocate at Okta. developer.okta.com

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: AngularJS, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

David Sachdev on Web Framework Proliferation

David Sachdev left the following comment in my post about the Java Web Framework Smackdown at TSSJS in Vegas:

The number of web frameworks out there is just astonishing, and in alot of ways I think that there is need for some consolidation in some way, shape or form. If you work in the Java world there is a sense of consolidation in the ORM space these days with JPA (the Java Persistence API). Sure if you are working strictly with JPA it is a bit more limiting then working directly with Hibernate, iBatis, or TopLink - but you no longer worry that you have made a critical misstep in your architecture by tying yourself do a particular ORM implementation. Similarly Spring gives you that similar "loosely coupled" feel that if Google's Guice because appealing to you, you don't feel like you've wasted all your framework foo on Spring. But web frameworks....that's another story.

I think if you had asked me a few months ago, I would have told you that the industry is promoting JSF (Java Server Faces). Everything from support in the IDEs to the availability of AJAX frameworks...and of course a flexible life cycle that allows for alternate implementations and various code to plug or be weaved in to the life cycle. And that while JSF on its own left quite a bit to be desired, the JBoss Seam project really has filled in the gaps in JSF, and in fact brought Java web development closer in agility to the Rails and Grails of the world that tout quickly built and deployed web applications.

But the thing that you continue to hear is that programming in JSF is painful. And you hear that EVERYONE used to use Struts. And that it is time to move past Struts. And given that, you have to consider Webwork and the merger of Struts2 into that framework - and their claims of rapid development. But you also have to consider Spring WebFlow and how that may help solve your JSF ills given that everyone is building off of the Spring Framework and they have been so good about keeping the framework updated and integrating the best of what is out there while innovating themselves. And then if you are looking at Spring WebFlow, you kinda have to go "Wait, but what about Spring MVC?"

Given its age, you might quickly dismiss Spring MVC until you realize that Grails is build upon it. Grails, that web platform that every java developer is either working with, or intends to work with soon. (Come on, you all have made the Ruby/Rails, Groovy/Grails, JRuby decision in favor of G2, right? I mean all the flexibility of what is out there in the Java world on top of the JVM, with a language that doesn't suck the life outta you....) And then you have to wonder that if you build upon Spring MVC as well as using Groovy and Grails where appropriate, might you be able to make that killer app in half the time.

But wait, you didn't think your choices were nearly that simple did you? There is this wonderful software company out in Mountain View that we need to pay attention too. In Google We Trust, right? And even if you don't worship at the Temple of the G (TOTG) like Sprout, you don't want to ignore them. And, if you've looked at the Google Web Toolkit (GWT) and weren't at least slightly impressed, I would be surprised. And if you are looking at the GWT, you can't totally ignore Yahoo's YUI - maybe with some of the what Prototype, Scriptaculous, or DoJo offer you. And then someone will come over and point out Echo2 to you, and well you have to admit, their demo looks nice. And well, there is Adobe Flex, and OpenLaszlo - I mean after all isn't Web 2.0 all about Rich Internet Applications. And surely you've heard that the performance of Swing is so much better these days and the "power of the modern Java applet"

So at the end of it all, you've got yourself alot of R&D to do, and just as you thing you've got a good grasp for the offerings out there, new and improved versions are out. And don't worry, someone else is also busy working on a new and greater web framework that you have to consider.

Wow - that's quite a mouthful David. Well written!

P.S. The Early Bird Deadline for TSSJS is today.

Posted in Java at Feb 22 2008, 02:47:44 PM MST 6 Comments
Comments:

This is why i stopped using java and mainly its wonderful frameworks !
Hype is the master keyword of IT nowadays ...
Ruby'n'roll, (holy) grails and other buzz stuffs : JUST SAY NO! ... and go back to perl and c !
Okay, i'm kidding (not sure am i )...
But in a reasonable thought what have we to choose for a real durable development/product/service that won't be forgotten 6 to 18 months later ?
Maybe we should stay to the roots...

Posted by undx on February 22, 2008 at 04:42 PM MST #

Well written indeed!

To David's specific comments about Spring MVC and Spring Web Flow: Yes, Spring MVC has been around since the Spring Framework incorporated as a open source project in February 2003, but by no means has innovation stopped there. The new @Controller model introduced in Spring MVC 2.5 is quite compelling--uniquely Spring but also incorporating some of the best features of innovative request-oriented frameworks like Stripes. This "@MVC" model will continue to evolve and improve in the next major release of Spring, while retaining backwards compatibility.

The key thing about Spring MVC from the point of view of the Grails and Spring Web Flow teams, as well as your architecture teams of in-house web frameworks, is it a extensible MVC platform at its core. Grails recognized this and chose to build on it so they could focus on providing higher-level features targeting Groovy as their programming model. Also, in the Web Flow 2.0 release due out in March, the Spring Web Flow team is also now favoring deeper integration with the Spring MVC DispatcherServlet, *even* when JSF is in the mix as the view technology for carrying out stateful conversations. This means you simply deploy a standard Spring MVC DispatcherServlet, even when using JSF as your view technology. I'm excited about this, as it should make the JSF UI component model much easier to integrate for the Spring community, because it can be adopted on a piecemeal basis inside a familiar Spring MVC environment for the use cases where it makes sense to do so. For me, this is the kind of work we feel we can do to help make the major options easier to evaluate and use for our community.

Keith
Disclaimer: I created and work on Spring Web Flow, but I honestly do try to remain as unbiased as possible :-)

Posted by Keith Donald on February 22, 2008 at 08:44 PM MST #

Well there are too many options. This has been one areas where the java community has really shined. This also yields to a lot of confusion.

I think the frameworks battle is never going to solved. It is going to linger for ages to come. People are always going to make something which suites their needs and then shoe horn it to meet the needs of others.

In my opinion there isnt going to be a single best opinion. I would recommend that as individuals decide to choose one framwork and decide to work with it for a year. This would give you time to know its strengths weaknesses. Close to the end of this period decide to relook at your options and decide to either stay with your original selection or decide to do switch.

anand raman

Posted by anand raman on February 23, 2008 at 02:02 AM MST #

The new framework landscape asks for new project management. The old strategy of picking a framework and training all your developers once and for all on it is no longer working. We have to train developers to pick up on the new frameworks quickly and design our applications to be small and use the technology that makes the most sense at that moment.

Of course there is reason to filter and shield the majority of developers from too many changes, but I'm convinced that managers that say: "We've chosen this technology now, so all applications have to be built with it" or "We've chosen this technology last year so all new projects have to be built with it" are living in the past.

Too many frameworks... not a problem, just ignore a few at random. To me having choices is much better than having to do it yourself.

Posted by Iwein Fuld on February 23, 2008 at 04:36 AM MST #

And the title of this piece.....Isn't it all just pretty colored paints anyways?

Sometimes I fear that as we construct our web framework stack of n number of technologies we forget what we were trying to do in the first place.

Posted by David Sachdev on February 23, 2008 at 12:03 PM MST #

David, very well written and entirely agree. Is this very different from the HD-DVD, BlueRay thing when I as a consumer really wanted to watch a high quality DVD?

And BTW, you forgot to mention home grown/project specific frameworks developed either similar to or on top of these n different frameworks.... and all this when all I wanted to do was to watch Transformers in real good quality. Did they all forget that, that's all I wanted to do? Yes indeed they did, 'cos I wanted to watch Transformers, and they wanted me to fall in love and stare starry eyed at the DVD player for the 2 hours... :)

Posted by D Gray on March 03, 2008 at 01:39 PM MST #

Post a Comment:
  • HTML Syntax: Allowed