Why and Why not Rust?

It's a general purpose programming language, so you can do pretty much everything with it. It isn't a scripting language though.

Difficult but interesting question. I think C++ is an alternative. Maybe to some extent also Java/Kotlin and C#, though these use garbage collection while Rust and C++ can do without.

Good sides:

  • memory safety by default (unless you use unsafe Rust)
  • speed (as fast as C, I think)
  • support for async
  • good package system and testing framework
  • memory effecient (regarding memory use, not program size!)
  • stability

Bad sides (my perspective):

  • difficult to master
  • sometimes prone to boilerplate code or verbose syntax due to some limitations of the type system (e.g. regarding method delegation)
  • async has been added to the language at a later stage, so async integration sometimes feels limited and complex (pinning, lifetime issues, etc.)
  • error handling sometimes feels like having a lot of friction (one thing I ran into can be found here, another example there)
  • complexity of the language leads to inevitable design flaws in std (e.g. this one) which are probably impossible to fix

Overall, I wished for a better abstraction of certain core concepts, especially in regard to control flow (like fallibility, yieldable closures).


P.S.: Regarding these negative sides, one should also consider that there's probably no real alternative around currently, which would fix all these issues (while keeping Rust's advantages).