At 05:48 27/10/00 -0700, you wrote: >I hope the list doesn't mind an "outsider" offering >some thoughts on the issue of including scripting >within Ant, but I am a major GNU make user (fan) who >has spent part of the last two days evaluating Ant and >trying to decide if it is "time to move on".
the more opinions (especially from make fans) the better ;) >Where I'm coming from: I have been the de facto build >manager for about 5 projects in the > 100 KSLOC size theres a telling sign and one of the reasons none of my java projects no longer use make. In short Ant doesn't need (or shouldn't need) a build manager because everyone should be able to write build files - they **should** be that simple ;) >1) Language Consistency: I have found the fact that >make assumes one scripting language, the Bourne shell, ...snip... I agree here. Thou I would actually move away from java-like languages because the main people who write build files around here are web designers. There build files usually consist of moving/copying/compiling files around and then deploying them to a webserver. While this use may be a rare use case I believe it should still be supported. And thus a *simple* scripting language should be chosen (python and javascript are two I see as simple thou YMMV). >2) Language Necessity: This is a tough one where I'm >kinda on the fence. The more experience I gained over >the years with make, the fewer embedded scripts I >used. Yes, one must at some point invoke a command, >but this is no different than the Ant <exec> facility, >or the built-in actions. What I'm talking about is the >use of "if", "while", "case", pipes, etc... procedural >stuff. Once I realized that make is nothing more than >a simple programming language with a limited but >powerful set of operators (think Lisp), I began >thinking about build system problems differently, and >my makefiles got smaller and smaller, while becoming >more correct and powerful. I also leveraged the GNU >macros more fully, which are arguably a scripting >language unto themselves, as with the Ant >tasks/actions. Right - the more you know the less you use scripts. I see that is the same with ant - thou more so as it is not yet fully mature. >I have seen a lot of bad makefiles with lots of >scripting constructs, usually because the developer >didn't "think" in the make "paradigm" (sorry about >using that word ;-) ). However, the reason for this >isn't really the fault of the developer; without a lot >of experience, makefiles are damn hard to understand >(again, think Lisp)! And so much goes on behind the >scenes, making it very powerful, but intimidating to >the uninitiated. yep - have you ever tried to teach someone how a thousand file multi-langueg build file works. Quite amusing the look one their face ;) >>From what I've seen so far it appears that Ant is much >easier to use than make (if I could only remember to >close my elements ;-) ). But given what I've said so >far, I still lean closer to the "add scripting" side >of the fence, provided that procedural scripting is >only necessary for the 1-5% of the cases. That means scripting is there already (script task) but what is being discussed is whether it should be promoted to core. I follow the 90/10 rule and if your figures are right then scripting falls in 10 side so probably shouldn't be core. >Thoughts? I hope this was constructive. yep - thanks for taking time to comment ;) Cheers, Pete *------------------------------------------------------* | "Nearly all men can stand adversity, but if you want | | to test a man's character, give him power." | | -Abraham Lincoln | *------------------------------------------------------*
