It could have been designed much better. One fantastic example that irked me when I used it is its extensive use of global objects. It's been quite a while so I don't remember the exact details, but I recall trying to open a number of files and having that fail because the global file object wasn't properly changed. And note that this was from an example copied verbatim from the internet. I just did a quick look through my comp and I can't find the stuff I did then, but I really doubt it was something as simple as forgetting to close it or call its destructor.
Perhaps part of the issue is that I'm used to programming with normal C++, so _their_ C++ was hard to get used to. For example ROOT expects you to create objects on the heap--I recall ROOT failing when you tried to allocate objects on the stack. Part of it might just be that, I'm used to fantastic, easy to use and well thought out libs like the STL.
Yes, the API of ROOT really is terrible in many places. A gradual change is the only way to fix it however since any sharp break will only cause fragmentation.
There is a good case for delaying the release of the data to give the associated researchers a chance to write their papers, theses, etc. A lot of groundwork has to be laid to get one of these experiments constructed, and it wouldn't be right for the ones who did that work to be jumped by an outside group, who might then receive credit for a discovery. After some time though, the data definitely needs to be opened up. It belongs to everyone, and there is no good in keeping it behind a wall forever.
In the genomics world, data from large projects is released as soon as a distribution system can be built, and the distribution system is also needed internally for the consortium so this is usually a very early stage.
Non-consortium members who download data are asked to agree that they will not publish a paper on the data before the data producers have had a shot to find things. And if somebody were to go against this understanding, usually journal editors would wait to publish the paper until after the consortium publishes its paper.
However in The Cancer Genome Atlas, an even more open approach was taken; there's just an end date to the embargo on the data, and if data producers and researchers don't get their act together in time, the data is free for everyone to publish on.
I think this is great; the transition to open data in Big Science will be slow, but it's clearly the right thing to do.
That being said, the biggest short-term practical consequence of this will be a stream of disturbed pseudo-scientists "discovering" things in the data.
>That being said, the biggest short-term practical consequence of this will be a stream of disturbed pseudo-scientists "discovering" things in the data.
So? Those guys have been doing that for ages already. OTOH, don't be surprised if some actual discoveries/improvements happen now, given more open access to the data.
12 comments
[ 2.9 ms ] story [ 56.9 ms ] threadPerhaps part of the issue is that I'm used to programming with normal C++, so _their_ C++ was hard to get used to. For example ROOT expects you to create objects on the heap--I recall ROOT failing when you tried to allocate objects on the stack. Part of it might just be that, I'm used to fantastic, easy to use and well thought out libs like the STL.
Also PyROOT (http://root.cern.ch/drupal/content/pyroot) or the newer rootpy (http://www.rootpy.org/) really help.
Non-consortium members who download data are asked to agree that they will not publish a paper on the data before the data producers have had a shot to find things. And if somebody were to go against this understanding, usually journal editors would wait to publish the paper until after the consortium publishes its paper.
However in The Cancer Genome Atlas, an even more open approach was taken; there's just an end date to the embargo on the data, and if data producers and researchers don't get their act together in time, the data is free for everyone to publish on.
That being said, the biggest short-term practical consequence of this will be a stream of disturbed pseudo-scientists "discovering" things in the data.
So? Those guys have been doing that for ages already. OTOH, don't be surprised if some actual discoveries/improvements happen now, given more open access to the data.