Dabbling in Julia and then recently beginning to learn rust, it seems to me that the two languages have a lot in common.
My impression now is that the most fundamental differences are that Julia has:
dynamic typing
JiT compilation (as opposed to ahead-of-time)
garbage collection
Each of these design decisions has tradeoffs. For example, dynamic typing means Julia is flexible, while Rust’s static typing means its compiler can emit rich ahead-of-time feedback.
Of course there are other differences, e.g. syntax or convention around how traits are defined, but those differences feel like they’re only skin deep.
My impression was that, while rust functions don’t have multiple dispatch, generic rust traits can have multiple dispatch, which lets you accomplish pretty much the same thing (though it’s more verbose).
For example:
I’m fairly confident that overloads like that are resolved entirely statically in Rust, which makes it not dispatch of any kind, let alone multiple. Syntactically similar, expressively very different.