No disrespect stefano, but I have a much dumber way to frame this:

automake is just easer for C/C++ code than Ant
make is just faster for C/C++ code than Ant (not by much granted)
ant is just easier/faster/better for Java code than make/automake

Thus I propose the "third way":

1. Master ant build which kicks off Automake/make for C/C++ parts (optional to use of course)
2. Automake/make for C/C++
3. Ant stuff for Java stuff.

Of course, I have a do-ocratic bias for this. Let those who are writing it do what makes sense and if it is a pain to build, then something is wrong....but thats my bias.

-andy

Stefano Mazzocchi wrote:
Tim Ellison wrote:

[snip discussion on make vs ant]

I think the discussion is simply at what point the Ant script does a
platform-specific <exec>.  When using 'make' the script calls-out early
and uses make to manage the native code side dependencies; when using
'cpptask' the script calls-out later and uses Ant to manage the
dependencies.  We figured that 'make' was a more universal C build
system than cpptask.


Before this turns into a coloring my bikeshed argument, let me point out one thing: how the choice of tools impacts community dynamics.

One of the goals of any project that wants to be successful is to attract diversity in the community interested in it.

for "diversity" in apache we mean "from different affiliations, walks of life, technical backgrounds, interests, needs, etc..". We believe diversity in the social ecosystem plays a key role in both stability and adaptation of the software to environmental needs. This is really the 'secret sauce' of the ASF.

At the same time, our experience teaches that there are gaps that people are unlikely to bridge, unless helped. In short, sometimes those who are promoting diversity and are in need for help and for sharing development costs, have to wash the dishes first.

One argument that comes to mind to attract people is simplicity: of use, of installation, of configuration, of understanding, of modularization, of adapting it to ones needs, etc..

That is *not* the right way to spin it, because it wouldn't explain how stuff like the linux kernel can manage to attract so many people to work on it.

It's not the investment that needs to be reduced, but it's the "return" on that investment that needs to be increased. Really, how much the investment is practically meaningless: there *is* somebody out there willing to do pretty much anything (in terms of energy/time/programming) if he can do what he wants.

Now, for harmony what he wants is *crystal clear*: run java in a way that is not possible before. Faster on a Mac, shipped with Debian, workign on FreeBSD, working on their embedded device, avoid the "OMG, microsoft bought sun and killed java" syndrome, you name it.

Do you *seriously* think that such a person would be stopped by having to use make and ant?

In short, ask yourself: how likely is it to be able to attract the kind of people that could be interested in Harmony if I make this choice? ant vs. make, which one would be more palatable, attractive, maximize their ROI?

And then, yes, you have to wash the dishes for a while and drag somebody's feets because somebody in your team is unhappy about the choice. Such is life: the day the unhappy guy in the team sees a patch coming out of nowhere for a problem he was not able to identify, he'll understand why he had to wash dishes for a while. ;-)


Reply via email to