Some points here:
- I don’t think you can that easily transfer research into interaction and user design to language design wrt. readability and ergonomics.
- Saying that options are sometimes bad is a vastly weaker statement than monotony of design (or Zen of Python). While I agree with the former I don’t agree with the latter as a rule.
Rather than saying that there should only be one way to structure code, I believe we need a more nuanced approach. I would state it as follows:
When adding syntactic sugar, you should only do so if:
- It is fairly obvious for a writer which one to pick under which circumstance (c.f.
? vs. match).
- The syntactic sugar applies to a non-trivial amount of use cases and real code.
- The new way of doing things adds to readability.
- Usually by highlighting the important logic that is currently getting drowned out (c.f.
? again…)
- The new way adds non-trivial amount of semantic compression.
- <are there more criteria I’ve missed?>
I believe adding var fails tests 1, 3, 4.
As both a Rust and Haskell programmer, I like pure functional languages. I do not consider myself either a “purist” or extremist. Haskell was designed to be a practical general purpose programming language and is, at least in my view, unparalleled when it comes to productivity and rapid prototyping. In the future, please avoid labeling the users of other languages as extremists or other uncharitable ways.
This line of reasoning is uncalled for. Please try to argue on the merits for or against a feature and please avoid arguing by assigning traits to people. It does not advance your argument even if it is incidentally true.
Like @goodmanjonathan, I would urge you to not be discouraged by the lack of support for adding var. Your insights are valued even if we decide not to go with a feature. Given determination and resolve, I am sure some feature you propose would eventually make it into the language.