Site menu:

Categories

Tags

Site search

 

December 2005
M T W T F S S
« Nov   Jan »
 1234
567891011
12131415161718
19202122232425
262728293031  

Archives

Links:

I hate ant

After fighting ant relentlessly for several days, I can say that it’s been some time since I’ve been quite so narked off by one piece of software.

What is it about Java developers? They take existing programs with known problems (make and leading tabs in this case), and come up with something “better” using XML. Only it’s not.

It’s amazingly inflexible (some neat features I’ll admit, but still inflexible). Oh, but you have “plug-ins” - like the “svnant” one which didn’t have merge support (until a colleague added it) and even then misses half of the subversion features (like access to the “log” command, or supplying a file with the commit messages, or using urls on propget/set,…). In shell it’s a piece of cake to do this, I understand that on windows getting the revision number of a file is difficult, but hey, I really don’t care about windows. That’s why unix is far better environment.

You have to quote so many things inside strings (”<", ">“, “&” being just three using < etc etc which is vile). Then you find that your script won’t run anyway due to some dumbass trying to quote all the arguments you pass through to exec. They appear to be under the impression that this will make them work on windows. Well it won’t - windows is braindead with arguments (they are the responsibility of the program, not the shell) - trust me, I’ve experienced and researched this before. However they piss about with the arguments on unix too - prefixing backslashes, quotes and god knows what else with backslashes. The end result being that I can’t get a single backslash (zero, two or four, but not one), I can’t get most scripts to work because it stops the quotes from working properly (it seems to be under the impression that it can just prefix a few
characters by backslash and that’ll fix everything. But it’s _so_ broken. My sed scripts by default are being run as seperate commands (because the semi-colons instead of being in the sed script now appear outside it).

In short, it took me about 2 hours to think about this stuff and code it, about 8 hours to restructure it so that ant would build it in a fashion somewhat close to what I want, and about another 8 hours to fart-arse around with quoting so that my 30second sed/awk program will be executed in a fashion that works! Normally I’ve had to resort to rewriting in a different language in order to drop my dependence on a) backslashes and b) parenthesis. How bloody pathetic. After the joys of using Ruby this has got to be a new low in helping a programmer code efficiently.

The code is so god-awful to read as a result of this messing around (and the fact that you can only set a property once, so WTF am I supposed to do for a variable then?) that I’m almost certain to rewrite this in Ruby so that it can be maintained and improved in future.

Grrrrr…

Write a comment