I agree with these comments.  Too much simplicity just means that the developer has to write a horrible hack to work around the lack of required functionality.  This ends up being much more complicated.

I also agree with the principle of the boolean conditional decision, but I think that the overriding concern here MUST be to ensure that Ant is simple and easy to use.  That means keeping the build file syntax simple.  It also means providing the required features where they are needed.  (See the above comment.)  If we could keep the current conditional syntax as well as providing a more advanced alternative, I think we would get the best of both worlds.

One further comment (truly not intended to stir people up) is that in the case of java applications, (I am aware that Ant is not exclusively java focussed,)  writing platform dependent build processes is often just a work around for lack of attention to platform independence in your code.  Java makes a valiant attempt to make this easy, but so many people don't bother to take simple precautions.  Having said that - I will concede that it doesn't apply in all cases.


Aaron Knauf
Systems Integrator
Genie Systems Ltd
Auckland, New Zealand
Ph. +64-9-573 3310 x812
email: aaronk@geniesystems.com

Benjamin Reed <ranger@befunk.com>
Sent by: ben@www.scenespot.org

09/11/2000 01:17
Please respond to ant-dev

        To:        ant-dev@jakarta.apache.org
        Subject:        Re: OS detection: am I missing the obvious?

Diane Holt wrote:

> I'm not trying to re-open this debate, honestly, but I just have to say
> that I find it interesting that you think heading towards something like
> "configure" is desirable, just to avoid having a test-for-value.
> Personally, I find "configure" to be one of the yuckiest mangled mess of
> spaghetti-ed crud I've ever run into (and I've run into a considerable
> amount of mangled crud over the years, so that's saying quite a lot).

I second this.  :)

It seems to me that if you're going to have properties like os
available, it should be made easy to use those properties to do
conditionals, without having to go through touching files or other weird
hackish things.  Otherwise, there's no point in giving the architecture
you're running on, if you have to jump through hoops to do anything
architecture-specific based on that information.

I understand that Ant is supposed to be simple, but an OS-specific check
like this is going to be very common (I'm going through it as well on
our project, at the moment I'm getting around it with properties
files... Windows 98.properties, Linux.properties, etc.  Ugly.  But still
not nearly as ugly as Makefiles  ;)  There's a point where simplicity
just means that the user (well, developer?) is going to end up
implementing something over and over again.