Web Framework Comparison - Prototyping
Join the DZone community and get the full member experience.
Join For FreeThey gave me a blank sheet to start although they did mention Ruby On Rails and GWT. The first one was in the origin of everything, a new board member had recently joined the company and in his former position they were using RoR for the task. The second was probably due to the fact that several projects had spawned recently with Flex+BlazeDS as the client side technology but noone was really sure if it was the right path.
Given this requirements I selected Seam, AribaWeb and Grails as well.
Obviously this is not an apples-to-apples comparison. Ariba and Seam are both full Java stacks. RoR and Grails are server side backends very oriented to relational database repositories. While GWT is a RIA tool to layout views in pure Java with some communication middleware, like say, dojo+DWR or, as already mentioned, Flex+BlazeDS could be.
But it makes for an interesting analysis anyway.
The criteria to elect the champion contain the following points:
- Learning curve
We are talking about three hundred programmers that haven't ever coded in anything but JSF 1.1. Let's make the jump feasible. - Prototyping
How suited for the task is the project? A scripting language seems better to throw something quickly even though it's not maintainable later. On the other hand, a good IDE with good component integration, a drag'n drop visual editor and a preview screen makes stupidly easy to churn pages. - Productivity
How good are the APIs and third party libraries? How much code and configuration is needed to kick start a project? How easily is to connect client and server development? - CRUD
Enterprise applications today always need to interact with a persistent backend. - Killer features
Selling points for the upper management. What does this framework better? Where does it really shine? What unique characteristics does it put on the table? - Weakness
And what about these...? - Maturity, popularity
Is it a safe choice? Will it be around in the not so distant future?
There
were others but neither as interesting (licensing, standardization) nor
useful to you (migration, code reusability) so these make a good list.
I'm not posting the tabular data for two reasons, first it depends
heavily on the weights you assign to each column and second it's
subjective and I don't want to start a flame war.
But here are my personal conclussions.
In
the first round both RoR and GWT fell off the roaster but for very
different reasons. In the case of RoR it scored very well in every
technical category but, even if I could use it, the truth is a company
like this is pretty commited to Java/JEE and such a rupture means time
and money. And they're both scarce this days. Maybe for highly
innovative teams in core areas but not as a general purpose tool. GWT
didn't fare equally well. First for a RIA builder it lacks a decent
widget library. Then I like DWR remoting better(biased again?). And
finally it shuns standards like a plague. With this conditioning you're
better served by Flex. Any day.
The second round saw, and this
was a suprise, Grails fail. Grails happens to have the same punch as
Rails and then some more. A great ORM that simplifies greatly CRUD
operations (nothing really can beat code generation and a book.save()),
scripting capabilities, joint compilation, Spring et al. Unfortunately
it lacks a matching client plug-in. Flex is not there yet and dojo is
too much work for a solution specifically looking for speed of
development. The syntax is concise but many times awkward and in
general Groovy/Grails still lack maturity (IDE support is minimum,
plug-ins quality varies greatly, too many bugs yet). I guess you get
used to Java's 24 months release cycle with bullet proof quality.
Groovy is different in this aspect. I have good feelings about it (more
with SpringSource behind the projects) but it takes time.
The
two final candidates provide the full stack, client and server. Seam is
IMHO more powerful and a safer choice in general. The people behind
Seam are the same that participate in several JSRs and other high
profile projects like Hibernate. JBOSS has always been a very active
OSS player and the quality of the components (EJB3, Richfaces, JBOSS
Tools, Hibernate) is out of question. There's very little bad I can say
about Ariba. It's new (very new) in the OSS space and the look&feel
is not spectacular (subjective I know). That last bit was important
because you want the wow factor when showing a innovative project to
the final user. I have to admit that JSF weighed in favor of Seam here
but in the end it was a worthy winner for us this time. Kudos to them!
Opinions expressed by DZone contributors are their own.
Comments