ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Donald <>
Subject Re: Configure->Template->Build
Date Thu, 07 Jun 2001 14:10:13 GMT
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

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).



| "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               |

View raw message