Which paradigm do you consider to be Rust's primary paradigm?

80 points Arshiaa001

I'm specifically referring to the big three everyone's heard of:

  • OO: Rust doesn't do behavior inheritance, which is a cornerstone of OOP, encapsulation is not exclusive to OO, and dot notation doesn't make a language OO (I've debated this point and will do so again if needed)
  • FP: Rust borrows heavily from Haskell's design, but there's simply way too much mutation and side effecting going on. I'd argue that the borrow checker gives you a stronger, better version of immutability that offers the same guarantees (almost) but is much more performant and easier to use. Still, Rust doesn't fit classical FP and certainly doesn't do most things the FP way (no monads, etc.)
  • Procedural: this does appear to be the closest fit, especially given Rust's status as a 'better C', but again, there's way too much Haskell going on.

So, what do you think?