ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From William Uther <>
Subject Re: What flavour of scripting?
Date Fri, 03 Mar 2000 20:23:29 GMT wrote:
> Sam Ruby wrote:
>> Now that Ant supports conditional compilation, expect to see BSF an
>> optional part of several Apache projects.  And several Apache projects as
>> option plugins to BSF (example: make no mistake about it, Ant is a
>> scripting language.  If you have any doubt, take one look at
>> tomcat-test.xml).

I looked at test-tomcat.xml and it looked just like a script.  To the point
where I wondered why you used Ant.

I was also amazed to find that is relied on the left-to-right execution
ordering of dependancies.

> Sam - almost everything can be turned into a scripting language. You can
> write scripts in the boot prompt of some computers ( Forth ). You can
> write scripts in Postscript ( and it's not a very bad language, it has
> some nice features).  XML looks like a different aproach from this
> "everything is a program" world, but of course it's easy to turn XML into
> a PL.
> My point is that it is still posible to use the antfile as a description -
> what has to be done to  build this project. It doesn't say how ( of
> course, you will say that it does - it's a sequnce of calls to execute()
> in tasks). 
> Don't think that by using XML you'll create a perfect scripting
> language. XSL is one of the best examples - it is XML but still ...  

Describing how to build something is describing what sequence of tasks to
execute.  This in an inherantly procedural activity - you are describing a
series of tasks that make state changes on the file-system.

You can discuss how strong a language you want.  I think the answer is that
we want as weak and as simple a language as will fit most common
requirements.  This could be in between the extremes of 'a list of Tasks'
and 'Turing Complete'.

We've had a number of people post requirements saying they'd like certain
functionality.  We've also had people saying ant should be kept as
dependant targets each with a simple list of tasks.  There seems to be a
fundamental conflict here.

What happens now?

There have been a number of intermediate solutions listed.  How do we pick
one and go with it?

As a final suggestion, how about this:

Properties are constant once defined.  If defined at a certain scope they
become undefined outside that scope.  Tasks can be nested.  It is an error
to try to redefine an already defined property.

This is NOT turing complete even if you allow <ForEach /> and <Switch />.
(it is close to a functional language, but without functions).


\x/ill          :-}

View raw message