Collaboration: At the Extremities of Extreme
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Scott Delap on May 18, 2007
Project Structure -Wicket does not require any extra XML config like you have faces-config.xml for JSF. It also does not require JSPs.
Footprint and Dependencies - Thomas uses Jetty in his evaluation. Removing JSP support from Jetty for the Wicket version saves over 5MB. JSF has around 3MB of library dependencies compared to the 2MB for Wicket.
Page Complexity - In Wicket complexity moves into Java code. In JSF a large amount of complexity is in the JSP pages themselves.
Comments on Thomas' comparison consider if it is a fair one:
Can you fast forward to 2007? Look at JBoss Seam which makes JSF development much more pleasurable. Don’t get me wrong, I like Wicket and its philosophy but this isn’t a fair comparison to modern day JSF, especially with a trivial example as you’ve shown.Another reader writes however:
Excellent article. I’ve worked with both technologies, but seeing them side-by-side like this was very easy to follow and clear to read. While some of the vendor-specific technologies mentioned above might make JSF easier, I think your comparison was fair.
Monitor your Production Java App - includes JMX! Low Overhead - Free download
18 agile and lean practices for effective software development governance
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
Footprint and Dependencies was a comparison point? Wow, I don't know if I can spare an extra MB of dependencies. The point of moving page complexity into java code as a pro for wicket is somewhat misleading, considering you can do the same in JSF by simply placing a "bind=#{foo.bar}" in any JSF tag/component and accomplish the same thing. And Wicket still faulters with reflection-- EL/property string-- same thing. I have to say though, the zero config works really well for small, 3 page apps.
Wicket still faulters with reflection-- EL/property string-- same thing.
The example uses property models, which indeed are based on introspection (like EL). However, you can just implement IModel directly, and you can build your application as statically typed as you wish.
I have to say though, the zero config works really well for small, 3 page apps.
And 1000 'page' apps alike. You don't *need* configuration with Wicket like you would with JSF.
> I have to say though, the zero config works really well for small, 3 page apps.
That's very unbecoming of you Jacob. It's almost (well, maybe not quite) like saying EJB2.0 scales better than 3.0 because it uses so much more configuration ;)
it was a comment on the scope of comparison, not on wicket itself
A whole JSF article using "Netbeans" (Studio Creator 2 would have been a better bet) and the comparison is on size of server executable (got to save that disk space, its such a problem these days) and the JSF bit being a bit of a pig to work with.
THAT IS THE WHOLE POINT. This reads like someone comparing RMI with socket writing and complaining that RMI was a complete pig, while not using any of the RMI tools. Its very sad how we continue to have an industry with an obsession with hand cranking pages.
Size of the server executable and the number of dependencies are just the first in a series of side by side comparison points and the full blog post has more details, (including comments from JSF users acknowledging that the comparison is fair).
BTW Wicket has tools as well, there are plugins for Eclipse and *NetBeans*.
Its very sad how we continue to have an industry with an obsession with hand cranking pages.
If it wasn't for these pesky programmers with their obsession for 3GL languages, everyone would have been using 4GL tools by now. ;)
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
7 comments
Watch Thread Reply