[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