A few weeks ago we had the long discussion about ROOT's page on Wikipedia. I'm pleased to note that the page is now more balanced than it was, and the discussion continues, so some progress on the initial topic was made. Good!
During that discussion, Rene Brun said that after the next ROOT release he would respond to the specific technical criticisms that came up in the discussion (http://root.cern.ch/root/roottalk/roottalk06/0823.html). Since the answer never came, this email is a reminder!
I'd like to see how the development team answers some of our points, hopefully without degenerating into another slanging match. To save trawling the previous thread for the topics, here are a selected few in fairly brief form (and _roughly_ in decreasing order of importance from my point of view):
####################
Interactive scripting interface
Memory management / object ownership
Global state
Instead of doing:
TTree *T = new TTree(...)
TFile *f = new TFile(...)
you should do:
TFile *f = new TFile(...)
TTree *T = new TTree(...)
So, in other words, the order of semantically unrelated statements can matter due to hidden state variables. What's the justification for such subtle and invisible dependence on the state? Doesn't this create pitfalls in development of user code?
Reinvention / compatibility
Class design
What's the justification for allowing the histogram classes (probably the most widely used classes in ROOT) to remain so poorly implemented? (There are, of course, other examples, but I know the histogramming fairly well)
Reflex, Mathcore/Mathmore and Minuit++
####################
That's it! Well, not quite: others on the Wikipedia talk page, in the previous mailing list discussion (and in real life HEP meetings, of course) have highlighted concerns about ROOT's persistency and other features. But to keep it reasonably short, I've just picked these few.
Thanks to the ROOT team for (hopefully) taking the time to address my concerns. I'd like to re-iterate that I have no reason for opposition to ROOT, no other wares to sell: I'm just enumerating the reasons why I stopped using ROOT. If these issues are addressed, then maybe I'll go back to using it :-)
I think a valid point in the previous discussion was that the dominant component of data analysis time is often the time spent getting the software in a usable state rather than the time spent number-crunching. So before the complaints flood into my email inbox, consider that this sort of "philosophising" *can* have a definite impact on the day-to-day work of data analysis --- just because you can currently persuade ROOT to do what you want doesn't mean that it can't be improved! But if you're not interested in this design discussion, sorry in advance if you have to delete a lot of email.
Best wishes,
Andy
-- Andy Buckley: CEDAR @ IPPP, Durham Work: www.cedar.ac.uk www.insectnation.orgReceived on Thu Aug 03 2006 - 17:08:53 MEST
This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:32:00 MET