Henning P. Schmiedehausen wrote:
Jonathan Revusky <[EMAIL PROTECTED]> writes:


last year or so. We are now in our 4th major release cycle of the last 16 months, and each such cycle has added major new features. Come to think of it, I wonder: what was the last significant feature added to Velocity and when was it added?


Can you tell me, what the "significant features" were, that you've added.

One of the biggest advantages of Velocity is the fact that it gets its
job well done and doesn't try to be "more" than a template language.

While I'm still a little unhappy with some decisions regarding numbers
and arithmetics, I do must admit that this self-reluctance from the
developers really helped to clearly distinguish with what should be
done on the vm pages (view) and what should be done in java code
(model).

As Turbine is one of the major users of Velocity (and we just dropped
FreeMarker out... ;-) ), I'm really interested where you think that
Freemarker is superior to Velocity.

<sigh>


Well, probably when I got very heavily involved with FM and basically took on a leadership role about 16 months ago, you could have said that Velocity and FreeMarker were roughly comparable, that one was stronger in certain ways and the other in other ways. However, at this stage of the history of the two projects, where Velocity has been entirely neglected over that time period and FreeMarker has been actively developed, any fair-minded comparison of the two things is just devastating. FreeMarker is clearly just way out in front. Here is a (probably incomplete) rundown:

FreeMarker can use 3rd party JSP taglibs. No competing template engine currently offers this, as far as I know. See here for more details. http://freemarker.org/docs/pgui_misc_servlet.html#d0e6925

FreeMarker has directives for fine control of whitespace. (Something that is complained of constantly on the Vel lists.) See here for more details. http://freemarker.org/docs/dgui_misc_whitespace.html

FreeMarker has support for decimal number literals and arithmetic operations on integers and decimal numbers( velocity only supports integers.) Also, you can maintain separate templates for different languages/locales and the number formatting (2.3 vs. 2,3) happens correctly and transparently depending on the locale. You can also override the number_format setting for different parts of your template, so as to display scientific notation or whatever number format you want for the numbers in that part of the template. See here for more details. http://freemarker.org/docs/ref_directive_setting.html#d0e10425

You can define variables and macros in separate name-spaces so that different people can work on different pieces without any possibility of naming clashes. See here for more details: http://freemarker.org/docs/dgui_misc_namespace.html

You can define transforms (or filters) that that arbitrary blocks of template output can be passed through. See here for more details: http://freemarker.org/docs/pgui_datamodel_transform.html

FreeMarker macros are much more powerful. Macros can forward reference other macros. Macros can contain local variables, thus avoiding naming clashes with possible variable names outside the macro. FreeMarker macros can have default parameters. There is also the possibility of associating a template block with a macro invocation. See here for more details: http://freemarker.org/docs/dgui_misc_userdefdir.html

FreeMarker interoperates very cleanly with Jython. See here for more details: http://freemarker.org/docs/pgui_misc_jythonwrapper.html

FreeMarker (as of the 2.3 cycle still in preview part of the cycle) has support for declarative-style XML processing (a la XSLT). See here for more details. http://freemarker.org/docs/xgui_declarative_basics.html


> Maybe we pull FM back in for > 2.4-dev... :-)

Maybe. I'm not holding my breath. :-(

Regards,

Jonathan Revusky
--
lead developer, FreeMarker project, http://freemarker.org/




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to