Hacker News new | ask | show | jobs
by kibwen 3483 days ago
If one were to have experience in both Rust and Scala, they would see that the comparison between the two is flawed. Scala revels in implicitness, whereas Rust is very explicit. Scala also has expressiveness as a goal, whereas in Rust expressiveness is an anti-goal. There are no user-defined operators in Rust, and less magic than in any language that I've used other than C.
3 comments

> whereas in Rust expressiveness is an anti-goal.

I think this is seriously over-stating it. We don't want Rust to be ugly or hard to use.

Yes this is true. I do wish I could have custom operators every now and then though, but that's a whole other bag of complexity and can be ugly if you don't know what each operator means.
What's described here is precisely how Rust and Erlang became my two favorite languages to work with.
I have left more comments on this thread than I should considering my lack of experience with Rust, but I think the comparison with Scala is valid.

What got me thinking about that was the implementation of into_par_iter, which is a trait implemented on a bunch of standard types, not unlike implicit methods in Scala. I know this is rare code, but reading this left with very similar feeling that I had when reading Scala standard library code:

https://github.com/nikomatsakis/rayon/blob/master/src/par_it...

Being able to extend other types with methods is a pretty common feature in many languages, many of which are much less magic than Scala. It's very common in functional languages with objects.