Re: [Fwd: Re: Wikipedia criticism about root]

From: cstrato <>
Date: Fri, 30 Jun 2006 20:45:24 +0200

Hi Andy

Sorrowly, you still do not understand my point regarding CINT :-(

So let me explain:
When I realized in 1999 that S-Plus, a commercial implementation of the interpreted S language (and now R, the open source version) was not able to deal with large datasets (which today are even larger) I decided to try to write my own program to analyse these data, and was surfing the net for many weeks to see which language and/or framework I could use for my purposes. I realized that all interpreted languages (Perl, Python, R) will be too slow, and I was interested in Java due to the inherent problems of C++, which I knew since I used it privatley since 1992. However, Java at that time had serious problems and was not able to handle this amount of data, either.
Finally, I found ROOT and was glad to see that it was open source, and it fitted my purposes perfectly.

Maybe, there is another mistake on your side: ROOT is NOT a program, it is a framework which people can use to write small applications to do one single task perfectly, or to write complex and stable gui applications, as I do. You can also use it to write your own libraries, which contain simple and easy to use commands, which other people could call from CINT with only minimal knowledge of C++, as I do.
You could even write libraries/programs which use the ROOT libraries and an unlimited number of your prefered libraries, too. So you are not forced to use ROOT for everything! However, personally I prefer to need to learn only one framwork and not multiple frameworks, for this reason I am glad that ROOT has its own GUI classes, and I need not have to learn e.g. the QT classes.

To get to the point: I am writing my program and libraries in C++ using the ROOT classes, and I want to have a simple and fast prototyping  system to test my C++ code, and this is CINT/ACLIC!!! So you see, I cannot use Python or some other "better" language for prototyping, since I am writing C++ code!!! (There is no python2cpp and f2c creates as ugly C code as it can be!)

Furthermore, I am writing my libraries in a way that people need only to write a few lines of simple C++ code to execute complex tasks, which can be easily run from within CINT, so people do not even need to know how to compile this code or which header files they need to add! Lastly, since I hate the command line, I wrap everything in a gui application, so that the users do not even need to learn these simple C++ commands. So, it is up to you, the programmer, to write your code in a way that other users can use CINT efficiently!

Finally, a few words on the choice for me (and maybe the ROOT developers, too?) to use C++. When ROOT started in 1995, C++ was the only choice: Fortran was more or less dead and Java was not ready for any professional use.
Although I hate C (C use should be extremely discouraged), C and its object-oriented siblings C++ and Obj-C are the only languages for serious use even today!!
Can you imagine how programs such as Photoshop, Quark XPress, MS Office, ORACLE, SAS, etc, all written in C++ (or C), would work if they were written in Java? It would be a desaster!

I am working in bioinformatics, and there most of the open source tools are written in C and/or Perl. But most bioinformatics startup companies are writing their (very expensive) programs in Java in order to make easy money. Most of these programs have serious problems, only the few programs written in C++ are stable and able to handle the increasing amount of data! (This is also the reason that most bioinformatics companies disappeared after few years.)

So this is my personal non-HEP view of using CINT/ROOT, and I do not think that you will be able to suggest a better alternative for my purposes.

One last point: If I remember correctly, in one of the early manuals in 1997(?) Rene mentioned that he wants to develop a system which is still available in the next 20 years so that people can still analyse their data.


P.S.: Like you, I do not know what ROOT stands for, so let me suggest: "Rene´s Object Oriented Trees", because these trees are another ingenous concept (together with the operating system independent TFiles)

Andy Buckley wrote:
> Bertrand Bellenot wrote:

>> Interesting to see that some people have quite some time to go into this
>> kind of endless discussion.

> I don't. Consider it an act of charity.
>> I spent quite a few years fighting to justify software implementation
>> choices with people who don't know the difference between Visual Basic
>> and C++, and I'm quite disappointed to see this kind of sterile polemic
>> here :-(

> I really don't care which language ROOT is written in: the only point
> along those lines that I've made is that C++ is not a natural or simple
> candidate for an interactive user interface. And I certainly know the
> difference between C++ and Python: one was designed for rapid, clean,
> interactive use and the other one wasn't :-)
> So sorry, which bit of what I said was the "sterile polemic"?
> Andy
Received on Fri Jun 30 2006 - 20:45:45 MEST

This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:31:59 MET