[TSSJS] Java Web Frameworks Sweet Spots BOF
I've finished composing my "Java Web Framework Sweet Spots" document and presentation for tonight's BOF at TSSJS. Unfortunately, the BOF is at 6:30 and Crazy Bob's wedding is at 6. So I won't be able to make it to the wedding, but I do hope to have a toast to Bob and his new bride. I have been successful in securing beer for the BOF, so you'd better get their early if you want a free one. Caesar's doesn't have kegs, so it's $6/beer and we've purchased 100 of them for attendees. After that, it turns into a cash bar. Thanks to Virtuas, Codehaus, SourceBeat and yours truly for pitching in for the free booze.
My presentation tonight will be short and sweet. Rather than going through each framework author's responses, I'm just going to highlight their "sweet spot" responses. This allows me to get away with creating a measly 8-page presentation, as well as have a more interactive session. I've taken everyone's responses to the 6 questions I asked, and compiled them in a document. This document is available on the Virtuas site, just click on the link below to download it.
» View Java Web Framework Sweet Spots
Mats
Posted by Mats Henricson on March 25, 2006 at 08:54 AM MST #
Posted by Geert Bevin on March 25, 2006 at 05:56 PM MST #
Posted by Patrick Lightbody on March 25, 2006 at 06:52 PM MST #
Patrick's part in general is funny, Geert. Despite his claim, I have never said Spring Web Flow (SWF) supports "any framework".
The facts:
SWF is not concerned with response rendering, UI components, or anything like that. Nor does it make assumptions responses are always "whole pages" instead of zone updates via div or tabs. SWF is a dedicated controller engine that returns *logical* response instructions; a task execution engine with a well-defined interface for use. And it is highly object-oriented.
As for Patrick's "nuts" comment about our XML-based flow definition language, well... everyone is entitled to their opinion. Review the SWF 1.0 EA samples and you will find the flow definitions extremely readable; one place to go to manage all controller logic related to a logical user task with a linear progression.
Posted by Keith Donald on March 25, 2006 at 07:31 PM MST #
Posted by Jacob on March 25, 2006 at 08:01 PM MST #
Posted by Michael Jouravlev on March 25, 2006 at 10:31 PM MST #
Posted by Geert Bevin on March 26, 2006 at 02:41 AM MST #
Posted by Jesse Kuhnert on March 26, 2006 at 12:57 PM MST #
Heh - I know, I'm just giving you a hard time. We can debate whether braces should be on newlines or not next time we chat :)
Posted by Patrick Lightbody on March 26, 2006 at 03:44 PM MST #
If found Eelco's comments to be pretty interesting on JSF-- I can see how JSF could replicate Wicket pretty easily with a custom ViewHandler and Java artifacts to compose pages. With Tapestry, it looks like it is going for a more integrated stack (hivemind IoC vs. Spring), which will both attract users, but push others away.
Overall, it's my hope that in some future spec, we can take hints from the Struts 2.0 work and JSF's event management/lifecycle to produce a composable controller API and a separate component model which the controller agnostically operates on (at least with minimal contracts). Hopefully then, the spec would better accomodate both stateless/action and stateful component interaction together under one standard without requiring the model 2 paradigm and the development overhead involved.
Posted by Jacob on March 26, 2006 at 05:10 PM MST #
Posted by Geert Bevin on March 26, 2006 at 09:33 PM MST #
Posted by Jesse Kuhnert on March 27, 2006 at 12:41 AM MST #
Posted by Jacob on March 27, 2006 at 01:11 AM MST #
I challenged you before on TSS: take a look at our JSF interoperability feature request (filed by yours truly) and give us concrete pointers how we should 'easily' do this. Both Jonathan and I looked at it, and we are pretty much convinced that integrating JSF is not as trivial and non-intrusive as you suggest. JSF exposes a couple of 'life cycle' steps and contexts etc in a such a way that there is no way we can build integration while supporting the kind of encapsulation we want.
I don't want to across arrogant, but anyone making statements like that - or suggest that Wicket is a copy of Tapestry - don't get the point at all what Wicket is about. It's an UNMANAGED framework, meaning that it has an incompatible way of working with most frameworks, including JSF and Tapestry.
Posted by Eelco on March 27, 2006 at 01:38 AM MST #
Posted by Jacob on March 27, 2006 at 01:52 AM MST #
Posted by Jacob on March 27, 2006 at 01:59 AM MST #
Furthermore, from your blog: just use the literal tags themselves, <h:inputText/> for example which literally represents what you are attempting to do within the context of the document.
What do you mean, 'literally represents what you are attempting to do?' Sending back a <input type="text"> tag to the client would be my attempt. As it happens, I would want to let that tag be dynamically modified so that it cooperates with my server side component tree. So I attach it to that tree by adding a wicket:id attribute wich corresponds to that tree. I like that conceptually better than having special tags that expand into something else at runtime.
And then there is this thing of previewability.
Posted by Eelco on March 27, 2006 at 02:18 AM MST #
I think it's funny that the momentum behind jsf keeps being touted as the primary reason why the framework is good, instead of an actual technical reason why the framework is good :) Maybe the giant turd that was ejb 1/2 gained a lot of momentum as well. Nonetheless both of them were exploded from my bowels with the same force that a healthy cup of coffee/sanity can bring.
Posted by Jesse Kuhnert on March 27, 2006 at 02:37 AM MST #
Posted by Eelco on March 27, 2006 at 02:44 AM MST #
But isn't that the point of what our component frameworks offer, in addition to templating/externalizing other logic such that you simplify the problem space with a clearly identifiable marker/symbol of something more complex and managed elsewhere? ... something unknown to Dreamweaver or HTML or the designer?
I do agree that designers can use dreamweaver/whatever to work with programmer's pages, but lets get with the times and use CSS, on one project of mine, one guy started using the displayTag for his stuff, and I ended up creating a macro that was backed by HB's criteria-- both produced the same structual markup, and the designer just told us to use the same CSS 'classes' on both we're done-- JS was also decoracted by class too.
At the heart of this conversation, I guess this is where I would draw the line between component frameworks and hybrid frameworks. You are still enforcing a view with a supplemental artifact that defines your logic as with Model 2. As in the original article I wrote, neither is better, just that's where the line is drawn in my opinion that somewhat distinguishes JSF from the others.
Posted by Jacob on March 27, 2006 at 02:54 AM MST #
Posted by Eelco on March 27, 2006 at 03:08 AM MST #
Posted by Jacob on March 27, 2006 at 03:17 AM MST #
Posted by Jonathan Locke on March 27, 2006 at 05:09 AM MST #
Jacob:
> So for a lot of framework developers, there's a decision
> to either innovate outside of the 'spec' or innovate within it
JSP is still supported as a base J2EE presentation technology, is not it? Even if/when JSF gets rid of JSP entirely, JSP will be still supported, at least in its current version. So, one can still innovate within good old JSP spec ;)
Posted by 64.160.69.34 on March 27, 2006 at 04:55 PM MST #
Posted by Jacob on March 28, 2006 at 04:53 AM MST #
Posted by Wolfgang Schnerring on April 30, 2006 at 08:18 AM MDT #
Posted by Maninder Batth on March 11, 2010 at 10:40 PM MST #
Posted by Matt Raible on March 11, 2010 at 10:48 PM MST #