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