Hi guys, I am new here. Just found out about this project today, and
read up a lot on its history and purpose.


There are 3 gripes I have about Rust, after comparing some good stuff
in Go-lang. http://tour.golang.org


1st, dereferencing should be automatic everywhere.
Running a pattern match on borrowed boxes should NOT require an asterisk (*).
Passing in a stack-local variable to a function or closure (that
requires arguments to be passed by reference), should not require the
ampersand (&) in the caller. Why can't the compiler figure this out?

In go-lang, all these things are just more invisible, which makes the
learning curve so much easier. I understand people coming from C would
prefer these memory-management signets explicit, but really they have
little need to be so verbose in many cases, and should be optional or
by-default instead, so that things just-work. (Just-like how custom
borrow lifetimes are optional, and defaults well in most cases.)


2nd, there is a need for the concurrency mechanism similar to the
concurrent "select" in go-lang. This is used to implement multiple
patterns such as timeouts, and non-blocking channel receive, and many
others. Errors in tasks would also be better handled/supervised this
way. By the way, should rust errors be a trait like in go-lang?


3rd, while generics are great, there is a need for trait types or
dynamic objects to be simpler to use in rust. Dynamic calls through
interfaces in go-lang are simpler, while trading off performance. In
rust, implementing draw_all on a vector of Drawable elements also have
similar performance hit, but with a much uglier implementation
requiring both @ and ~ signets and "as" syntax, which is confusing and
too verbose. Also there seem to be a requirement for managed boxes in
the shared heap for dynamic calls, which Erlang does not require. As
such, recursion for some problem sets (like polymorphic binary trees)
is not as clean in rust, compared to other languages. How can we
improve this?


Otherwise, Rust lang is really awesome.
The documentation and syntax is easy to follow for the basics, but
begin to feel "complex-for-complexity sake" in the advanced/modern
language features. As such, the documentation feels schizophrenic as
the language constructs begin to lose its delightful lean-opinionated
design towards the end.

Really beginning to like Rust a lot.

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

Reply via email to