ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Bodewig <>
Subject Re: Immutability
Date Fri, 07 Dec 2001 10:42:00 GMT
On Fri, 7 Dec 2001, Erik Hatcher <>

> From: "Stefan Bodewig" <>
>> Neither that you or Jose Alberto are non-committers, nor that
>> anybody is causing trouble.  I value your opinion and you know
>> that.
> Note the smiley above!  :)

I've seen it, but it had to be said anyway.

> Disagreement is a good thing - and as I've stated when I first
> brought this issue up, I'm a bit on the fence regarding some cases
> of setting properties.

The whole discussion started with "is it OK that available can be used
to change a property's value", and right there I'm next to you on the

I have no idea why anybody would want to alter the value of an
existing property with any of the tasks we have.  Except maybe, just
because we provide no different way to do it.  If people do it, it
shows that they have a use-case where they need to change a property's

I agree that abusing available or any other task for this purpose is
wrong and therefore I welcome the changes you've made to the tasks.

Then at some point the discussion switched to "we need to enforce the
concept of property immutability in the core".  I didn't follow the
thread close enough to realize that in time and I'm sorry for this.
We don't have that concept, really, and I don't think we should have

>> > Tasks shouldn't be allowed to override properties.
>> Why not?
> Because it turns Ant into a procedural programming language rather
> than a declarative one.

This is the killall argument that gets us close to a an Ant version of
Godwin's Law, I guess 8-)

Ant is lacking some features of declarative languages that could make
up for mutable properties or other procedural features already
present in Ant (backtracking would be handy and allow us to get rid of
many use-cases for if/unless attributes of targets, for example).

One can argue that building things *is* procedural in nature.  Ant
tries to move all the procedural bits into the tasks and lets you
declare the relations between these tasks.  My point is that enforcing
property immutability makes some tasks that encapsulate procedural bits
more or less unwritable.


To unsubscribe, e-mail:   <>
For additional commands, e-mail: <>

View raw message