ATLAS MLC (Multilanguage Committee) Recommendations


The MLC has reached a concensus on the following recommendations :

  1. 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.
  2. 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.
  3. 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.
  4. 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)