comp.lang.ada
 help / color / mirror / Atom feed
From: Robert Dewar <robert_dewar@my-deja.com>
Subject: Re: The revolution will not be standardized
Date: 2000/01/07
Date: 2000-01-07T00:00:00+00:00	[thread overview]
Message-ID: <854tvc$osf$1@nnrp1.deja.com> (raw)
In-Reply-To: wcc7lhmizbc.fsf@world.std.com

In article <wcc7lhmizbc.fsf@world.std.com>,
  Robert A Duff <bobduff@world.std.com> wrote:
>Some of the above languages you mention are very special
purpose, so
> they don't count, in my mind, when discussing the design of
general
> purpose languages.  I don't think SNOBOL should be a
"language";


You just don't know SNOBOL4 well, or you would not make this
statement. Of *course* SNOBOL4 is a general purpose language.
Yes, people who only have a surface acquaintance with the
language think of it as being specialized to string processing
and that pattern matching is the only interesting feature, but
this is bogus.

Indeed Robert Dewar's important rule for writing SNOBOL-4,
well known in that community is "Don't use pattern matching".
What this rule means is that unlike the case in SNOBOL-3, it
is wrong to write complex algorithms as pattern matches in
SNOBOL-4.

The most interesting features of SNOBOL-4 to me are the
generalized mappings (the TABLE function), a VERY important
feature in programming languages as is known well from the
SETL family of languages (SETL/ABC/Python), and the DATA
facility for creating programmer defined data types. The
latter are particularly interesting, they are record types,
where member names are functions that can be applied to
any record type sharing the same member name. This can be
used to construct quite interesting structures, including
for example the possibility of multiple dispatching.

Finally, the most important feature of SNOBOL4 is its highly
dynamic nature. Someone once said that the design of SNOBOL4
is "never do anything at compile time if it can be left till
runtime". The dynamic definition of functions, and the
EVAL/CODE functions, familiar from the LISP family of languages,
are very powerful additions to expressive power.

The SPITBOL packages in GNAT are handy for providing a very
limited subset of the SNOBOL4 capability, namely string pattern
matching, but please please do not confuse this with providing
anything approaching the expressive power of SNOBOL4. That's
simply not possible in a low level language like Ada :-)

I would guess that Bob's other comments about my list of
languages being specialized is also based on inadequate
familiarity with these languages. For example, people who
don't know APL often dismiss it on the grounds that it is
just a specialized gizmo for dealing with arrays, but in
fact APL also is a powerful general purpose very high level
language with extremely interesting ideas on data aggregation.
APL demonstrates that you can replace a lot of traditional
algorithm messing with complex data structures by powerful
manipulations on much more regular data structures.

It's a pity how unfamiliar people are with the general notion
and feel of very high level languages (calling them simply
high level languages is admittedly deliberately provocative :-)
And it is surprising how much programming is done in low level
languages.

Java is a particular disappointment. If we are at the stage
where we can afford the kinds of fundamental inefficiencies that
the Java approach involves (and that people have run into with
Java), then we could have had a far higher level language that
would have allowed Java applications to be written far more
compactly and reliably. As it is Java suffers from most of the
disadvantages of both worlds -- the need to write things down
at a low level, worrying about data structures, and the
inefficiencies of generalized "interpretive" execution. The
"intepretive" is in quotes here, because of course Java can
be compiled, but then any interpretive language can be compiled
(SPITBOL/360 demonstrated that a long time ago, and the
technology of compiled APL is well established at this stage).

I believe that if Java had been designed from the start with its
eventual deployment in mind, it might have turned out very
differently. Of course the emphasis on reference rather than
value semantics is a matter of taste. For me, going more in
the direction of reference semantics is a huge mistake.


Sent via Deja.com http://www.deja.com/
Before you buy.




  reply	other threads:[~2000-01-07  0:00 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-12-09  0:00 The revolution will not be standardized Ted Dennison
1999-12-10  0:00 ` Ed Falis
1999-12-10  0:00   ` Ted Dennison
1999-12-12  0:00   ` Geoff Bull
1999-12-12  0:00     ` Robert Dewar
1999-12-13  0:00       ` Geoff Bull
1999-12-13  0:00         ` Larry Kilgallen
1999-12-14  0:00           ` Geoff Bull
1999-12-13  0:00     ` Ted Dennison
1999-12-13  0:00       ` reason67
1999-12-13  0:00         ` Aidan Skinner
1999-12-14  0:00           ` Geoff Bull
1999-12-14  0:00             ` Ted Dennison
1999-12-15  0:00               ` Geoff Bull
1999-12-15  0:00                 ` Preben Randhol
1999-12-14  0:00             ` Richard D Riehle
1999-12-14  0:00               ` Marin D. Condic
1999-12-14  0:00                 ` Greg Martin
1999-12-14  0:00                   ` Marin D. Condic
1999-12-15  0:00                     ` Ted Dennison
1999-12-16  0:00                       ` Marin D. Condic
1999-12-21  0:00                       ` Geoff Bull
1999-12-21  0:00                         ` Robert Dewar
1999-12-21  0:00                           ` Richard D Riehle
1999-12-22  0:00                             ` Robert A Duff
1999-12-23  0:00                               ` Robert Dewar
1999-12-23  0:00                                 ` Richard D Riehle
2000-01-05  0:00                                   ` Robert A Duff
2000-01-06  0:00                                     ` Robert Dewar
2000-01-06  0:00                                       ` Robert A Duff
2000-01-07  0:00                                         ` Robert Dewar [this message]
2000-01-06  0:00                                       ` Robert A Duff
2000-01-06  0:00                                     ` Robert Dewar
1999-12-23  0:00                                 ` Ehud Lamm
1999-12-23  0:00                                   ` gnat 3.12 Michael Ben-Gershon
1999-12-23  0:00                                     ` Robert Dewar
1999-12-15  0:00                     ` The revolution will not be standardized Greg Martin
1999-12-15  0:00                   ` Ted Dennison
1999-12-14  0:00             ` reason67
1999-12-14  0:00       ` Geoff Bull
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox