Matt RaibleMatt Raible is a Web Developer and Java Champion. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, 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.

High Performing Java Web Frameworks

Steven Haines appears to be gearing up for a showdown among Java web frameworks. In his Web Frameworks article (found via dzone), Steven notes the following:

There are many factors that you need to consider when choosing an application framework, including but not limited to:

  • Suitability for your specific business needs
  • Developer productivity
  • Performance
  • Support and community activity
  • Technology maturity
  • Developer prowess
  • Business relationships

He goes on to say that he's planning on comparing a number of web frameworks, and his study will give special attention to how these frameworks perform. He'll be comparing Struts 1.x, Struts 2.x, Shale and Spring MVC. If you think your framework can compete, Steven invites you to send him an e-mail.

If anyone has a compelling reason why we should add an additional framework, please contact me and I will be glad to consider it in this endeavor.

I'm looking forward to reading Steven's articles, I just hope I can find them again when they're published.

Posted in Java at Aug 21 2006, 08:42:40 PM MDT 9 Comments
Comments:

[Trackback] Matt Raible tells us that Steven Haines from Quest is about to embark on the endeavor of comparing the leading Java web frameworks. Up until now he’s planning on comparing Struts 2 (WebWork version), Apache Shale and Spring MVC. I’m looking...

Posted by Le Danois 2.0 on August 22, 2006 at 12:08 PM MDT #

I think performance metrics on these frameworks is kind of a useless endeavour. I've spent a lot of time optimizing like crazy, and also measuring the performance of other frameworks only to find that, in general, this overhead of most of these frameworks (Spring MVC, WebWork) is so small that you literally need to move into the thousands-of-requests-per-second on the baseline just to get some sort of measure, and it's really not significant. Personally, I think I've over-optimized mvflex considering the gains I've won.

Posted by Mike Brock on August 22, 2006 at 10:48 PM MDT #

I couldn't agree more Mike. I think the number one issue with Java web development is the complexity.

An experenced developer will have a preferred stack and will be very efficient with it. He/She can even learn new frameworks without too much overhead on a project and without any major performance risks (since they know their way around patterns and proper testing). A novice however, will first be confused by the choice and then by the complexities related to figuring out the proper use of the frameworks.

I'm sure that all of the chosen frameworks will have "acceptable" performance if used correctly. The emphasis should therefore rather be on guiding people to ensure that they use the frameworks correctly.

Posted by Thomas Nicholls on August 23, 2006 at 08:52 AM MDT #

I think the three most important things in adopting a framework (for an enterprise) are 1) stability/backwards-compatibility, 2) documentation and 3) community.

After maintaining AppFuse for 3 years, Struts 1.x and Spring MVC have satisified these criteria the best. When you have issues with them, it's easy to find solutions. Also, they tend to not surprise you.

JSF is pretty good on backwards-compatibility, but general information on the web is lacking, and it surprises you on how it does things. WebWork and Tapestry have been horrible about backwards compatibility and have required a fair amount of work to upgrade b/w major releases.

Posted by Matt Raible on August 23, 2006 at 10:26 AM MDT #

Cool... I have opted the Struts combination over WebWork anyway. So let me wait for Haines analysist result... Glad, I can use this momentum as an argument over my system analyst proposed WebWork. Nice day this morning is!!! Thanks Matt.

Posted by Eko SW on August 24, 2006 at 07:54 PM MDT #

To be clear - with my developer hat on - I'd choose WebWork any day over Struts. However, as a "consultant" who advices companies on the best technologies to choose from a "stability" standpoint, Struts 1.x wins over WebWork 2.x.

The good news is I believe Struts 1.x is/was stable largely because it's an Apache project. Now that WebWork is becoming Struts 2, I think it will be a solid framework (replacing Struts 1.x) in the near feature. Please Eko, don't make your team use Struts 1.x, it's just not nice. ;-)

Posted by Matt Raible on August 24, 2006 at 08:09 PM MDT #

Hehe :) I'd say go for Struts 1.X if your client is located in a part of the world where you can find experienced Struts developers in a matter of minutes, but where you have a hard time finding any really experieced WebWork developers. I know what those sorts of markets are like, and it really sucks for a client to be stuck with an exotic technology, which WebWork still is. I'm not saying that WebWork is immature, I'm simply stating the fact that WebWork developers are very difficult to find in my neck of the woods. You could make an exception if your team already consists of a couple of hardcore WebWork developers and you only have a few WebWork beginners. Otherwise it just doesn't make sense to me, at least not seen from a strategic point of view.

Posted by Thomas Nicholls on August 24, 2006 at 11:18 PM MDT #

What a newbie I am!!! :-P I just know, from you (and having check the Strust homepage at Apache.org), that Struts 2 is the blends of Struts 1 and WebWork 2.2. Just Struts 2 now. And having this suggestion ( Getting Started) :

Work in progress! Apache Struts 2 is at a pre-release stage. If you are just getting started with Struts2/WebWork2, we recommend WebWork 2.2 as an entry point. WW2 is stable and production ready. When Struts 2 is released, migration paths for WebWork 2 and Struts 1 developers will be available. See the Struts 2 release plan for details and status.

You know what Matt, I still plan to use Struts 1.x (the one in your latest AppFuse Struts version). I just hope that the migration to Struts 2.x will be smooth...
Pardon me for being so Stubborn here... (actually I am eager to use WebWork as my analyst proposed, but well, ... "marketing hat" is on now..." [;)]
Anyway, as the project quite simple, I think Struts 1.x can handle it quite well. Btw, don't you have a plan to early integrate the current Struts 2 into AppFuse? I think that will be great!
Thanks Thomas, you know what, I know just where to go for my Struts fellow...

Posted by Eko SW on August 25, 2006 at 04:03 AM MDT #

I would vote fo struts 1.3.x line. and definately not for struts 2.

Posted by levan on March 27, 2007 at 10:59 AM MDT #

Post a Comment:
  • HTML Syntax: Allowed