[OT] What are D's values?

Paul Backus snarwin at gmail.com
Mon Oct 4 15:45:04 UTC 2021


On Monday, 4 October 2021 at 14:30:20 UTC, jfondren wrote:
> The explanation for why a language might have X as its #1 value 
> but then fall short on X will be that the language is pulled 
> back from full-X by its other values. Someone might argue that 
> Python values Expressiveness, but that its other value of 
> Approachability keeps it from having proper closures.
>
> But the actual reason that Python doesn't have proper closures 
> is that Guido thinks they're weird and confusing:
>
>>Most Python users are unfamiliar with Lisp or Scheme, so the 
>>name is confusing; also, there is a widespread misunderstanding 
>>that lambda can do things that a nested function can't
>>I think having the two choices side-by-side just requires 
>>programmers to think about making a choice that's irrelevant 
>>for their program; not having the choice streamlines the 
>>thought process.

I would say that it is overly reductive to insist that there is 
only one "actual reason" behind any given decision. Most outcomes 
have many causes, direct and indirect.

The direct, stated reason for Python's lack of closures is that 
Guido thinks they're weird and confusing. But are other, indirect 
reasons implied by his argument, like "Python shouldn't have 
language features that most users are unfamiliar with", and 
"Python shouldn't have two ways to do the same thing".

These indirect reasons are, more or less, expressions of values 
like Approachability and Simplicity.

Obviously you cannot *completely* reduce a language's development 
process down to a list of values--that would be ridiculous. But 
it does help to be aware of them.


More information about the Digitalmars-d mailing list