I'm learning Rust by writing a toy compiler, definitely a high-level task, and I'm finding that Rust is pretty good for that. Some highlights:
- Algebraic datatypes and pattern matching: extremely nice for compiler work where you need to manipulate symbol data.
- Result + try! macro: a bit more verbose than a language that can let an exception bubble up, but definitely nicer than the boiler-plate that people in Go must use.
- Module system: easy to expose only what you want.
- Cargo: one of the best, maybe the best, language package manager that I've used. Super easy to add dependencies to your project.
I will say this however: I'm moving more slowly than I would in a language like OCaml. I still haven't assimilated all of the borrow checker rules in my programming sub-conciousness, so I still make errors and it can take a little while to figure out what's happening and how best to address the problem.
- Algebraic datatypes and pattern matching: extremely nice for compiler work where you need to manipulate symbol data.
- Result + try! macro: a bit more verbose than a language that can let an exception bubble up, but definitely nicer than the boiler-plate that people in Go must use.
- Module system: easy to expose only what you want.
- Cargo: one of the best, maybe the best, language package manager that I've used. Super easy to add dependencies to your project.
I will say this however: I'm moving more slowly than I would in a language like OCaml. I still haven't assimilated all of the borrow checker rules in my programming sub-conciousness, so I still make errors and it can take a little while to figure out what's happening and how best to address the problem.