My Meeting C++ Keynote video is now available
bachmeier
no at spam.net
Mon Jan 14 14:51:46 UTC 2019
On Monday, 14 January 2019 at 05:31:27 UTC, Paul Backus wrote:
> Scheme is probably the language that takes this idea of a
> minimal "core language" with powerful metaprogramming
> facilities the furthest, and the result is a fragmented
> ecosystem that makes writing portable, non-trivial programs
> close to impossible. (See "The Lisp Curse" [1].)
Much as I hate to disagree with folks on the internet, this is an
explanation in search of an example. Scheme was originally
created as a toy language so Steele and Sussman could have an
object oriented language with actors.[1] It later turned out to
be a good language for SICP. Macros did not even appear in the
Scheme standard until R4RS, and they were not part of the
standard until R5RS in 1998, 23 years after initial work started
on Scheme. That's not to say that individual implementations
didn't have Common Lisp macros prior to R5RS, but the
metaprogramming thing was more of a Common Lisp thing than a
Scheme thing.
To me, it's obvious why Scheme has never taken off. It wasn't
created as a language for widespread commercial usage. That was
the realm of Common Lisp, and to some extent Common Lisp
succeeded. CL was not killed by excessive use of macros.
I'll also note that R started as a dialect of Scheme, but it was
designed for practical use from the start, and it has millions of
users. D has little hope of ever achieving the popularity of R.
You can do all kinds of metaprogramming with R. I got tired of
R's lack of proper tail call support, so added a working
implementation of Clojure's recur in a couple of hours.
Extrapolating from Scheme to D is simply not the best use of
one's time.
[1] See page 33 of https://dreamsongs.com/Files/HOPL2-Uncut.pdf
More information about the Digitalmars-d-announce
mailing list