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]

Reply via email to