No disrespect intended. Crowdsourced *development* is one of our great
strengths, because things like adding test cases, implementing features,
optimizing benchmarks, reproducing bugs, etc. are all tasks with objective
criteria. When goals are clear, the collective can divide and conquer. But
design and usability are subjective tasks, not objective ones, and instead
of dividing and conquering we merely multiply and surrender.

No one's saying usability can't be discussed. If there are problems, we
DESPERATELY DESPERATELY NEED to be made aware. Even if it's just "the names
of these types confuse me", that's valuable feedback. But belaboring the
point through this many mailing list posts just makes noise and wastes
energy that the full-time devs (note: I am not a full-time dev) can spend
on more valuable tasks.

The other problem with this discussion is that it's premature. We need to
make sure that the new semantics fulfill our criteria of "safe" and
"efficient" before we can commit to the design. If we find problems with
the design, changes may be made that would completely invalidate any
syntactic consensus achieved here.

> 1) X::new() should return an X

The dilemma with making this a rule is that it makes it impossible to ever
construct a structural type (like a tuple) rather than a nominal type. From
an API perspective, a channel is conceptually a pair of two distinct
endpoints, and a tuple fits well. That's not to say that we *have* to use
::new() here: Chan::new() used to just be a free function, stream(), and
had its API changed merely as a part of the last comm rewrite. It could
easily go back to being a free function.

> 2) An "X" should do what it sounds like it does

Agreed, and this is why I don't like Sink or Drain: when I put things down
the sink or in the drain, I generally don't want to ever get them back :)

As for this second point, beware as well that we have many non-native
speakers in this community: idioms that are natural for native English
speakers may not be for them.


On Fri, Jan 24, 2014 at 9:45 AM, Lee Braiden <leebr...@gmail.com> wrote:

> On 24/01/14 13:34, Benjamin Striegel wrote:
>
>> Anyway, if we've devolving into bikeshedding then it might be time to
>> abandon this thread. Usability isn't something that can be crowdsourced.
>>
>
> Well, what you're essentially saying here (assuming you don't mean to
> disrespect non-core folks by calling them "the crowd") is that "usability
> can't be discussed", but of course it can, IF you bear overall principles
> in mind, rather than devolving into individual instances too much.   In
> this case, the overall usability issues we're TRYING to communicate are:
>
> 1)    X::new()  should return an X
> 2)    An "X" should do what it sounds like it does
>
>
>
> --
> Lee
>
> _______________________________________________
> Rust-dev mailing list
> Rust-dev@mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev
>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to