> E. Robert Tisdale writes:
> > I want to propose a standard for scalar, vector, matrix and tensor
> > arithmetic which programmers can use to write portable
> > applications. In particular, I want to propose a C++ binding which
> > most C++ programmers will find appealing.
>
> I don't think we need a "binding", but rather an "architecture". The
> word "binding" is like "API" in the sense that it indicates a
> proscriptive definition of classes or call signatures. This doesn't
> seem restrictive in a language like Fortran where you basically don't
> have much choice. But in languages which support user defined types,
> such as C++, it is just an unavoidable fact of life that people will
> have their own classes, but need to utilize services provided in third
> party libraries.
What I would propose is a two-layer approach. At the top layer is the
interface in a somewhat language-neutral fashion. Which may correspond to
the "architecture" you referred. This interface could be specified using,
for example, CORBA IDL (interface definition language). The second layer
would be specific language bindings. At least for object-oriented
languages, there could be bindings for C++, Java, Python etc. Currently,
there is a Numerical Python project which has it's own interfaces and I
feel it could develop some standard interface too.
The disadvantage of having bindings like this is a lack of flexibility but
if there is a basic set of interface one can always extend from that point
on. One advantage of language bindings is that code will be compatible at
the source code level. For example, MPI (message passing interface) has
bindings for Fortran, C and C++ which makes code portable among different
MPI vendors which, I feel, is very nice. On the other hand, CORBA's
language binding is such that source code is not compatible and is
sometimes a nuisance.
>
> Fundamentally I do not believe the solution lies in proscribing
> acceptable interfaces which application programmers must use. Rather
> I believe the best route lies in library vendors learning to write
> their services in an application friendly way. C++ can support
> numeric applications through generic interfaces just like it supports
> other more mundane CS-theoretic things in the standard library through
> the use of genericity.
I feel it would be nice to have both.
>
> I have recently articulated a sizeable fraction of my views on this
> matter in the article "Container-Free Numerical Algorithms in C++",
> published in the May/June '98 issue of Computers in Physics. I think
> it would be better for people to read that than for me to babble into
> this email channel. But perhaps this would be a good place for
> further discussion of the ideas presented there, plus alternative
> views that others may field.
I'll try to get hold of the article and hopefully my discussion is not too
off base here.
>
> --
> Geoffrey Furnish email: furnish@lanl.gov
> LANL XTM Radiation Transport/POOMA phone: 505-665-4529 fax: 505-665-5538
>
> "Software complexity is an artifact of implementation." -Dan Quinlan
>
Regards,
Jonah