ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From William Uther <>
Subject Re: ANT semantics and power
Date Tue, 29 Feb 2000 00:31:58 GMT
-- wrote:
>>   As has now been noted a couple of times, there are two issues here.
>>   One is ANT's basic semantics and the second is how powerful the
>> language is made.
> Ant is not a language. If you want a programming language - fine, you can
> use Ant tasks. Just don't call it ant.

  Not all languages are turing complete.  Ant _IS_ a language.  I agree
that it should not be a general purpose programming language.

  Please note that I included a couple of suggestions that would WEAKEN
then power of Ant as a language.  My point is not to turn ant into a
general purpose programming language, but to point out what I see as
inconsistancies and possible ways to fix them.

> Wrong use of property and ant. You use it as a programming language, it's
> not a variable, property is used to define constants. Since it's a
> constant it can be set anytime.( and must be set before anything else is
> executed )

See Sam Ruby's reply.

>> If that is the case then I humbly submit that you've already gone too
>> far. ANT is already turing complete if people can define their own
>> tasks.  (I could define a few new tasks, namely fixedProperty, while and
>> if.  By defining createIf, createWhile and createFixedproperty these can
>> already take themselves as sub-tasks.  That's all I need.  It isn't very
>> useful, but it demonstrates the turing completeness.)

  Note that I did not say I would choose to do this (in fact I specifically
said it was not useful).  My point was that you already have a turing
complete language whether you want it or not (if you allow extensions).
The sub-task addition is just syntactic sugar.

> Why don't you use Make then ? Or JMK or any other build tool ?

I prefer Ant over Make/JMK for a number of reasons.

 - It is more cross platform.  jmk as currently used relies far too much on
the "exec" command.  "exec" don't work so good on a Mac.  Now, I could
steal the set of Ant tasks to solve this problem, but there are other
reasons to prefer ANT.
 - Ant is more readable.  I never particularly liked Make's alphabet soup
(or punctuation soup).  I can never remember what !,@,#,$,%,^,&,*,< and >
are supposed to do, so I usually just read them out, @#$%!  :)
 - Ant has more potential for machine editing and a nice GUI.  This
requires careful design though, and needs to be weighed against expressive

Note the last point.  I can Ant going in one of two directions.  EITHER
make it simpler (less extendable), OR make it more expressive.  I do not
believe that either of the suggestions I've made (changing the power or the
semantics) alter ANT's machine editability.  If you diagree please provide
an example.

> Ant was not designed as a programming language ( procedural or
> functional), but as a tool. We want to keep it simple.

That is a great goal, and one of the reasons that I prefer Ant over jmk.
Why are you drawing the line HERE?

I re-iterate my question from before.  What ability do you have currently,
or could reasonably implement, that you would lose?

This was the whole point of my turing completness example above.  Ant is
aleady pretty complex.  Adding nested tasks will in some ways make it


\x/ill          :-}

View raw message