On Friday, 31 July 2015 at 09:08:00 UTC, Ziad Hatahet wrote:
On Thu, Jul 30, 2015 at 7:19 AM, Chris via Digitalmars-d <
[email protected]> wrote:
My point was that any (new) feature introduces its own
problems... As I said, I'll wait and see what Rust users have
to say after a year or two.
Except, as it was pointed out, this is not a new feature. It
has been around in many languages way before Rust.
You don't have to wait a year or two, check what the experience
of users of languages such as Scala, Haskell, F#, and OCaml has
been like.
It really doesn't mean much if you're talking about functional
languages, because they're fundamentally different from
imperative languages in how they're constructed. Almost
everything in functional languages is an expression, and it works
fine for them, but the way that code is written in those
languages is also fundamentally different from how you'd write it
in C, C++, Java, C#, D, etc. As I understand it, Rust is much
closer to C++ and friends than a functional language, so how it
interacts with the rest of the language is going to be quite
different. That doesn't mean that it won't work just fine, but it
does mean that the fact that it works fine in functional
languages doesn't necessarily mean that it'll work well for Rust.
Now, there may be other imperative languages which have something
similar - be it that all statements are expressions or that a
larger subset of them are - so there may already be one or more
languages out there which show that it can work just fine with an
imperative language, but AFAIK, all of the languages you listed
are either outright functional languages or lean heavily in that
direction rather than being imperative. So, I don't think that
experiences with those languages necessarily says much about how
well it will work for Rust.
- Jonathan M Davis