Geir Magnusson Jr wrote:
<snip>
Just for starters, given Velocity's deficiencies in whitespace
handling, any recursively complex XML transformation will output
oodles of extraneous whitespace. That could be tolerable, I suppose
(though I don't quite know why anybody *should* tolerate it) but the
real killer is the lameness (I can't find a better word) of Velocity's
macro system. There is no notion there of scope/visibility of macros
or variables. Everything just seems to live in some big global
namespace where local variables and included macros and so on can
happily clobber one another. And you combine this with the fact that
Velocity macros pass arguments by name rather than by value probably
leads to some major problems as well.
If I recall, it took you quite some time to copy the lame velocimarco
functionality for freemarker ;)
It's late here, and I can't answer all this fatuous nonsense right now.
Besides, I am sometimes accused of writing overly lengthy emails, and a
complete answer would be lengthy. So, at the moment, I'll just answer
the above point.
You are completely mistaken in the above, Geir. FreeMarker's template
language has had macros since its very beginnings. I began using
FreeMarker in mid-1999, I believe. This was well before Velocity even
existed, and FreeMarker had macros then. I was just a user, not a
FreeMarker contributer, at that point.
I'm sure your implementation was vastly
superior, but you'd be a moron if you didn't address deficiencies in the
thing that you copied. That's how science and technology progresses,
right? "Stand on the shoulders of giants", and all that. Velocimacros
wasn't an original idea in itself, but was new to templating solutions
at that time. Man, how the years go by.
FreeMarker already had macros before Velocity ever existed. They were
not an innovation of the Velocity project, even if we are just looking
at the java templating space.
Now, I later took on much more protagonism in the FreeMarker project.
The work I did on FreeMarker's macro system, with a lot of great input
from Daniel Dekany and Attila Szegedi and others, was building on
functionality already present in FreeMarker. At no point were we
"copying" anything in Velocity. Not that there would be anything wrong
with copying anything in Velocity, mind you. But it's not a matter of
legitimate dispute that FreeMarker had macros before Velocity did -- in
fact, before Velocity even existed.
Now, to be generous, the source of your confusion about this could be
that, in FM 1.x, they were called functions, not macros. But that's just
nomenclature. FM 1.x functions were the same thing as what you call
Velocimacros.
Other points you make require correction as well, and I'll get to that
later.
Jonathan Revusky
--
lead developer, FreeMarker project, http://freemarker.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]