Subject: RE: Object-oriented means for computational chemist

From: "Smith JA (Jack)" <[email-masked]>
Date: Thu, 24 Jul 1997 16:52:25 -0500

>> >On the other hand, using C++, it's not possible to write a
	>> >general-purpose library callable from other languages...
	>> >Or so I'm told by those more conversant in C++ than I.
	>
	>> I find little problem with
	>> maintaining the overall system architecture and handling the
user
	>> interface with a good application C++ class library, writing
reusable
	>> non-computational 'modules' in plain C, and making use of
(and even
	>> extending) existing FORTRAN libraries and program segments
for the bulk
	>> of the computational work.
	>
	>Your point is well taken, and I don't disagree.  On the other
hand,
	>that's not quite the issue I was trying to raise.
	>
	>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's optimal right now or not, OO techniques, including
inheritance, 
	>are not inherently ill-suited for efficient computational
methods and
	>even offer some advantages.  I'd love to be able to write some
of these
	>underlying libraries in C++, but right now I cannot, because I
	>don't feel that I can tie the *users* of the libraries -- who
may
	>not be limited to me -- to C++ exclusively.

	I guess the issue comes down to 'reusable'.  Traditional
subroutine libraries are quite reusable in almost any programming
paradigm, while C++ (or other OO language) objects are 'reusable'
primarily through inheritance, which requires an appropriate OO
environment (and which unfortunately may be OO language dependent).  I
suppose this is a good argument for using an OO development environment
even if you don't intend to fully exploit it. What we need is the
ability to mix OO languages/classes like we can non-OO languages.  I
predict that that day will come relatively soon.  There was a time when
mixing Object Pascal and MPW C++ within the MacApp framework was
workable on the Mac.  Perhaps now its time for Object FORTRAN! ;-)

	I'd suggest that OO development environments and class
libraries/frameworks are today what linkage editors and object libraries
were in the late 60's and early 70's (for those who remember the simple
"compile, load & go" days where the only thing you 'inherited' was
someone's job control cards and a place in line at the keypuch or the
card reader).

	I wish the OO paradigm was more mature when X came into vogue.
The choice of going with an X toolkit (and a starter set of widgets) or
using just the intrinsic library was an analogous issue.  I went the
library route and later regretted it.

	- Jack

	(This is my last public post on this issue - I promise!)