The moron brigade
It’s probably because I’m tired from writing computing lecture notes and example code ‘til late last night, but today just seems to have been chock full of people doing stupid things in my general direction. I can understand why Don Knuth disconnected himself from email in 1990 — the internet is just full of stupid people doing things badly.
So, today’s roll-call of dunces doing foolish things: HepMC and their units proposal, GESNSER (people who believe that it’s a good idea to link Fortran programs with C++ “so that the Makefiles don’t need to know what language you’re using”), Atlas’ build system, and Scientific Linux (actually, the madness of SL and good ol’ OS-homogeneous LCG is ongoing, but I finally sent Troy & co. an email about it today: while the people involved in SL are undoubtedly hard-working and lovely, surely it gets them down that they’re wasting their efforts on a second rate OS which is being outperformed a hundredfold by Ubuntu?)
I’ve almost spewed enough bile to calm down now, so I’ll just detail the HepMC thing a wee bit so any compsci-heads who read this can ensure that they never enter experimental particle physics, lest they should end up gouging their eyes out with a fork on day 3. HepMC is a little C++ library used in high energy physics to link together simulation programs (called MC generators) and experiment software, such as the code that simulates how particles interact with detector material, how the digitised signals appear at the other end, and then the stuff that tries to piece together how it all happened in the first place. In short, HepMC is the teeny, but crucial link between the theory and the experiment: kind of important, huh? Now, given that it’s so important, you might think that when it was designed they would have decided to specify what units the momenta, energies, positions and so-on of the particles described in the file are measured in. If you bought a cookbook and it told you to use “3 sugar”, “1 butter” and so-on, you’d be confused: 3 what of sugar? Grams? teaspoons? tablespoons? At this point you give up and order a pizza: without units, numerical values don’t mean diddly squat. HepMC is such a cookbook.
So a while ago, a bunch of us started pointing out these issues on HepMC’s bug tracker, and after some painful and pointless wrangling (again, fools) we got a proposal together for how to implement this unit thing with as little impact as possible while still being useful. For “still being useful”, I mean that there has to be some incentive for people to start using the units, and eventually it must be impossible to not have units. Today the proposal was watered down to the extent that using units will effectively be optional: this sounds okay, until you realise that this means you can never rely on the information being present. Given that situation, neither I, nor anyone else, will ever bother to use them: too much hassle. Genius. I’m now bored and pissed off with the whole experience, and would dearly love some sort of jurisdiction to fire or otherwise punish the sort of bikeshedding idiots who pollute the world with their idiocy. Argh.
Now, you might be thinking that the guy who made this decision is in a tough place, with opinionated, stubborn assholes like me on one side and apathetic, lazy experiment MC maintainers on the other. This is true (although I’d point out that I have an annoying habit of being right when it comes to software design because, much though I’d love not to, I care.) You might also think that by choosing a point in the middle, a clever bit of diplomatic compromise has been attained. And there you’d be wrong. Not all compromises are equal — in fact, some make no sense. By just picking an arbitrary selection of features from each party’s suggestions, you don’t usually reach a brilliant solution that everyone is happy with: you usually get a mess. This is such a situation: no brave diplomacy has taken place, just craven groping in the dark for something — anything, dammit — to end the back-and-forward argument. And while I have sympathy with that, it’s a terrible way to make software, especially something this important.
Incidentally, I notice that the problem people always seem to work at national labs, rather than universities. I don’t know why this is… is it something special about the sort of people who want to avoid teaching, or is it a consequence of national labs having to be super-careful about employment rights (hence no-one ever gets fired)? Gee, beats me, but if any Web-browsin’ government officials are looking for places to make HEP cost savings, I have a few suggestions…
Posted by Andy Buckley on Friday, May 02, 2008

