ATLAS MLC (Multilanguage Committee) Recommendations
The MLC has reached a concensus on the following recommendations :
- The ATLAS experiment should unambiguously support a "restricted"
multi-language policy for its software. By that we mean that,
at the moment (see footnote a), we suggest three languages, i.e.
C++, Java and Fortran90/95, and only those three, to be officially
accepted as development languages inside well encapsulated modules.
For this to work, one will have to enforce a genuine modularity which
is in any case highly desirable.
- For the general framework (now in C++) that has the essential task of
defining the interfaces between modules (see footnote b), we
recommend a move to Java. We are aware of the very important
implications of this recommendation but see it as highly desirable
for the future. We recommend that work should begin as soon as
possible so as not to jeopardise this move.
- In view of the present situation, we recommend that this framework
support C++ interfaces on top of the Java ones. F90 modules (mainly
algorithmic ones) should also be supported but the framework itself
will not provide direct F90 interfaces. The responsibility for
providing adapters from the native framework Java (or C++) interfaces
to F90 should be on the F90 developers themselves. However, everything
should be done to keep these interfaces as simple as possible and to
avoid them to use too language dependent features. In particular, all
"public" objects, i.e. the objects being exchanged between modules,
should be uniquely identifiable using (as much as possible) language
independent identifiers.
- For the present modules in F77 or Age, we recommend them to be
progressively replaced by new modules in one of the three
above-mentioned languages or, at least, to be adapted to the F90
compilers.
We feel that these recommendations best match the strengths of the
languages, compatibility with the existing developments and the sociology
of the ATLAS experiment. They could also lead to offer the best
environment for integration with other tools (e.g. GRID, physics analysis
and visualization).
Footnotes:
a) As time pass, new languages will appear and some of them
may be accepted after proper evaluation.
b) The "clients" of these interfaces are, in our mind, Atlas
physicists or groups of physicists or whole labs that want
to contribute to the Atlas software by providing
algorithms for simulation or reconstruction or analysis
of data.
September 2001, MLC
(J.Hrivnac,
David Quarrie,
Marc Virchaux)