[SciPy-user] python (against java) advocacy for scientific projects

Sebastien Binet hep.sebastien.binet@gmail....
Wed Jan 21 06:54:50 CST 2009


On Tuesday 20 January 2009 23:58:23 Daniele Nicolodi wrote:
> Sturla Molden wrote:
> > CERN ROOT is interesting though. It has a Python front end, and is LGPL
> > licensed. For those who don't know, ROOT is a data analysis framework
> > written for LHC (the new Doomsday machine), do deal with the enormous
> > data sets it generates (I've heard it is about ~10 terabytes per run).
> > But ROOT can be of general interest to scientists outside CERN as well.
> > http://root.cern.ch/
>
> I had a short exposition to ROOT codebase some years ago. While I
> recognise that the project reached probably its goals, despite those
> were is quite ambitious, the quality of the API and of the code is far
> from being perfect.

being a user of ROOT as a core sw developer of one of the LHC experiment, I 
can't agree more.
the ROOT team had great ideas, eg: generating and using reflection 
informations to "automatically" persistify C++ objects.

The main problem is that ROOT development started in early 90's when C++ was 
still young, so there is a lot of cruft and esoteric (by today's C++ 
standards) code out there.

Further more, CINT (the C/C++ interpreter) doesn't encourage good C++ writing 
so you end up with crappy code written by hurried physicists, sometimes even 
in production. Many physicists learned C++ with CINT as it is so easy (no 
compilation needed)... and they caught really REALLY bad habits.
Not to mention all the corner cases, death traps and other surprises you can 
run into when using C++ or at the other end of spectrum, when people get 
carried away and try to use complicated idioms which (even when/if used right) 
will backfire b/c the new guy who has the pleasure to maintain that voodoo 
code will just make a total mess.

Thanks to some "crazy" people ;) , we do have python bindings to ROOT so it 
eases the pain, but still: IMHO C++ is a bad choice and really hurts LHC 
software.
No wonder why the next big accelerator (ILC) mostly dropped C++ and went for 
Fortran (MonteCarlo code,...) +java (control framework).

cheers,
sebastien.
-- 
#########################################
# Dr. Sebastien Binet
# Laboratoire de l'Accelerateur Lineaire
# Universite Paris-Sud XI
# Batiment 200
# 91898 Orsay
#########################################



More information about the SciPy-user mailing list