On Thu, 15 Feb 2018 19:51:14 -0500 Dan Cross <crossd(a)gmail.com> wrote:
Dan Cross writes:
On Thu, Feb 15, 2018 at 7:01 PM, Dave Horsfall <dave(a)horsfall.org> wrote:
On Wed, 14 Feb 2018, Toby Thain wrote:
ALGOL, one of the most influential languages
ever, with just about every
programming language in use today tracing its
roots to it.
Worth mentioning one significant exception: the Lisp family.
I know about LISP (and even used it); it's on my history list.
Actually, I can't think of any language that derived exclusively from LISP
(other than Scheme etc)... Oh, and EMACS :-)
There were (and are!) a whole bunch of dialects of Lisp: Common Lisp and
Scheme might be the best known, with Clojure a modern entrant. Arc is sort
of a thing. Most folks know about emacs Lisp. All of these derive from the
original Lisp.
Scheme's lexical scope and block structure came from Algol.
The rest from Lisp. The joke was that the shortest and longest
language specs were of lisp dialects. The C++ spec may be
longer now.
But there were a whole slew of historical dialects
descended from Lisp 1.5:
MacLisp, InterLisp, FranzLisp, Lisp Machine Lisp, the original variant
implemented by Symbolics before they adopted Common Lisp, Portable Standard
Lisp...and any number of others that were implemented as extension
languages: AutoLisp from AutoCAD, the aforementioned Emacs Lisp, the
IIRC AutoLISP came from David Betz' Xlisp. Before it became a
superset of Scheme.
So, how's this relevant to Unix? Well, I'd
like to know more about the
historical interplay between the Unix and Lisp communities. What about the
Lisp done at Berkeley on the VAX (Franz Lisp).
One of the things that strikes me about Lisp and Unix is the conceptual
similarity between image based languages (like Lisp) with a REPL and the
Unix "process as virtual machine" model with a shell and set of utilities.
An image is a sort of virtual machine and a REPL is a sort of shell;
callable functions in the REPL are sort of like discrete programs in the
$PATH. To a first order approximation, at any rate.
They feel very different to me. Lisp was/is a closed world
& its FFI (foreign func. interface) always seemed like an
afterthought. In a shell you can string together programs
written in any language so long as they input/output text
lines. Its pipe symbol allowed infix notation for function
composition. As a programming language I prefer Scheme over
almost everything else but have to admit that most of my
oneliner scripts are in sh and I mostly program in Go these
days.