Comment by zozbot234

1 day ago

When you do fully value-oriented programming in Rust (i.e. no interior mutability involved) that's essentially functional programming. There's mutable, ephemeral data involved, but it's always confined to a single well-defined context and never escapes from it. You can even have most of your code base be sans-IO, which is the exact same pattern you'd use in Haskell.

I actually like rust more than Haskell, but `You can even have most of your code base be sans-IO, which is the exact same pattern you'd use in Haskell.` glosses over the fact that in Haskell it's enforced at compile time.

  • Another argument as to why rust isn't the forever-language. My forever language should include effects!

    Even rust has need of this. For example, I want a nopanic effect I can put on a function which makes it a compile error for anything that function calls to panic.

    • Though I think it's the closest language right now, ideally you have something that is close to "zero-overhead" as your forever language.

      I really like how flix.dev looks, but there's always a little nagging at the back of my head that something like rust will always produce more performant software.

    • > Even rust has need of this. For example, I want a nopanic effect I can put on a function which makes it a compile error for anything that function calls to panic.

      This!

      This apart from build times is my biggest request for the language.

      Nopanic, nomalloc, etc.