On 1/13/2019 9:31 PM, 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].)
When something like an object system is made part of the language (or at the
very least, the standard library), it becomes a focal point [2] that the
community can coordinate around. Due to the diverse, distributed nature of any
programming-language community, trying to coordinate through explicit
communication is not really a viable option, so having these kinds of focal
points is very important if we want to be able to work together on anything.
[1] http://winestockwebdesign.com/Essays/Lisp_Curse.html
[2] https://en.wikipedia.org/wiki/Focal_point_(game_theory)
Interesting cites, which provide a basis for why I've opposed AST macros, and
why Ddoc and unittest are builtin (and a few other things).
Also, before std::string came along in C++, everyone invented their own string
class, and as a result, nobody could share code.