My knowledge of Ant is decent but not great (yet). I just discovered
that there is an import tag, which should help me a lot in
modularizing my ant build scripts. Ant was definitely not usable or modular enough in version 1.5.
Bruce Eckel thinks that Ant is a total mess, and we shouldn't be scripting in XML, and build scripts should be generated anyway. He's got a point. But maybe he hasn't used the import statement yet. His approach is a little different from Maven,
but Maven is more of an extension on top of Ant, rather than a replacement.
I'm java-blocked though. Every time I sit down to code, I'm overwhelmed by all the competing but similar APIs out there. My friend Dan sent me a link to
xpetstore the reimlementation of the petstore application using all open-source Java tools (as opposed to the sun version, which uses different APIs). Argh. This divergence makes me sad. But if I was going to do anything in Java, I think I'd start with this application.
Java 1.4 really sucks. Java never had multiple inheritance, but there are situations where it sure would come in handy! But because of that, we have all these complicated pre processors for Java. It's an incomplete language. Here is an interesting hack - aspect oriented programming - it addresses a bunch of shortcomings in the Java language which have been addressed in JDK 1.5 (as well as QT for C++).
Which reminds me - for those of you interested in Java, JDK 1.5, Sun's latest java offering is really quite brilliant - it's such a pity that they didn't have these features in the compiler years ago.
When it gets out of beta, Java will have meta-data, generic types (like c++ templates), variable arguments, enums, autoboxing and unboxing between between primitive (int) and object-oriented (Integer) types. It's really impressive. What a shame JDK 1.5 didn't come out ages ago - now we have all this horrible old Java code. eeeeewwwww.....
I get so overwhelmed at all the different directions I can go as I contemplate building a new system in Java. Basically, you gotta start off modifying an existing *system* - the tricky part is getting the components installed, once you have that, you customize it. I've spent a lot of time wrangling with Eclipse, but relatively little work done (although for XML/Relax-NG development it is really the cats pajamas).
Sometimes I think why do I want to reuse any messy JDK 1.4 code? So much of it was written to get around the stupid limitations of the language. If I can choose a new language to learn, why not use a prettier more elegant language. One that supports metadata and multiple inheritance right from the start. C++ is a hack on top of C, and QT is a hack on top of C++.
Thinking more about
nessus suggestion that I just scrap Java and go for Python is an OO scripting language which is supposed to replace Perl. A lot of old die hards have to die first before that will happen, but Python has a lot of promise. So I started researching, looking for a good back-end framework for developing web applications in Python, because that's really the thing I would be otherwise doing in Java. I still need to make sure the components I need are there. So, which one to use? There's Zope, a very impressive web development/content management framework, with built-in storageability of XML, Objects, and Relational links. If I start using that, I would really like to work with someone else on it so I can ask questions and discuss it. Anyone else into Zope?
Another approach is Roadkill,
a way to embed Python inside web pages. Might be simpler - I might use that first since I'm learning the language. But for some reason I'm drawn to Zope. I need to read up on it more first...
It's even possible to write custom build tasks in Python instead of Java. And apparently it's quite easy to call
Java and C++ methods from Python - it seems to be the "grand controller" of scripting languages.
I'm already using Jedit which has a built-in jython interpreter, so I don't stick with my favorite editor. I guess I am ready to go.