Penguin
Annotated edit history of AntVsMake version 10, including all changes. View license author blame.
Rev Author # Line
4 StuartYeates 1 This is a discussion of the relative merits of [Ant] verus make(1).
2
3 Problems with Ant
4 # Ant's relative youth means that many developers aren't familar with it.
5 # Ant's relative youth means that many development support applications (editors, [IDE]'s, etc) don't support it.
6 # Ant's relative youth means that relatively few established projects use it.
8 JamieFlournoy 7 # Ant's relative youth means that most of the tasks it comes with aren't very well-tested or robust.
4 StuartYeates 8 # Moving an established project from ant to make (or visa versa) is non-trivial.
9 # Ant depends on [Java].
6 StuartYeates 10 # Ant lacks native support for non java-oriented packages (like [GCC] and [Bison]).
8 JamieFlournoy 11 # Ant is very, very slow compared to Make.
12 # Ant's definition of "target" doesn't mean a file on disk, it means a set of tasks. This means that if you want a "set of tasks" to run only if a file is missing, you have to define a separate "target" that sets a variable if that file is available, and then your "target" that creates that file has to run unless that variable is set.
4 StuartYeates 13
14 Problems with make
8 JamieFlournoy 15 # Moving an established project from ant to make (or vice versa) is non-trivial
16 # make depends on the [UNIX]/[Linux] [Shell] or a reasonable approximation.
4 StuartYeates 17 # Because make has been around since 1972, it has no native support for newer techniques ([UnitTesting], gzip(1), bzip2(1), signing).
18 # The hidious tab problem, in which a tabs and spaces are visually indistinguishable but have very different semantics.
19
5 JohnMcPherson 20 Benefits of Ant
4 StuartYeates 21 # Ant's relative youth means that it natively supports quite a few newer techniques ([UnitTesting], gzip(1), bzip2(1), signing, JavaDeps and JavaDoc).
22 # Ant handles multiple result files much better than make.
23 # Ant will run anywhere [Java] does.
24 # Ant is significantly more efficient than make for java-oriented things since they can be done without a fork(2) and without starting a new [JVM].
25
5 JohnMcPherson 26 Benefits of make
4 StuartYeates 27 # Because make has been around since 1972, most developers are familar with it.
10 MattBrown 28 # Because make has been around since 1972, most *nix development support applications (editors, IDE's, etc) have robust, built-in support for make.
4 StuartYeates 29 # Because make has been around since 1972, many established projects use make
30 # make will run anywhere the [Shell] will run.
7 JohnMcPherson 31 # since make runs shell commands, you get all the power of the CommandLine interface. It doesn't really matter that make doesn't natively support bzip2, since you can pipe stuff to/from bzip2 in true unix fashion.
5 JohnMcPherson 32 # Make doesn't depend on non-Free software such as a java runtime environment (which is also a fairly hefty download).
4 StuartYeates 33
6 StuartYeates 34 A dependency on the java runtime environment is not necessarily any better than a dependency on a ([UNIX]/[Linux]) shell. It is no better in an absolute or technical sense, but it is __different__. There are situations (and projects) for which one is clearly better than the other. Using/demanding [Ant] and [Java] in all situations is no better than using/demanding make(1) and sh(1) in all situations, and if those running the project are unable or unwilling to evaluate where one is needed and one is to be avoided, there's probably not much hope for the project anyway. ---- StuartYeates
The following authors of this page have not agreed to the WlugWikiLicense. As such copyright to all content on this page is retained by the original authors.
  • JamieFlournoy
  • BrandonVanEvery
The following authors of this page have agreed to the WlugWikiLicense.

lib/plugin/WlugLicense.php (In template 'html'):99: Warning: Invalid argument supplied for foreach()

lib/plugin/WlugLicense.php (In template 'html'):111: Notice: Undefined variable: ignore_authors

lib/plugin/WlugLicense.php (In template 'html'):111: Notice: Undefined variable: ignore_authors