On 12-07-13 7:21 PM, Bennie Kloosteman wrote:

> We spend far more time reading than writing code   and more time is
spend checking results , specs / emails /docs  , compiling  , code
organization and see where things fit etc  - the time spend typing is
low . It is not just maintenance programmers but a lot of new code is
refactoring and bug fixing.  Conciseness is of little benefit and IMHO
is dangerous as it makes language adoption harder  this is especially so
for the libraries.  And adoption is crucial for Rust.

Yes, I'm familiar with this argument. It's exactly the same argument I presented when initially asked why Rust wrote rec(...) rather than {...}, had only a single namespace, had no type-directed dispatch, name overloading, environment capture, type parameter inference, name shadowing, integer-literal inference ... I lost all these arguments, and many more, to people who were upset about having to "write more than necessary".

Adoption is driven by many factors. Expressivity _is_ one of them; though you'll note it's always been explicitly subordinate to safety, efficiency and practicality. We balance factors as best we can. Keep in mind that even seemingly simple concepts like "readable" are _very_ hard to quantify: Ada was "designed to be readable" and yet the verbosity appears to work _against_ it. Readers' eyes glaze over and are unable to quickly apprehend detail, have to keep too much in short-term memory.

The argument for sigils boils down to one about ubiquity. Words we write (or read!) over and over again, we tend to abbreviate. Sigils are just the limit case of abbreviation: 1 symbol. Infix operators survive too, and numbers, and printf strings, and lots of little lexical peculiarities that require the reader to know how to scan them, but are so ubiquitous that they push us towards abbreviation. Readers and writers alike can find the abbreviated form easier to apprehend than the elaborated form.

  Java and C# have a good balance focusing on 5-6 chars keywords with
very few 2 and 3 char ones  ( int is the main one) .

"Good" except for all those programmers who deride Java as far too verbose. Ask around, opinions vary. C# can't be compared to Java reasonably here as it contains far more abbreviated forms. Because of Anders Hejlsberg's taste, as far as I can tell. I'm not insulting it; he's got compelling taste!

Taste plays a large role in language design, especially in places like this. A lot of conversations boil down to subjective judgment calls where it's not really worth saying much beyond "I find X distasteful, and I would prefer Y".

Anyway Rust is a new language it should not look like something from the
70's meant for only mathematical types.

I concur, taste-wise, with aiming for less-academic and less-mathematical terminology when possible (for example, I hope we do not wind up referring to ~ as 'affine' in any context other than casual conversations between designers). Hopefully this will improve more as we file down further redundancy in the language and ensure the remaining vocabulary is comprised of short, pithy, common words.

As for the 70s ... any decade that produced C, ML, Forth, CLU, Mesa, Smalltalk, Pascal/Modula and Scheme is OK in my book. It's kinda the design-space where we're aiming, actually. Just less crashy. They didn't have quite as much internet in their face as we moderns do.

-Graydon
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to