> (...putting flame-proof boots on...) Darn it! It's not fun then :)
> once you go down the road of introducing features that more > right belong > in scripting languages, where are you going to stop? Without actually wanting to debate your conclusion, I don't necessarily agree with your assumptions. "features that more right[ly] belong in scripting languages," This assumes some or all of the following: * Build processing is not/should not be a script-driven process People suggest that Ant should be purely declarative, and not handle scripting. Sometime I get the impression that they believe that build processing has nothing to do with scripting. * There is a set of build processes that require scripting, but Ant does not attempt to support them. Alternatively, builds may need scripting, but that's not something ant wants to participate in. * Ant is not and should not be a "scripting language" I mostly agree with this, but I don't think it is a forgone conclusion. Scripting is not evil, and if build processing requires scripting, then they may be use for it *in* Ant. To some exent this is what Peter V is requesting, he probably accepts that "foreach" leads to scripting, but he believes that scripting is a necessary part of the the build process. * Scripting in/with/for ant should be separate from the build process within the ant core. Some suggestion XSLT, some suggest <script>, some suggest another form of templating. I did raise an Ant2 requirement that Build Files should be able to be dynamically created, so I guess I fall into the last group. > that way you can use a proper, fully functional scripting > language such as > velocity to design your templates. when you run the main > build script, use > (for example) the texen task to generate your specialized > build script > from your template and run the generated script all from within ant. Right now, ant1 doesn't do this cleanly enough. In (GNU)make, you can make Makefile includes, dependant on something else, so that you can regenerate it (relatively) cleanly. Ant doesn't currently support this, so you have to wrap ant in another tool, and then you have to handle the ant options etc. It's possible, but it should be easier (and I hope that Ant2 will be).