You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by Antoine Levy Lambert <an...@gmx.de> on 2010/02/07 03:44:17 UTC

[POLL] Rewriting Ant's self description

Hi,

The self description of Ant on the home page might not have changed 
since the first release in 2000.  I have just written a draft for a new 
version (see below).

Let me know what you think.

Antoine



What is Ant
----------

Ant is a Java library and command line tool. Ant's mission is to 
schedule processes described in build files as targets and extension 
points dependent upon each other. The main known usage of Ant is the 
build of java applications, for which Ant supplies a number of built-in 
tasks allowing to compile, assemble, test and run java applications. Ant 
can also be used effectively to build non java applications, for 
instance C or C++ applications. More generally, Ant can be used to 
schedule any type of process which can be described in terms of targets 
and tasks.

Ant is written in Java. Users of Ant can develop their own antlibs 
containing Ant tasks and types, and are offered a large  number of 
ready-made commercial or open source antlibs.

Ant is extremely flexible and does not impose coding conventions or 
directory layouts to the Java projects which adopt it as a build tool.

Software development projects looking for a solution combining build 
tool and dependency management can use Ant in combination with Ivy.


Alternatives to Ant
-------------------

When Ant was first released in July 2000, Ant compared itself to Make, 
the usual command line tool used to build software, probably still the 
most common solution to build C applications. Make is extensible too, 
but only by writing shell-scripts or executable programs that Make can 
execute. Makefiles are syntactically difficult to write and sensitive to 
invisible or little noticeable characters such as spaces ...

Currently, in the Java world, one of the most famous alternatives to Ant 
is Maven. Maven defines itself with a wider scope than Ant as a project 
management tool. Maven provides built-in build, packaging, testing and 
running capabilities, and tools to create a website and project metrics. 
Java projects adopting Maven as a project management tool are given some 
conventions to follow, particularly concerning the layout of source and 
test directories. These conventions can be overriden by configuration. 
Maven also integrates dependency management and the maven team maintains 
a public repository containing a large number of artifacts. Maven 
implements a predefined build cycle containing predefined phases and goals.

A recent, and worth mentioning alternative to Ant is Gradle, a new tool 
which allows to write build files in Groovy, which a lot of people feel 
is easier and more expressive than the traditional Ant XML. One nice 
thing for Ant is that Gradle is actually built on top of Ant and Ivy, so 
our tasks and types are used inside Gradle.




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Re: [POLL] Rewriting Ant's self description

Posted by Stefan Bodewig <bo...@apache.org>.
Thank you.

On 2010-02-08, Antoine Levy Lambert <an...@gmx.de> wrote:

> OK. The build tools in perspective should go to a separate web
> site. Maybe one day I will create a blog.

8-)

On the one hand you are bound to forget tools - I didn't see Apache
Buildr in your draft nor jam, gosling, scons, jmake ...

And then you must be careful to not misrepresent the philosophy of any
tool.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Re: [POLL] Rewriting Ant's self description

Posted by Antoine Levy Lambert <an...@gmx.de>.
Dominique Devienne wrote:
> On Mon, Feb 8, 2010 at 11:33 AM, Antoine Levy Lambert <an...@gmx.de> wrote:
>   
>> Stefan Bodewig wrote:
>>     
>>> I agree its time to move away from "make without make's wrinkles" and
>>> prefer a description that says what Ant is rather than what it is not.
>>> Your draft does so pretty well.
>>>       
>> Thanks
>>     
>
> +1 from me too, and your first draft is a good step forward.
>
>   
>>> Personally I don't see any reason to compare Ant with any other tool
>>> from the same domain at all, YMMV.
>>>       
>> I would like to put the most famous or significant tools in perspective, explaining how they differ in scope and in philosophy, rather than comparing them in the sense of saying which tool is better, which each user/project can decide for him/herself. Maybe this topic should go on its own separate page ?
>>     
>
> I also don't think we should not delve too much into explaining the
> other tools' differing philosophies. Adding a note that there exist
> many alternative tools that reuse the tasks/types, Ant's primary asset
> indeed, and mentioning those explicitly with hyper-linked names is
> fine and useful, but lets stay out of controversial debate about those
> tools vs Ant. --DD
>   
OK. The build tools in perspective should go to a separate web site. 
Maybe one day I will create a blog.

Regards,

Antoine
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> For additional commands, e-mail: dev-help@ant.apache.org
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Re: [POLL] Rewriting Ant's self description

Posted by Dominique Devienne <dd...@gmail.com>.
On Mon, Feb 8, 2010 at 11:33 AM, Antoine Levy Lambert <an...@gmx.de> wrote:
> Stefan Bodewig wrote:
>> I agree its time to move away from "make without make's wrinkles" and
>> prefer a description that says what Ant is rather than what it is not.
>> Your draft does so pretty well.
>
> Thanks

+1 from me too, and your first draft is a good step forward.

>> Personally I don't see any reason to compare Ant with any other tool
>> from the same domain at all, YMMV.
> I would like to put the most famous or significant tools in perspective, explaining how they differ in scope and in philosophy, rather than comparing them in the sense of saying which tool is better, which each user/project can decide for him/herself. Maybe this topic should go on its own separate page ?

I also don't think we should not delve too much into explaining the
other tools' differing philosophies. Adding a note that there exist
many alternative tools that reuse the tasks/types, Ant's primary asset
indeed, and mentioning those explicitly with hyper-linked names is
fine and useful, but lets stay out of controversial debate about those
tools vs Ant. --DD

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Re: [POLL] Rewriting Ant's self description

Posted by Antoine Levy Lambert <an...@gmx.de>.
Stefan Bodewig wrote:
>
> I agree its time to move away from "make without make's wrinkles" and
> prefer a description that says what Ant is rather than what it is not.
> Your draft does so pretty well.
>   
Thanks
> Personally I don't see any reason to compare Ant with any other tool
> from the same domain at all, YMMV.
>   
I would like to put the most famous or significant tools in perspective, 
explaining how they differ in scope and in philosophy, rather than 
comparing them in the sense of saying which tool is better, which each 
user/project can decide for him/herself. Maybe this topic should go on 
its own separate page ?

> Maybe we should first find out what we think Ant's strong points are so
> we know what to brag about^H^H^H^H^H^H^H^H^H^H focus on in our
> description.
>
> To me Ant's main strength is the tasks, followed by the tasks and the
> tasks.  Then comes extensibility, I guess.
>
>   
Both the tasks and the extensibility are the reasons for Ant's success. 
I am using ant in deployment scripts because I know that that way I can 
combine ssh and file manipulation tasks which work and have powerful 
functionality with in-house developed tasks which are outside the scope 
of Ant
>> Ant is a Java library and command line tool. Ant's mission is to
>> schedule processes described in build files as targets and extension
>> points dependent upon each other.
>>     
>
> "schedule" sounds wrong to me.  I immediately think of cron and not of a
> build tool here.
>   
schedule might not be the proper English word. I looked online for a 
translation of a French word "ordonnancement". In French 19th century 
factories, there was an Ordonnancement office whose job was to define in 
which order the different workshops within a factory should process 
materials.

> Stefan
>
>   
Regards,

Antoine

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Re: [POLL] Rewriting Ant's self description

Posted by Stefan Bodewig <bo...@apache.org>.
On 2010-02-07, Antoine Levy Lambert <an...@gmx.de> wrote:

> The self description of Ant on the home page might not have changed
> since the first release in 2000.  I have just written a draft for a
> new version (see below).

I agree its time to move away from "make without make's wrinkles" and
prefer a description that says what Ant is rather than what it is not.
Your draft does so pretty well.

Personally I don't see any reason to compare Ant with any other tool
from the same domain at all, YMMV.

Maybe we should first find out what we think Ant's strong points are so
we know what to brag about^H^H^H^H^H^H^H^H^H^H focus on in our
description.

To me Ant's main strength is the tasks, followed by the tasks and the
tasks.  Then comes extensibility, I guess.

> Ant is a Java library and command line tool. Ant's mission is to
> schedule processes described in build files as targets and extension
> points dependent upon each other.

"schedule" sounds wrong to me.  I immediately think of cron and not of a
build tool here.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Re: [POLL] Rewriting Ant's self description

Posted by Wascally Wabbit <wa...@earthling.net>.
Antoine Levy Lambert wrote:
> Hi,
> 
> The self description of Ant on the home page might not have changed 
> since the first release in 2000.  I have just written a draft for a new 
> version (see below).
> 
> Let me know what you think.
> 
> Antoine
> 
> 
> 
> What is Ant
> ----------
> 
> Ant is a Java library and command line tool. Ant's mission is to 
> schedule processes described in build files as targets and extension 
> points dependent upon each other. The main known usage of Ant is the 
> build of java applications, for which Ant supplies a number of built-in 
> tasks allowing to compile, assemble, test and run java applications. Ant 
> can also be used effectively to build non java applications, for 
> instance C or C++ applications. More generally, Ant can be used to 
> schedule any type of process which can be described in terms of targets 
> and tasks.
> 
> Ant is written in Java. Users of Ant can develop their own antlibs 
> containing Ant tasks and types, and are offered a large  number of 
> ready-made commercial or open source antlibs.
> 
> Ant is extremely flexible and does not impose coding conventions or 
> directory layouts to the Java projects which adopt it as a build tool.
> 
> Software development projects looking for a solution combining build 
> tool and dependency management can use Ant in combination with Ivy.
> 
> 
> Alternatives to Ant
> -------------------
> 
> When Ant was first released in July 2000, Ant compared itself to Make, 
> the usual command line tool used to build software, probably still the 
> most common solution to build C applications. Make is extensible too, 
> but only by writing shell-scripts or executable programs that Make can 
> execute. Makefiles are syntactically difficult to write and sensitive to 
> invisible or little noticeable characters such as spaces ...
> 
> Currently, in the Java world, one of the most famous alternatives to Ant 
> is Maven. Maven defines itself with a wider scope than Ant as a project 
> management tool. Maven provides built-in build, packaging, testing and 
> running capabilities, and tools to create a website and project metrics. 
> Java projects adopting Maven as a project management tool are given some 
> conventions to follow, particularly concerning the layout of source and 
> test directories. These conventions can be overriden by configuration. 
> Maven also integrates dependency management and the maven team maintains 
> a public repository containing a large number of artifacts. Maven 
> implements a predefined build cycle containing predefined phases and goals.
> 
> A recent, and worth mentioning alternative to Ant is Gradle, a new tool 
> which allows to write build files in Groovy, which a lot of people feel 
> is easier and more expressive than the traditional Ant XML. One nice 
> thing for Ant is that Gradle is actually built on top of Ant and Ivy, so 
> our tasks and types are used inside Gradle.
> 
> 
> 

Just a note...I also noticed recently that the Wikipedia entry on Ant
is pretty out-of-date too. Perhaps after the Ant developers have
approved a new description, some of it can be transplanted to update
that description as well...just a thought...

-The Wabbit

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Re: [POLL] Rewriting Ant's self description

Posted by Antoine Levy Lambert <an...@gmx.de>.
Jesse, thanks for your comments.

I will check-in changes to our index page this evening after doing the 
Ant 1.8.0 release. I will take into account both your comments and 
Stefan's comments.

Regards,

Antoine

Jesse Glick wrote:
> Antoine Levy Lambert wrote:
>> Ant is a Java library and command line tool.
>
> command-line tool
>        ^
>
>> build of java applications
>
> Java
> ^
>
>> tasks allowing to compile, assemble, test and run java applications.
>
> allowing users to ... Java
>          ^^^^^^       ^
>
>> non java applications
>
> non-Java
>    ^^
>
>> their own antlibs
>
> "antlibs"
> ^       ^
>
>> open source
>
> open-source
>     ^
>
>> impose coding conventions or directory layouts to the Java projects
>
> on the Java projects
> ^^
>
>> the usual command line tool
>
> command-line tool
>        ^
>
>> writing shell-scripts
>
> shell scripts
>      ^
>
>> or little noticeable characters
>
> unnoticeable
> ^^
>
>> one of the most famous alternatives
>
>  the most famous alternative
> ^                           ^
>
>> build, packaging, testing and running capabilities
>
> building, ...
>      ^^^
>
>> Java projects adopting Maven as a project management tool are given 
>> some conventions to follow
>
> Relevant to note that this permits IDEs to open and work with such 
> projects without being given any IDE-specific instructions, which to 
> my mind is one of the principal advantages of Maven over a freeform 
> build tool such as Ant.
>
>> overriden
>
> overridden
>        ^
>
>> the maven team
>
> Maven
> ^
>
>> A recent, and worth mentioning alternative to Ant is Gradle,
>
> A recent alternative to Ant worth mentioning is Gradle,
>         ^                  ^^^^^^^^^^^^^^^^^^
>
>> a new tool
>
> Redundant (just said "recent").
>
>> which allows to write
>
> allows users to write
>        ^^^^^^
>
>> which a lot of people feel
>
> many people
> ^^^^
>
>> is easier
>
> clearer
>
>> One nice thing for Ant is that Gradle
>
> Fortunately for Ant, Gradle
> ^^^^^^^^^^^        ^^
>
>> so our tasks and types are used inside Gradle
>
> ...and benefit from bug fixes and improvements in Ant and Ivy.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> For additional commands, e-mail: dev-help@ant.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Re: [POLL] Rewriting Ant's self description

Posted by Jesse Glick <je...@sun.com>.
Antoine Levy Lambert wrote:
> Ant is a Java library and command line tool.

command-line tool
        ^

> build of java applications

Java
^

> tasks allowing to compile, assemble, test and run java applications.

allowing users to ... Java
          ^^^^^^       ^

> non java applications

non-Java
    ^^

> their own antlibs

"antlibs"
^       ^

> open source

open-source
     ^

> impose coding conventions or directory layouts to the Java projects

on the Java projects
^^

> the usual command line tool

command-line tool
        ^

> writing shell-scripts

shell scripts
      ^

> or little noticeable characters

unnoticeable
^^

> one of the most famous alternatives

  the most famous alternative
^                           ^

> build, packaging, testing and running capabilities

building, ...
      ^^^

> Java projects adopting Maven as a project management tool are given some conventions to follow

Relevant to note that this permits IDEs to open and work with such projects without being given any IDE-specific instructions, which to my mind is one of the principal 
advantages of Maven over a freeform build tool such as Ant.

> overriden

overridden
        ^

> the maven team

Maven
^

> A recent, and worth mentioning alternative to Ant is Gradle,

A recent alternative to Ant worth mentioning is Gradle,
         ^                  ^^^^^^^^^^^^^^^^^^

> a new tool

Redundant (just said "recent").

> which allows to write

allows users to write
        ^^^^^^

> which a lot of people feel

many people
^^^^

> is easier

clearer

> One nice thing for Ant is that Gradle

Fortunately for Ant, Gradle
^^^^^^^^^^^        ^^

> so our tasks and types are used inside Gradle

...and benefit from bug fixes and improvements in Ant and Ivy.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org