Subject: Re: CCL & OOP

From: <[email-masked]>
Date: Mon, 14 Jul 1997 12:23:07 -0500

Lestaw K. Bieniasz <[email-masked]> said:
> If [future applications are strongly connected to the concept
> of world-wide network of scientific programs]             
>  and if we want our programs to be still useful 
> after five years, we should start to select the proper language now.
> As far as I know, the only language available at present, that 
> responds to the challenges created by these future needs is JAVA.

  I don't think Java is as useful for scientific programming as C++.
One of the advantages to Fortran over C is the speed of array
computations and built-in support for complex numbers.  By using
classes and templates, C++ has been catching up on Fortran.  I've seen
array computation benchmarks which even put one C++ compiler faster
than the equivalent Fortran code.

  C++ manages to do this because it supports static/compile-time
language constructs that Java doesn't have (templates).  That's
because one of Java's designs was to be simple -- so simple that you
can't even do operator overloading.
  Let a, b and c be arrays, or complex numbers (or arrays of complex
numbers).  In C++ you can say: "c=a+b" and expect to get good
performance out of it (with a good compiler).  Try that in Java.

  But your argument is more that we need some way to share
applications/applets/components/modules between sites and the only
language that allows you to do that is Java.  I agree with the
concept, but there are other possible languages.

  I agree with Konrad Hinsen (and others) that Python is a much more
appropriate language for scientific programming; and for networked
scientific programming.  It supports operator overloading and complex
numbers with standard modules for numeric operations (in 1.5), network
communications and databases.  As an example of Python's versatility,
there is a Python based web browser called Grail which allows applet
execution in a limited run-time environment.

  And for me, the marriage between the high-level dynamic nature of
Python and the compile-time nature of C++ (in the chapel of object
oriented programming :) matched with its explicit capability of using
existing C libraries, is an advantage you will be hard-pressed to get
out Java.

                                                Andrew Dalke
                                                [email-masked]