Reimplementing the bulk of std.meta iteratively

Patrick Schluter Patrick.Schluter at bbox.fr
Tue Sep 29 12:02:21 UTC 2020


On Tuesday, 29 September 2020 at 03:14:34 UTC, Andrei 
Alexandrescu wrote:
> On 9/28/20 6:46 PM, Bruce Carneal wrote:

[..]
>
> Years ago, I was in a panel with Simon Peyton-Jones, the 
> creator of Haskell. Nicest guy around, not to mention an 
> amazing researcher. This question was asked: "What is the most 
> important principle of programming language design?"
>
> His answer was so powerful, it made me literally forget 
> everybody else's answer, including my own. (And there were no 
> slouches in that panel, save for me: Martin Odersky, Guido van 
> Rossum, Bertrand Meyer.) He said the following:
>
> "The most important principle in a language design is to define 
> a small core of essential primitives. All necessary syntactic 
> sugar lowers to core constructs. Do everything else in 
> libraries."
>
Sorry to not be completely convinced on the pertinence of that 
statement. For the language designer it might well be true, for 
the users of the language I'm not completely sold. There are two 
languages that imho fit that description very well, they are both 
very powerfull and extremely elegant, but boy do they suck when 
you just want to get shit done: Lisp and Forth. And (I know, one 
should not start a sentence with and) it had been mentioned often 
in this forum, it is this shear flexibility that are in the way 
of wider adoption as there are so many ways of doing things, but 
none of them completely right.
Your AA example is a good one. If it wasn't in the language, it 
would be the same issue with AA as in any other language that 
defines it in libraries: several different incompatible 
restricted implementations.

Just my uninformed 2 cents.


More information about the Digitalmars-d mailing list