Burying the hatchet

"Ah, the famous Andy Buckley. Or perhaps infamous, no?". When a dapper French gent at a statistics conference addresses you this way, I guess it's normal to feel a bit perturbed, particularly when you've devoted a serious chunk of time in the last few years to publicly demonizing their work. Really, I suppose it's maybe a minor miracle that Rene Brun and I haven't crossed paths before now --- although I guess this is largely to do with me being keen to avoid a fight. Rene is, as particle physicists will know, the author of many infrastructural and statistical packages in high energy physics. In particular, he's head honcho of the ROOT system, a piece of software which I've long considered (not in isolation, I should add) to be fundamentally misconcieved in myriad ways. Despite being naturally non-confrontational, I managed once to become a sort of focus for community displeasure with ROOT, and hence a persona non grata among the ROOTisti.

Fortunately, Rene isn't here to argue. He smiles and suggests a coffee or lunch with his lieutenants later. To my great surprise, this actually happens: I had half assumed that he had just come to ogle the dissident weirdo. As a result of these lunchtime conversations, I've shifted my opinion on the ROOT guys slightly. Sure, I still think the system is wrong in many ways --- confused object ownership, piss-poor stats object design, too much of an emphasis on barely- designed quantity over honed quality, and a general kitchen-sink lack of focus --- but they're a technically competent bunch with the difficult job of responding to continual mad demands from experimental collaborations. Of course, I think that they should learn to say "no" a lot more often, and to pro-actively deprecate bad design ideas, but that's a difficult thing to do, especially when you have a lot of users. Sometimes I'm glad that Rivet isn't overwhelmed with users, as it makes it still possible to redesign until we really think the interface is right... which is not to say that more contributors wouldn't be nice!

On the whole, I'm glad to say that the development standards on ROOT have been tightened up over the last couple of years, and it's good to see a developing attitude of "let's use external packages, when they're available", even if that probably means "let's bundle external packages with our huge tarball". I would still dearly love to see CINT consigned to the dustbin of history (C++ as an interactive UI? What an, erm, great idea...), but at least there are plans to throw away the really crappy parsing and plug in something more robust. Even Rene admits that only "10% of the functions in 10% of the libraries" see regular use, although culling the code doesn't seem to have become goodthink in ROOT land just yet.

What is still needed, I think, is a move to treating physicists as contributors rather than users --- many are technically very good, many have complaints about how the system makes thing difficult, and ultimately the point of ROOT is to provide statistical data analysis infrastructure for (primarily) LHC physics: feedback matters. This was particularly highlighted for me by Rene's repeated enthusiasm for a 3D OpenGL-powered data tree viewer... such eye-candy is fun to implement, but requests for better histogramming or 1D histogramming through slices of ND space were clearly not cool enough to excite Rene's attention. Surely more accountability and user input in the design process is needed? But perhaps I'm just sore about enduring all the FUD on the "roottalk" mailing list when I was dragged into the ROOT Flame War of 2005. Notably, the abuse and FUD was (mainly) perpetrated by crazy disciples of the One True TPath, rather than the developers, but the overall attitude was "how dare you express dissent" --- a much more closed-minded attitude than I've ever encountered on an open source project.

Anyway, if nothing else, Erice was a good place to bury the hatchet with the ROOT guys. And maybe they won't mind the occasional complaining so much, now that they know who's behind it ;)


Comments powered by Disqus