On Thursday, 23 July 2015 at 13:33:48 UTC, Andrei Alexandrescu wrote:
On 7/22/15 7:47 PM, rsw0x wrote:
On Wednesday, 22 July 2015 at 18:47:33 UTC, simendsjo wrote:
...

I think rust makes the ugliness of D's "push everything into phobos for simplicity" become very visible. D and Rust share many equal constructs,
but D's is almost always uglier.

Care for a list? Thanks! -- Andrei

Ugliness is in the eyes of the beholder, for me for example is kinda funny when people call D syntax better than Rust, for me those are nearly the same (I do know lisp).

Back to topic:
Rust's compiler is aware of some traits and attributes:
http://doc.rust-lang.org/std/clone/trait.Clone.html which disables move semantics
or other traits grouped here:
http://doc.rust-lang.org/std/marker/

This works sort of the way D compiler is aware of input ranges or druntime for foreach and makes it possible to create alternative standard libraries like https://github.com/carllerche/mio

D has equivalent capabilities in most cases, but it's way less consistent in a way they're provided.

As an example: D has __traits + isExpressions + template constraints phobos wrappers where Rust has trait: http://doc.rust-lang.org/std/marker/trait.Reflect.html + template constraints D has some rules which types have size at compile time, Rust has http://doc.rust-lang.org/std/marker/trait.Sized.html D has rules for sharing certain types, Rust has http://doc.rust-lang.org/std/marker/trait.Sync.html D has operator overloading while Rust has that to, but using traits: http://rustbyexample.com/trait/ops.html D has special druntime Object type, Rust has a hash trait, cmp trait http://doc.rust-lang.org/core/cmp/index.html http://doc.rust-lang.org/core/hash/index.html which are more elastic.

This is in no way deal breaker because things are there in D. On the other hand learning is much easier because things are consistent. First example did hurt me badly, juggling 6 docs files for type introspection. That's what I think simendsjo meant about "ugliness".

I think the reason for this "mess" in D is that D is developed in a very ad hoc way, while for rust things really get peer reviewed and tested for a long period of time.

Reply via email to