From: mbk@lyapunov.ucsd.edu (Matt Kennel)
Newsgroups: comp.edu,comp.lang.fortran,comp.lang.misc,sci.math
Subject: Re: Scientists as Programmers (was Re: Small Language Wanted)
Date: 29 Aug 1992 22:55:05 GMT
Organization: Institute For Nonlinear Science, UCSD
NNTP-Posting-Host: lyapunov.ucsd.edu
X-Newsreader: Tin 1.1 PL3

hougen@uirvlh.csl.uiuc.edu (Darrell Roy Hougen) writes:
: mbk@lyapunov.ucsd.edu (Matt Kennel) writes:
: 
: >I personally would love a "Numerical Eiffel" type of language ...
: 
: Try "Sather".  It is an object-oriented programming language that is
: competitive with Fortran in speed for complex problems.  Of course,
: the object oriented dispatch makes it slightly slower for some types
: of problems, but the designers have gone to great lengths to make it
: fast.  The principle designer, Steven Omohundro, is a physics PhD
: turned computer scientist, so that may explain why he is interested in
: bridging the gap, as it were.

I've downloaded and compiled Sather already, and I really like what I've
seen so far.  After seeing Sather, I can't understand how C++ could be so
needlessly complicated.  I'm just about ready to switch, but I worry about
not having my code usable by anybody else.

What I like:

1)  Simple class structure and rules (though I think the CS gurus have some
    problems which I don't completely understand).

2)  Garbage collection.

A couple of things tho:

1)  There is only one basic "loop" construct, which means that you have to
    write i:=i+1  all the time just do do the most basic things.  Of course
    it's only "surface syntax", but these things make a real difference
    in real life.  In the jihad for simplicity, Oberon discarded the
    FOR i:=1 TO N DO loop, but it was put back into Oberon-2 and I think
    Sather's designers should do the same.

2) Along the same lines what I really meant by "Numerical Eiffel" was array
   index notation as I've described before, or something to get rid of all
   those silly loops.  Perhaps this is taken care of as their parallel
   extension?

3) The library right now is too bare to be completely useful yet, even though
   the README spells out great plans (better for my purposes than ANYTHING
   I've ever seen.  K-D trees!).  No complex numbers yet.  Can't read binary
   (big blocks of FP numbers) yet.

Implementation issues:

1)  It compiles into "C", and the 2-d arrays are implemented in
    Numerical Recipes style (pointers to arrays of pointers). It's not clear
    this is best for speed, especially with newer compilers I guess.
    Depends on the relative cost of reading memory vs computation.

2)  It doesn't yet output code in such a way that little methods can
    be inlined, say by compiling with GNU CC.  If this were to happen, I'd
    think that Sather programs could be quite a bit *faster* than C++, as it
    generates new, specialized, code for classes with type parameters.
    (I.e LIST{INT} gets special treatment vs. LIST{FOOBAR})

: Sather is available from Berkeley via anonymous ftp.  However, I can't
: seem to find the ftp site at the moment.  The author's email address
: is om@icsi.berkeley.edu.  Be sure to mention Sather in the subject.
: 
: Darrell

--
-Matt Kennel  		mbk@inls1.ucsd.edu
-Institute for Nonlinear Science, University of California, San Diego
-*** AD: Archive for nonlinear dynamics papers & programs: FTP to
-***     lyapunov.ucsd.edu, username "anonymous".
Xref: sparky comp.edu:1541 comp.lang.fortran:3432 comp.lang.misc:2937 comp.arch:9235 sci.math:11010