It is already available and has FreeMarker support, though I haven't
tested it yet.
tom
On Mar 24, 2008, at 1:37 PM, Brian Pontarelli wrote:
BTW, some of the JetBrains folks said that FreeMarker support will
be in 8 and should be available in EAP soon! This will definitely
help move me farther away from JSPs. :)
-bp
Jeromy Evans wrote:
Jonathan Revusky wrote:
Thanks for the detailed argument Jonathon.
Jeromy Evans wrote:
Niall Pemberton wrote:
I just saw the following comment
"FreeMarker is very similar to Velocity, as both are template
languages that can be used outside of a Servlet container. The
framework utilizes FreeMarker because FreeMarker has better error
reporting. However, both are good alternatives to JSP."
I've questioned that a few times myself. The paragraph doesn't
do FreeMarker much justice from a technical sense, but then
again, most Struts 2 users won't exploit the features FreeMarker
offers above Velocity,
What is your basis for thinking this? It's clear enough from the
freemarker-user list that people do use advanced features of the
tool that are not in Velocity. I just don't see offhand why the
usage patterns of people using FreeMarker in conjunction with
Struts 2 would be particularly different from users in general.
Though, the other thing is that, even if the assertion were true,
I don't know how you would know it was... it seems like a seat of
the pants conjecture...
The basis of my conjecture is that Struts 2 provides little support
for FreeMarker's more advanced features, so most users won't
exploit those features.
The model provided to FreeMarker is a map containing the request,
response, ValueStack and a few other basic structures, where access
to the ValueStack (Struts2's core model) is limited to Struts2 tags
to in order to access OGNL. I don't know the history, but it
appears the FreeMarkerResult[1] was designed to be equivalent to
the Velocity implementation rather than to exploit FreeMarker
features. Similarly, although the Struts 2 tags use FreeMarker
templates, the model is limited and the templates don't encourage
what I think you'd consider to be best-practice.
My conjecture still stands, that "as built", most Struts 2 users
won't exploit FreeMaker's better features. That's not meant as a
criticism of FreeMarker.
Take a quick look at the source:
[1]
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/
[2]
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/template/css_xhtml/
....
FreeMarker is technically superior in (almost?) every way, but
not always appropriate.
I have heard this before, but I cannot conceive of a usage
scenario in
which Velocity would be indicated over FreeMarker. In terms of
JSP, that has the obvious advantages associated with being a
standard, greater tool support, more people out there who already
know it. That said, there are plenty of people who prefer
FreeMarker. The reasons vary, but I think they just find that it's
a a lot cleaner... conceptually, I guess. As for things like JRuby
or Groovy results, I think that is something so different that a
direct comparison with FreeMarker or Velocity doesn't make much
sense.
I agree with most of your statements but there are many cases where
technically superiority does not mean it is the most appropriate
solution. Perhaps you have the good fortune of only working with
experienced java developers and don't have to trade-off development
costs, but the learning curve, familiarly with the syntax and tools
support are issues that do exist and are impediments to the take-up
and cost-of-development with FreeMarker.
We should link to/provide something that helps users decide what
best suits their circumstances,
Anything you link to would be just somebody else's opinion. There
is no
reason that you could not offer your own opinion. I'd infer that
you don't want to point out there that a fellow ASF project is
abjectly inferior, so, okay, you provide a link where some 3rd
party says it, but you know.... ;-)
I'm not sure if biases exist like that; the PMC would have to
comment. I've never noticed anything like that, especially with
Struts2's heavy dependency an opensymphony projects and the
project's core dependency on FreeMarker. I'm expressing a
personal opinion, which was that FreeMarker is technically superior
but not always appropriate. I personally would rarely choose
Velocity, but I also can't recommend FreeMarker with a broad-stroke.
including the argument for and against JSP. I don't think there
will ever consensus to recommend one.
I think that in terms of FreeMarker vs. Velocity, there is a
pretty strong consensus among technically informed people in favor
of FreeMarker. As for JSP or other things, like XSLT maybe, or
Groovy or JRuby, they aren't directly comparable in the same way
that FreeMarker and Velocity are.
They're comparable within the context of Struts 2 at alternative
approaches to implement the action or result. My point was to
encourage Struts 2 users to consider the most appropriate solution
instead of focusing on a particular technology.
At the same time it may be useful to compare these to why a JRuby-
based or Grails-based action/result may be more suitable. Blog
anyone?
Well, again, you're bringing in things that aren't directly
comparable in the way that FreeMarker and Velocity are. And that
was the topic at hand. Limited to those two things, the case for
FreeMarker is just
devastating, I think. It is not an objective source obviously, but
I think the following covers the points:
http://freemarker.blogspot.com/2007/12/velocity-of-freemarker-looking-at-5.html
And it's not unfair to link it, I suppose, because if the Velocity
people cared to write a rebuttal, they have the right to, and you
could link that as well. That blog article contains links to some
other blog articles detailing a switch from Velocity to FreeMarker.
http://in.relation.to/Bloggers/AStoryAboutFreeMarkerAndVelocity
http://blog.nominet.org.uk/tech/2005/06/29/moving-from-velocity-to-freemarker
http://blogs.sun.com/satya/entry/migrate_to_freemarker_from_velocity
Of course, you could say that the above ones are cherry picked to
support the case for FreeMarker. But actually, go look for similar
blog articles about a move in the opposite direction. You'll come
up empty handed, I dare say.
Oh, and as for FreeMarker vs. JSP, Jive Software, whose flagship
product is built on Webwork 2 and FreeMarker, switched from JSP to
FreeMarker. Here is some discussion by the Jive developers on that.
http://article.gmane.org/gmane.comp.web.freemarker.user/2984
http://www.jivesoftware.com/community/blogs/clearspace/2007/07/20/the-switch-to-freemarker
Note the last point Bruce made there on our mailing list: "It's
powerful enough for our needs -- velocity didn't have the features
we required." This does seem to contradict the idea that Struts 2
users would not need the extra power that FreeMarker offers. Just
one data point admittedly, but it tells you something.
Well, 'nuff said, I guess. In some private conversation, one of my
collaborators on FreeMarker pointed to the quote above on your
site about FreeMarker vs. Velocity and, you know, basically said
that it was highly annoying... there's a strong sense out there
(right or wrong) that something like this is an example of you
bending over backwards to be charitable to a fellow ASF project. I
had seen that page before and that was my impression as well. I
dunno... Do what you want, but I don't think you're doing anybody
any favors by holding back on telling the unvarnished truth about
this kind of thing. I don't think that it's even a favor to the
Velocity community, though, you know, if some of the blogs I have
linked never shook them out of their complacency, I don't know
what would... :-)
Jonathon, you're preaching to the converted. I think most Java
developers that have used FreeMarker prefer it to the alternatives
for the reasons you've mentioned. The technical argument was won
long ago. The next battle is that of wide-spread IDE support and
easing the learning curve for the JSP-focused kids still coming out
of uni. Struts 2 has to face similar battles as other frameworks
exist that are cheaper to use or provide better features in any
aspect examined in isolation. I understand your sensitivity to
FreeMarker vs Velocity debates but in this case all posts were pro-
FreeMarker and all caveats were on non-technical basis.
I'll make sure the dismissive comparison of FreeMarker vs Velocity
is updated as per my original post, including your links to the
"unvarnished truth".. Also if you have suggestions for Struts 2 to
better utilize FreeMarker it would be helpful to continue to
provide feedback as I'm certain it's not utilized well.
cheers,
Jeromy Evans
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]