On 12/03/14 09:21 AM, Niko Matsakis wrote:
> I personally think that offering some kind of virtual structs fits
> completely within Rust. We've always tried to avoid "one size fits
> all" thinking -- in real life there are performance tradeoffs, and you
> often can't cover the entire space with a single design. This is why
> we offer multiple pointer types, closures vs procs, and so forth.

Rust is already a large language, and the interactions between many of
the features are subtle or poorly defined. There's a complexity cost for
every feature that's added. It gets harder for a single programmer to
learn the language and makes it less feasible for even an experienced
Rust programmer to grasp it all. The compiler will have more bugs, so
the safety guarantee won't be as strong.

Variadic generics, optional/keyword parameters, higher-kinded types,
single inheritance, refinement types, dynamically sized types,
compile-time function evaluation, generic literals and more are all
proposed as useful features. I think there's the potential for Rust to
be a more complex language than C++, if it's not already.

> In general, I hope that Rust programmers will reach for traits first.

I think we can expect that programmers will reach for familiar concepts,
and for many (most?) that will mean using inheritance. It will change
how code is written in Rust, and will be seen in many third party libraries.

I never plan on using the feature and I'll certainly avoid libraries
requiring me to use object inheritance and override methods. Others will
make heavy use of this feature. When I'm writing C++, I rarely find
libraries using what I consider to be a sane subset of the language.
When there isn't a Boost library for it, I just end up using a C library
and building a C++11 wrapper around it myself. I can definitely see this
happening to Rust if it picks up controversial features like object
inheritance.

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to