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
