Subject: Re: CCL:Object-oriented means for computational chemist

From: Konrad Hinsen <[email-masked]>
Date: Fri, 8 Aug 1997 15:41:59 +0200

> The issue I was trying to raise is that regardless of whether one
> wants to write the front end in C, C++ or Fortran, or anything else,
> the language definition of C++ *precludes* writing a linkable code 
> libraries in C++ if one ever wants to access the library routines 
> from another language.  This is really too bad, because, whether 

It is not true that the language definition precludes such a
mixed-language use; in fact, it doesn't say a single word about it.
Which means that providing or not providing such a possibility is left
to individual implementations.

Basically the problem is that conventional linker technology is
insufficient for OO languages. C++ compilers have to use tricks like
name-mangling to make it work. But single-executable executables
containing libraries etc. are a bit outdated anyway; everyone is
moving towards dynamic libraries etc. And OO interfaces between
individually compiled code pieces ("components") do exist, e.g. in the
form of CORBA, and with restrictions Microsoft's COM. This approach
even has the added advantage of guaranteed inter-language
compatibility, and even compatibility across operating systems.
Plus of course distributed computing over networks.

Those who want to see mixed-language OO systems at work, right now and
for free, should have a look at the ILU package developed at PARC:
     ftp://ftp.parc.xerox.com/pub/ilu/ilu.html
Also note that ILU supports a non-OO language (C) as well as several
OO languages. The two worlds are not incompatible.
-- 
-------------------------------------------------------------------------------
Konrad Hinsen                          | E-Mail: [email-masked]
Laboratoire de Dynamique Moleculaire   | Tel.: +33-4.76.88.99.28
Institut de Biologie Structurale       | Fax:  +33-4.76.88.54.94
41, av. des Martyrs                    | Deutsch/Esperanto/English/
38027 Grenoble Cedex 1, France         | Nederlands/Francais
-------------------------------------------------------------------------------