My hellish journey with axiondb
Tuesday, December 30th, 2003I’ve been finding mckoi more and more frustrating to use in unit tests. It tends to get a bit upset if you try to recreate an in-memory database, and leaves itself in some indeterminate state that makes everyone sad and irritable.
So, I remembered a claim made by some of the Jakarta primitives fuckwits of how axiondb was made so much faster by it. I thought a good test would be to see how easily it’d be to switch from mckoi to axion, and hopefully pick up some performance and functionality on the way. After all, axion is designed to be unit-testing friendly.
You know, I really, really should have paid attention to all those alarm bells firing off. First, it’s a tigris project. Tigris projects are always astoundingly awkward and ugly. They make Jakarta look like a beautiful shiny house of intellectual advancement. The stench of the commons-primitives dependency alone should have been sufficient; someone that retarded is likely to be a repeat offender.
I wasn’t disappointed, needless to say. My quest to just get the fucking thing running was a dark dismal journey down a rabbithole. First, the current latest release ships with just the db jar file. My heart beat faster at the thought of a beautiful all-in-one jar file that can be used out of the box. What a fool. It turns out it requires most of Jakarta-commons. The wankers didn’t even bother use their own base64 encoders; instead you have to plop in commons-codecs.
Oh well, I thought to myself. I’ll just grab these zillion jars like I’m told, stuff them all in one dir and spend the rest of the day drowning my sorrows, in the vain hope of killing all braincells that witnessed this horror.
So so naive! Of course, like all projects that do not manage their own deps and use explicit versions, that attempt blew up horribly. The current latest milestone, it turns out, was compiled against some bizarre version of commons-collections, and a method signature had changed in the actual release they say they require.
I briefly considered building the damn thing from source. That in turn brought to light another idiocy. You need to explicitly download and plop in various commons-shite.jars, as well as create your own build.properties file (they do provide the oh-so-generous build.properties.sample though). So really, fuck that. In the end, all they accomplished with their bungling and user-unfriendliness is a lost potential user, and gained much bad karma.
Now, you might think this is no big deal. However, you can barely imagine my glee when a friend of mine recently regaled me with the story of an interview he conducted with a potential employee. Said potential employee was too enthusiastic about commons-primitives, and was so eager to use it, that it cost him the job. The emperor has no clothes, after all.
There are many morals to this story. First, do not brag of your Jakarta love. It’ll cost you your job, hopefully. The more important moral is though that the axiondb developers are a bunch of shit-eating twats who insist on abusing ant and shipping broken crap and expecting their users to bend over backwards just for the privilege of using their filthy useless little database. Assholes.