IT managers – let the Web 2.0 help you to make faster decisions and save money on POC’s and long investigations

April 19, 2008 — 3 Comments

For the release of our new Portletsuite next year it was quite easy to find common understanding amongst my Tech Leads and helpfull architects to have Spring accepted with standards like OSGi and SCA to build our new backend. I mean, showing votes by hands is quite a democratic and easy system if practically all of the votes are for Spring and the remaining 1 vote says that we need to investigate more.

But when we got to the Front-end discussion it turned out Spring-MVC looked like to become the champion, but suddenly we had a new player: Wicket. Later research, actually by finding great comparison material, would prove that Tapestry and GWT could also have been contenders. But luckily we had already narrowed the choice down to Spring-MVC or Wicket. But still internally I found some of our people, of course many developers, who wanted to have at least a month to do research before making a choice.

In my opinion this just would take too long and the request were mainly based on the personal wishes of developers to find out things themselves before making a choice. In an era where new technologies are popping up continuously I think there is no holy grail, all choices have good and bad sides. So I agreed to have my developers to do more research and to do a PoC, but to start it off with Wicket. But of course as stubborn as I am I wanted to show that research could also be done differently. And the results of my research even more strengthened my suspicion that with Web 2.0 many more IT experts can help me sometimes better than some of my team members to make a management choice. I mean, can someone find out better conclusions within 40-80 hours, than so many other IT specialists who together have spent thousands of hours on the same subjects? Of course not …

Feel free to check out the results of my personal research, done within 8 hours online, and why I think Web 2.0 possibilities can really help IT managers:

http://www.javalobby.org/java/forums/t60786.html
http://www.infoq.com/news/2006/12/wicket-vs-springmvc-and-jsf
http://www.oreillynet.com/onjava/blog/2007/01/wicket_another_java_web_framew.html

http://ptrthomas.wordpress.com/2007/03/02/wicket-impressions-moving-from-spring-mvc-webflow/

And I also found experts like Eelco Hillenious to help me out with some questions. I also just mailed Timothy M. O’Brien with some more questions after reading his blog about wicket on Oreillynet.

His reply also really helped to form my opinion:

Both solid choices, Spring MVC for more of a request/response approach and Tapestry for a component-oriented approach.   Your team will need both.
I’ll tell you what I use:
1. Wicket for web sites which require a great deal of AJAX.   Sites with tables, calendar controls.    In my opinion, Wicket, Tapestry, and GWT are all first-class choices in this space.
2. Rails for simple sites that need to be completed quickly.  Rails is great for starting new projects, but I’ve found that as a Rails project grows it becomes less maintainable than a J2EE application.
3. Spring MVC when I just need more control over simple form parsing
4. Apache CXF for publishing REST services and SOAP endpoints

5. When I really need rich interactivity, I usually integrate a Flex widget in any of the above frameworks.

I guess my answer is, our developers should choose:
1. Either Wicket, Tapestry, or GWT for a component-oriented framework
2. Spring MVC as a backup for the easy request/response work

But, you need to make sure that they present you with a well written theory f adoption.  (What does that mean?)   If you are using both Spring MVC and Tapestry, make sure that they’ve identified the reasons why they made the selection, and exactly where each technology will be used.   I believe that hybrid architectures are the way to go, but when you adopt a hybrid architecture, you need to make sure that you’ve defined the roles for each technology.  Otherwise, you’ll end up with a grey area “Should we do this in Spring MVC? or should we do this in Tapestry?”

To answer your original question,  I view Tapestry as a first-class alternative to Wicket.  I wouldn’t discourage Tapestry if you are confident that your team has the ability to master it.   It might not have some of the energy around GWT and Wicket, but what matters the most is if your developers are interested in it.   If you are doing offshore development, one of the most important things you’ll want to find is a framework that is well-documented, books provide a set of ground-rules for a distributed development team.

And last but not least, I put some questions about this issue on lInkedIn:

What frontend technologies would you choose for Portlet development?

If you would try to develop user friendly portlets with AJAX / FLEX. And you would want to port them to the JSR 286 standard. What kind of technology would you as web development framework for the front end? Would you use Spring MVC / Wicket / Tapestry / GWT. In the backend we’re using Spring combined with the OSGi standard. And for AJAX, would you use Dojo or Jquery?”

I got back some great answers for it:

Marcin Pilarczyk

Technical Consultant at Componence BV

This was selected as Best Answer

Dear Ha,

I support using Spring MVC but only partly. There are great things about that that are underestimated, eg. AOP, transactions support. Also injections are great especially that you initialize portlet with no effort at all.

V of MVC is something that I really don’t like. M and C are great 😉

For V letter consider Wicket, please. As it was already written it provides a real separation of layer and demand no big effort to learn it.

Lars Rosenquist

Freelance Software Consultant/owner at Alyssar B.V.

Spring MVC is okay: since you’re already using Spring it will fit in quite nicely with the rest of your application. But I find it quite cumbersome in terms of XML configuration.

Wicket on the other hand, uses NO XML configuration at all, and it provides REAL seperation of UI design (HTML) and UI behaviour (POJO’s). You can use the HTML/CSS/JavaScript by a UI designer as is, without the need to add special tags.

Neither of these technologies impose any restrictions on you or force you to do things a particular way like JSF does (which is one of the worst things about JSF IMO).

When I first heard about Wicket I thought: ‘O no, not ANOTHER web ui framework!’, but I have used it at my current customer and I have really come to like it. It provides you with even more freedom than Spring MVC does.
The downside is that it is not used as much as Spring MVC (yet), so it’s probably hard to find an expert on the matter.

Hope this helps you decide.

cheers

Lars

Ju Rao

CTO and Owner, MathThinking Technologies

see all my answers

I personally prefer Spring MVC, especially when you are already using Spring framework. Spring is very flexable framework, not like JSP, which is very restricted, and you are forced to use many tags.

Also, JSP is not Ajax friendly – you have to either add am additional servlet just for doing Ajax, or you have to implement some event listener in order to do AJAX with JSF – none of the is a natural way (read this for the details: https://bpcatalog.dev.java.net/nonav/ajax/jsf-ajax/frames.html)

I agree with Marcin, “V” of MVC is not suitable for AJAX – you are not going to redaw the whole screen, only a part of it. (In the most extreme case of AJAX app, there will be no place for V: one page per app, all the consequent steps are replacing a part of the screen)

As for choosing JavaScript lib, I think many libs out there are good enough to do the job (I personally used Prototype and Scriptaculous , Dojo, etc), so it’s more personal preference than usage. For example, i think Dojo is too havy.

Since you are using Java, have you read this article?
http://ddj.com/web-development/199203087

Links:

I placed another question relating the issue to see how the choice technology might impact our offshoring model:

What choice is better for a portal solution with a offshoring development model: Spring MVC / Wicket?

I have been reading many forums about the choice for a Java web framework. Currently my company is making the high level design choices. For the back-end we have chosen Spring as it’s very flexible and doesn’t exclude standards like OSGi. For the front-end of the development we have to choose between Spring MVC / Wicket. We left out JSF as it’s quite complex and it has some issues with portal development.

In this case the design is made by experienced architects in Europe and the development will be done by offshore development units. So this also introduces the factor what technology is easier to learn / carry out? ”

Eelco Hillenius

Lead Developer at Teachscape

This was selected as Best Answer

The choice between any model 2 (often called web mvc) framework or a component oriented framework like Wicket is easy: go for the latter. You can read my take on things in the first chapter of Wicket In Action (see http://www.manning.com/dashorst/) and (somewhat related) here: http://chillenious.wordpress.com/2006/07/16/on-page-navigation/

One of the things that makes Wicket suitable for development using offshoring is that components can be off any level (pages, panels, anything) and are self contained. This means that functionality can be independently developed and reused in multiple contexts. Which is quite impossible with model 2 frameworks (Struts, Spring MVC, etc).

Do give GWT a serious look as well. Both Wicket and GWT have their own strong and weak points (google around for discussions on this), and depending on what you do, one might be a better choice over the other.

Links:

Eelco Hillenius also suggests these experts on this topic:

Dustin Digmann

Software Developer at Formos, LLC

see all my answers

I would not exclude Tapestry from your list of frameworks. It is a very flexible framework with a very customizable IoC. Pages are extremely easy to create. Version 5 should have a release candidate this month or at the beginning of next. Having been using this version for about four months now, I would say it is still very stable.

Although I have not used Spring personally, the guys I work with (who swear by Spring) are quickly becoming convinced Tapestry is not only easier to develop in but also more customizable.

Thank you
Dustin

Links:

Serge Dubakov

Team Lead at Luxoft

see all my answers

If we are talking about UI framework here I would definitely look at GWT (Google Web Toolkit) – that’s what we are currently utilizing for our new projects. Developers will do need some efforts to learn it because this framework is somewhat different from usual MVC approach but on the other hand it will be easier for those who are familiar with AWT/Swing because it follows the same concepts. With GWT you’ll also be able to fully cover your UI code with unit tests which is not possible with traditional frameworks. Anyway I guess you should at least take a look.

Links:

And many more IT architects / managers / developers are willing to help:

It depends on experience of the developers.

Actually all these frameworks are good solutions, but the implement solutions are different.

In my opinion, for the front-end, Wicket has a very different approach than Struts or Spring, but maybe it is more immediate for a startup.

The problem is understanding if you can implement all types of web flows and necessary controls for your application using only Wicket.

Messages from Piergiorgio Lucidi (1):

Hussein Baghdadi

Java Application Developer

My favorite frameworks these days are Seam, Struts2, Tapestry 5 and GWT.
Picking a framework is highly depending on projects nature (Internet or Intranet projects)
Personally, I’m allergic to SpringMVC, it is too flexible which it could be an annoying thing (at least to me).
Tapestry is dangerous…
You don’t know when it will be rewritten and it lacks a rich Ajax component shop, the shop that Seam enjoys.

Roger Marin

Java Developer at Dotmarketing

As much as i love wickets innovation i think spring mvc suits you better why?, support and documentation, there are lots and lots of books and resources on spring, finding good and effective documentation on wicket is a hard chore, not to mention the fact that its pretty new and user support is not that big, on the other hand spring mvc’s user base is HUGE. If all you are looking for is a component based framework against a request based framework(spring mvc, stripes, struts) i think GWT will suit you better, again, because of the large user base (compared to wicket) and the amount of already available books and resources.

hope it helps you.

And if you want to have your architect / developer to feel free to contact someone, then check out Arnold Reuser:

Arnold Reuser

Senior Architect at Informa

see all my answers

The main components of my current technology stack are
Extjs, DWR, Spring & Hibernate. Authentication & authorization
is handled by Spring Security 2.0 ( aka Acegi ), caching by ehCache,
site layout by SiteMesh, …
To standardize the development process and raise the level of quality I use Maven2 and test all major artifacts by applying JUnit.
It took me about two years to build, polish and understand the details
of this technology stack Components, concepts and technologies like JSF, osCache, Seam, Dojo, Webflow, Tapestry, JBoss, … were once part of this stack but were all added and removed for different reasons.

About a year ago I spend a few weeks on researching JSR-168 & JSR-268 compliant portlet containers and focused on the strength and weaknesses of containers like Exo, LifeRay, Pluto, JetSpeed,oPortal, uPortal, jPortal, … and the best practices extracted from internal projects who failed or succeeded using portlet containers.
Nowadays I don’t consider using a JSR-268 portlet container to be a solution for a centralized hub to handle identity management, workflow and process orchestration and application integration by the usage of some shared infrastructure.

Because I consider this stack to be the fruit of dozens of open source communities and not only the result of my hard work I am happy to share my knowledge whenever required.

THANK WEB 2.0 AND ALL THESE FRIENDLY EXPERTS WHO MADE TIME TO HELP ME!!!

PS: more people helped me on LinkedIn, check their replies on:

http://www.linkedin.com/answers?viewQuestion=&questionID=209345&askerID=1173826&browseIdx=0&sik=1208583926547&goback=%2Eamq&report%2Esuccess=0lj03sgMMsZGIzk5-mFSGTnsARwMMIWrbD8hLTRnc77-T5Bkp_2Y_k-k-ewhMFBkohHeMgxrmBKcTv2aPwX7

http://www.linkedin.com/answers/technology/web-development/TCH_WDD/205164-1173826?browseIdx=1&sik=1208583926548&goback=%2Eamq

Advertisements

3 responses to IT managers – let the Web 2.0 help you to make faster decisions and save money on POC’s and long investigations

  1. 

    It’s worth to join 🙂

  2. 

    It seems that Jonathan Locke is available on the market again. Wicket companies, better hurry up or else he might be out of the market again:
    http://web.mac.com/jonathan.locke/iWeb/JonathanLocke/Blog/1810E18A-C8A9-4D64-BE50-E8965130F2D1.html

Trackbacks and Pingbacks:

  1. Do world need a new Web Application development framework? « Andriy Mykhaylyuk - April 21, 2008

    […] of our company wrote on his blog post about choosing a framework for our new product. And a lot of guys have responded to his posts on […]

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