Return-Path: Delivered-To: apmail-jakarta-ant-dev-archive@jakarta.apache.org Received: (qmail 56485 invoked by uid 500); 7 Jun 2001 15:08:51 -0000 Mailing-List: contact ant-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk Reply-To: ant-dev@jakarta.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list ant-dev@jakarta.apache.org Received: (qmail 56145 invoked from network); 7 Jun 2001 15:08:41 -0000 Message-Id: <3.0.6.32.20010608001013.008792e0@mail.alphalink.com.au> X-Sender: gdonald@mail.alphalink.com.au X-Mailer: QUALCOMM Windows Eudora Light Version 3.0.6 (32) Date: Fri, 08 Jun 2001 00:10:13 +1000 To: ant-dev@jakarta.apache.org From: Peter Donald Subject: Re: Configure->Template->Build In-Reply-To: <20010607130846.60238.qmail@web9302.mail.yahoo.com> References: <3.0.6.32.20010607171915.008c0d50@mail.alphalink.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" X-Spam-Rating: h31.sny.collab.net 1.6.2 0/1000/N At 06:08 AM 6/7/01 -0700, Roger Vaughn wrote: >> True - but I am fairly sure that we already knew >> that (at least to a >> degree). Currently ant specifies a sequence of >> operations. We add in >> repetition (ie foreach) and selection (ie if) then >> we have just invented an >> XML programming language ;) Something that was a >> declared non-goal of ant. > >Bingo! You nailed it on the nose but missed a >critical point. Ant already IS a programming >language. yup ;) >It's not a mainstream procedural language, >but it is a language, with the express purpose of >controlling build ops. And as we well know from >experience with other languages, sequences of >operations frequently need iteration and conditional >execution. That is, unless you want to model the >language after Prolog, etc. ;-) unlike general purpose PLs, ant is designed for a very specific purpose - building stuff. Ant1 was not designed with the idea that generic/template/rule targets would be used - it aimed to be simpler than that. I would argue that 90%+ of most builds done with ant don't need generic/template/rule targets. If we cleaned up property scoping and allowed for property overides, ant1s model would fit the bill for this 90%+ of people. Iteration and selection should really only be used in rule/template/generic targets and thus only used by experienced people. Including these features in the core would however mean novices would use them ... probably in bad ways ;) Worse we would have to support and explain to them, "no don't use if ask there, use multiple targes with if attribute, don't use repetition here, explicitly list the data etc". Already there is some people claiming the documentation is lacking, but we add these features in and we would have to add in documentation about build practices to avoid, ones to run towards etc. By separating repetition and selection into another layer (ie templating), it saves us mountains of hassle and ensures that people using it wil have a clue (or at least to some degree). Cheers, Pete *-----------------------------------------------------* | "Faced with the choice between changing one's mind, | | and proving that there is no need to do so - almost | | everyone gets busy on the proof." | | - John Kenneth Galbraith | *-----------------------------------------------------*