IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Ant or gnumake?
We currently are using gnumake for builds. We are using it to compile Java code, create Javadocs, and create PDF's using Framemaker. The makefiles are a huge mess. I would rather use Ant for the whole thing and ditch make, I think it will be a lot simpler to understand. I am coming as a long time Java programmer (since 1997) and before that Smalltalk so I never was big into make. The other people in the project are long time UNIX guys who are big into make. Of course they don't want to switch. I am going to be the one responsible for the build so I would rather have it in a format that is easier for me.

After all that, anyone have any arguments pro/anti make and/or ant?
New Interesting comments by the creator of Ant
[link|http://x180.net/Journal/2004/03/31.html|Ant and XML]

...In retrospect, and many years later, XML probably wasn't as good a choice as it seemed at the time. I have now seen build files that are hundreds, and even thousands, of lines long and, at those sizes, it turns out that XML isn't quite as friendly a format to edit as I had hoped for. As well, when you mix XML and the interesting reflection based internals of Ant that provide easy extensibility with your own tasks, you end up with an environment which gives you quite a bit of power and flexibility of a scripting language\ufffdbut with a whole lot of headache in trying to express that flexibility with angle brackets.
...
f I knew then what I knew now, I would have tried using a real scripting language, such as JavaScript via the Rhino component or Python via JPython, with bindings to Java objects which implemented the functionality expressed in todays tasks. Then, there would be a first class way to express logic and we wouldn't be stuck with XML as a format that is too bulky for the way that people really want to use the tool.

Or maybe I should have just written a simple tree based text format that captured just what was needed to express a project and no more and which would avoid the temptation for people to want to build a Turing complete scripting environment out of Ant build files.

Both of these approaches would have meant more work for me at the time, but the result might have been better for the tens of thousands of people who use and edit Ant build files every day.
New What about jam?


Peter
[link|http://www.ubuntulinux.org|Ubuntu Linux]
[link|http://www.kuro5hin.org|There is no K5 Cabal]
[link|http://guildenstern.dyndns.org|Home]
Use P2P for legitimate purposes!
New Cherry, please. On toast and cheddar cheese. Yum!
New It's not just me, then.
I'm also partial to cheese on toast with Wilkinson's Seville Orange Marmalade.


Peter
[link|http://www.ubuntulinux.org|Ubuntu Linux]
[link|http://www.kuro5hin.org|There is no K5 Cabal]
[link|http://guildenstern.dyndns.org|Home]
Use P2P for legitimate purposes!
New Few things are better than toasted fresh bread with butter.
As to what's a better build tool, I don't know. I would be very careful about switching away from what the developers know, though. How is switching going to make the team more efficient? Is the benefit going to be worth the disruption?

Re: Ant and XML. I've never quite understood all the hype about XML for applications like this either. It seems to me that having the editor do syntax highlighting of keywords, etc., takes care of the readability that XML provides without all of the extra baggage.

Luck!

Cheers,
Scott.
New s/provides/prevents



"Whenever you find you are on the side of the majority, it is time to pause and reflect"   --Mark Twain

"The significant problems we face cannot be solved at the same level of thinking we were at when we created them."   --Albert Einstein

"This is still a dangerous world. It's a world of madmen and uncertainty and potential mental losses."   --George W. Bush
Expand Edited by tuberculosis Aug. 21, 2007, 06:25:47 AM EDT
New Actually, I prefer orange on cheese, too.
I only said "cherry"(*) because I knew what they make out of oranges is called "marmalade", not "jam". (Not that I'm sure about the appropriate terminology for cherry preserves either... :-)

Plum confiture, believe it or not, is also very very good in that combo.




(*): Never actually tried that with cheese, AFAICR. Hmm...


   [link|mailto:MyUserId@MyISP.CountryCode|Christian R. Conrad]
(I live in Finland, and my e-mail in-box is at the Saunalahti company.)
Your lies are of Microsoftian Scale and boring to boot. Your 'depression' may be the closest you ever come to recognizing truth: you have no 'inferiority complex', you are inferior - and something inside you recognizes this. - [link|http://z.iwethey.org/forums/render/content/show?contentid=71575|Ashton Brown]
New jam/conserve/preserve/confiture etc
All equivalent, afaik.


Peter
[link|http://www.ubuntulinux.org|Ubuntu Linux]
[link|http://www.kuro5hin.org|There is no K5 Cabal]
[link|http://guildenstern.dyndns.org|Home]
Use P2P for legitimate purposes!
New Food YES, build tool NO
I've spent a couple afternoons trying to penetrate the docs on jam because its what XCode uses under the hood. I ultimately concluded that either Apple is using it very stupidly (always more than likely) or it failed the "easy to understand while staying flexible" test.

Do you really want to rewrite a build system that works now? Personally I'd rather have a root canal.

Ant is OK in the java world although it does no dependency checking on its own. This is left up to the task writer. Consequently deeply dependent builds can be kind of slow because each task will get a chance to look and see if it wants to do anything. So above a certain size of project it becomes ponderous to make a small change. Make is better at pruning this way I think and I don't find it hard to use at all.

OTOH, java confounds make because make figures out its dependencies at the beginning, then sets out to build stuff, but javac does its own dependency checking and you end up with double compiles using make. Harmless but slower.

Tough call - but I'm fairly sure you'll be miserable whichever way you go.



"Whenever you find you are on the side of the majority, it is time to pause and reflect"   --Mark Twain

"The significant problems we face cannot be solved at the same level of thinking we were at when we created them."   --Albert Einstein

"This is still a dangerous world. It's a world of madmen and uncertainty and potential mental losses."   --George W. Bush
Expand Edited by tuberculosis Aug. 21, 2007, 06:25:49 AM EDT
New ICLRPD (new thread)
Created as new thread #210637 titled [link|/forums/render/content/show?contentid=210637|ICLRPD]
--
Steve
New ICLRPD (new thread)
Created as new thread #210639 titled [link|/forums/render/content/show?contentid=210639|ICLRPD]
All tribal myths are true, for a given value of "true" Terry Pratchett
[link|http://boxleys.blogspot.com/|http://boxleys.blogspot.com/]

Any opinions expressed by me are mine alone, posted from my home computer, on my own time as a free american and do not reflect the opinions of any person or company that I have had professional relations with in the past 49 years. meep
questions, help? [link|mailto:pappas@catholic.org|email pappas at catholic.org]
New If it's all Java, use Ant
There's nothing better for Java, in my opinion. Even with the XML, your build files will be smaller and easier to understand and maintain. Ant was created for the express purpose of compiling Java projects, and it makes a lot of things very easy.

Put together a sample to show them. Doing so should only take an hour or two.

If you're doing C/C++ programming as well, investigate SCons. It's python, and the build files are Python scripts. The Java support isn't the greatest, however, so I'd still use Ant for that.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Agreed
The variety of supported tasks is nothing short of amazing, especially when you leave the "core" tasks.

There are tasks to do just about everything you would want. Check stuff out of CVS (or just about any other source control system with the non-core tasks)? Yep. Tag the build? Yep. Create automated Javadocs? Yep. Run JUnit? Yep.

Additionally, if you want to get into things like automating your builds, you can use other projects such as [link|http://cruisecontrol.sf.net|Cruise Control], which have a similar XML-type syntax, and auto-recognize ant scripts.
-YendorMike

"They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
- Benjamin Franklin, 1759 Historical Review of Pennsylvania
New Re: If it's all Java, use Ant
I'll second that, with reservations. I've used Ant on a mid-sized project that had simple requirements (build the WAR file, run the tests, product the JavaDoc, etc.) and Ant was just fine once we got it set up with the Tomcat extensions. I'd use it again in similar circumstances.
New Re: Ant or gnumake?
After all that, anyone have any arguments pro/anti make and/or ant?

Ant is fine for java-centric stuff... but is pretty weak for non-java tasks. I used to use make for my builds, but have now pretty well switched to rake ([link|http://rake.rubyforge.org/|http://rake.rubyforge.org/]) for everything.
--
-- Jim Weirich jim@weirichhouse.org [link|http://onestepback.org|http://onestepback.org]
---------------------------------------------------------------------
"Beware of bugs in the above code; I have only proved it correct,
not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)
New Gee, why is THAT not a surprise...
It is not like you know the author of the project or anything. ;-)

Could you give a comparison to [link|http://www.scons.org/|http://www.scons.org/]?

Thanks,
Ben
I have come to believe that idealism without discipline is a quick road to disaster, while discipline without idealism is pointless. -- Aaron Ward (my brother)
New Re: Gee, why is THAT not a surprise...
It is not like you know the author of the project or anything. ;-)

Well, I couldn't let the topic pass without some comment :)

Could you give a comparison to [link|http://www.scons.org/|http://www.scons.org/]?

Sure, just keep in mind that I am not a regular scons user and am only going by what I read on their site.

In some ways rake and scons are similar in that they are both built on top of a full power scripting language. If you have some complex need in your build system, you don't have to drop out of the build language to access it. Scons is built on Python, rake is built on Ruby.

Where they differ is in their area of emphasis. Scons provides lots of pre-defined builders for constructing programs of various shapes and sizes (C, C++, Java, etc). Making an scons build script is a matter of specifying some predefined targets and letting scons take care of the details. You can define your own builders in scons, but they don't even cover that until the last quarter of the manual.

Rake is less ambitious. It makes defining dependencies and actions very simple and straightforward. Rakefile tend to be more ad hoc (than what I am guessing a typical scons script would be).

Perhaps this is a fair statment: Rake is like make without the funky tab syntax. Scons is like a non-Java-centric ant without the funky XML.
--
-- Jim Weirich jim@weirichhouse.org [link|http://onestepback.org|http://onestepback.org]
---------------------------------------------------------------------
"Beware of bugs in the above code; I have only proved it correct,
not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)
New OT - izzat a Breedlove you're hiding behind?
Assuming, of course, that's you.
--
Steve
New Re: OT - izzat a Breedlove you're hiding behind?
Yep, Breedlove Deshutes! That cutaway is pretty distinctive.
--
-- Jim Weirich jim@weirichhouse.org [link|http://onestepback.org|http://onestepback.org]
---------------------------------------------------------------------
"Beware of bugs in the above code; I have only proved it correct,
not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)
New Re: OT - izzat a Breedlove you're hiding behind?
Very nice. Almost bought Breedlove a few years ago, have always liked them. I ended up with a Larrivee instead, it just fit my hands better.
--
Steve
     Ant or gnumake? - (bluke) - (20)
         Interesting comments by the creator of Ant - (bluke)
         What about jam? -NT - (pwhysall) - (9)
             Cherry, please. On toast and cheddar cheese. Yum! -NT - (CRConrad) - (5)
                 It's not just me, then. - (pwhysall) - (4)
                     Few things are better than toasted fresh bread with butter. - (Another Scott) - (1)
                         s/provides/prevents -NT - (tuberculosis)
                     Actually, I prefer orange on cheese, too. - (CRConrad) - (1)
                         jam/conserve/preserve/confiture etc - (pwhysall)
             Food YES, build tool NO - (tuberculosis) - (2)
                 ICLRPD (new thread) - (Steve Lowe)
                 ICLRPD (new thread) - (boxley)
         If it's all Java, use Ant - (admin) - (2)
             Agreed - (Yendor)
             Re: If it's all Java, use Ant - (dws)
         Re: Ant or gnumake? - (JimWeirich) - (5)
             Gee, why is THAT not a surprise... - (ben_tilly) - (1)
                 Re: Gee, why is THAT not a surprise... - (JimWeirich)
             OT - izzat a Breedlove you're hiding behind? - (Steve Lowe) - (2)
                 Re: OT - izzat a Breedlove you're hiding behind? - (JimWeirich) - (1)
                     Re: OT - izzat a Breedlove you're hiding behind? - (Steve Lowe)

Stop obsessing about collecting All Kinds of Stupid Crap.
171 ms