Something’s been bugging me lately. I’ve seen it said in otherwise intelligent blogs. I’ve seen it crop up more and more in resumes and job ads, to the point where it becomes something you have to say if you even want to be looked at, a piece of mindless dross taking up space on the paper or screen. I’ve seen it from managers who thought that it was an excuse to offer subaverage pay and conditions and demand unreasonable things from employees. I’ve seen it from people who should know better talking about how to educate and train engineers and programmers. I’ve been meaning to post about it for a while, but this post in It’s Common Sense, Stupid was the bit that finally got me to blog about it. It’s rather a dirty thing to say, in fact in some circles it could be positively career-damaging, but I don’t think much of those circles anyway and I think it needs saying, so here goes.
Programming is not all about passion.
Passion is the antithesis of good programming.
More on this after the break… Read more
So one of the things I was working on as part of DeviceAtlas (but which ultimately didn’t get used) was a cache-conscious hash table in Java. It’s not unique in design – in fact it comes right out of a research paper written for the SPIRE 2005 conference by Nikolas Askitis and Justin Zobel – but the implementation was interesting to me as I’d not done optimisation work in Java in a while, and some things had changed quite a bit since I last wrote Java code. And it was a bit of an ego boost that I got it to outperform java.util.HashMap:
SUN HashMap fill: 57797 us
SUN HashMap query: 165701 us, 0 errors
CCHashTable fill (fair): 23205 us
CCHashTable query (fair): 35513 us, 0 errors
CCHashTable fill: 41723 us
CCHashTable query: 43055 us, 0 errors
Of course, there are the minor criticisms that it’s nowhere near as general-purpose as the HashMap class and that HashMap is arguably exhibiting an intelligent design choice rather than cheating per se, but I like my ego so I’m going to ignore those arguments!