ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Vernum <Tim.Ver...@macquarie.com.au>
Subject RE: Can someone tell me what is so great about Ant?
Date Wed, 07 Feb 2001 01:59:14 GMT
> Let me get this straight. Complex ant files are ... complex ... as are
> complex makefiles. Not such a great point. Simple makefiles 
> are ... simple.

OK, so it's not rocket-science, but I thought it needed to be said.
I'll explain below

> Well .. yer ... but how many simple Makefiles are actually 
> useful.

Mine are.
It depends on what you consider to be a "makefile"

I have a make-engine that is a makfile included within
 each project's makefile. It basically gives you a lot of
 what ant gives. (Not all, but a lot)
In Ant the logic is in the tasks, written in java.
In make the logic is in my "engine" makefile.
It's rare for me to touch that file, and it only happens 
 when I need to define, what to ant would be a custom
 "task".

> Compare
> the average makefile to compile and jar some classes vs 
> average build file.
> Makefile is a tad larger/more complex.

I'll take the time to write both later and see, but your
 conclusion doesn't seem obvious to me at the moment.

> Arguements like -  complex build
> processes are complex hence your build tool is irrelevent if 
> you aim for simplicty is somewhat foolish, no?

That's not what I said/meant.
What I mean is:
 * Simple makefiles are not (IMO) hard to understand.
 * Complex makefiles are hard to understand.
 * Simple build files are not hard to understand.
 * Complex build files are hard to understand.

I get the impression that people are comparing Simple-Ant
 to Complex-Make.
That is partly a result of the tools - ant does encourage
 simple files, and make does encourage complex files,
 but I don't think "ant files are easier to read" is universally
 true.

> Then you argue that you believe there
> should be a build engineer/process manager ...

Yes. 100%.
But it's not (just) to maintain the build files.
It's to guarantee the integrity of the final product.
They need to have a good understanding of the build 
 tools, but I don't think joe-coders does.

> The main advantages with ant is that it only
> executes most tools once and if the tool is java based it 
> usually executes
> it in VM rather than creating a new VM (which is costly).

That is true.
What I was thinking of is the trivial case of recompiling
 only a small number of files.
The overhead of make is in my experience smaller for
 that than ant, and you would have to be compiling quite
 a number of files to regain that time for ant.

For a full rebuild of a medium to large project, I would
 expect Ant to win quite convincingly.

Hmm, I wonder if I could hack make to run everything
 in one command...

> >> 5. Lot of custom tasks for Java related tasks such as jar, 
> >> war, ear, javadoc,
> >>    and a lot more. See
> >>    http://jakarta.apache.org/ant/jakarta-ant/docs/
> >>    for a list of all the Ant tasks.
> >
> >Which is just as easy in make.
> 
> not really.

I was thinking of writing shell scripts to handle the tasks.
Anything that you can write a java task to do, you could
 write a shell script to do (even if that script ran java).
While ant is extended with java classes, make is extended
 with shell commands.

> >Writing makefiles that work is a complicated process, but I 
> don't find
> > that writing ant files is much easier.
> 
> I would actually say that writing complex several project ant 
> files is more
> difficult in ant than it is in make. Hopefully this will 
> change in Ant2.0
> though. Not sure.

I have high hopes for Ant2.
For the record, I like Ant better than make, but I do find make
 more powerful, and I think it gets a bad rap, because there's
 so many bad makefiles out there.

 

Mime
View raw message