ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Duncan Davidson <>
Subject Re: Seen this?
Date Sun, 31 Dec 2000 11:43:10 GMT
On 12/29/00 5:56 PM, "Jason Rosenberg" <> wrote:

> Number of times it refers to Ant as a scripting language: 8

And because it's written at JavaWorld makes it fact? Do you believe
everything you read? :)

> Yes people, Ant is a scripting language, not some sort of
> pure object oriented data description language.  Can we start
> acknowledging that, so that we can then augment and improve
> the language in a sensible way?

Nope. At best, the ascii on disk is simply a serialized and editable
representation of the data composing a project tree. Yes, there's this "if"
thing. But really, there is no crystal clear boundary between code and data
in any case in computing. Java class files are composed of code and data (at
least Strings can be considered data), as is C code, etc. However we are
comfortable calling that code. Ant, even if there are a few data members
that imply logic, is much closer to being just data. And that's the leaning
that it takes on purpose.

Sidenote -- "if"s should have been implemented as tasks imho and not as
attributes on targets. Of course, without a cleaner object model under the
covers, this isn't easy in the current Ant, but it was trivial in AntEater
when playing around with well formed project trees. This would preserve
about as well as you can the notion that the data in the buildfile is fed to
tasks which do something with it. It also would let the task be easily
extended to handle compound ifs that mimicked &&'s and ||'s (as you were
talking about in your other mail today) without requiring any changes to the
ant core. The logic is in the Java classfiles. The data they act on is in
the buildfile.

So, nope, I'm not going to acknowledge that Ant buildfiles should be a
scripting language. :) It would be interesting to see a project that
explored that, and who knows, it could very well be a better way to go, but
it shouldn't be done as part of Ant.


James Duncan Davidson                              
                                                                  !try; do()

View raw message