2003 in review

Quick reference of things I can remember from this year, categorised as Stuff (good), Fluff (hype), and Duff (just plain bad).


Ruby – Make programming fun again
AOP – Big, and getting bigger
SEDA – A sensible architecture for scalable systems


Groovy – Does the world need another scripting language for the Java platform?


Maven. The java virus.
The reflection-based visitor pattern. Are you joking?
Testing multithreaded code. Since when does ‘deterministic’ mean ‘runs fast’?

Maven is not Ant’s successor

I’ve seen a few Maven articles and posts that say things along the lines of ‘What’s missing from Ant is all the project management facilities that Maven gives you.’


Project management capabilities are not ‘missing’ from Ant, any more than advanced avionics features are ‘missing’ from JUnit.

Ant is a build tool. That’s what it was designed to do, and that’s what it does.

I’m still not sure what Maven is. It seems to try to do too much of everything, and not enough of anything. It seems to be a good fit for open source projects where your deliverable is a single library jar, but causes immediate pain when your project needs require you to stray from its predefined notion of how to to structure a project. That, and it’s incessant downloading of unstable ‘SNAPSHOT’ jars of every open source project known to man are what have made me a defiant maven-sceptic.