Fully agreed, other than the fact that Rust is absolutely beating Haskell in being the usable-in-production choice (and Haskell is WAY ahead of any other ML languages). Rust has
just enough ML type goodness to make a big improvement AND it has the affine types which are legitimately novel.
Haskell is still struggling with what exactly to do about Linear types (and get the whole ecosystem on board), and strictness. While lazy-by-default is really amazing for certain things, Rust's approach just wins out for production code, I think.
> In general the lack of quality is a side effect of the lack of liability in many software fields, not the programming language that gets used.
This is true, until you have languages with truly novel features, like an implementation of affine types, and strong compilers.
Even just the difference between errors-as-values versus exceptions is a huge difference in my book -- Rust code gives you a clear chance/requirement to handle every possible error.
Haskell is still struggling with what exactly to do about Linear types (and get the whole ecosystem on board), and strictness. While lazy-by-default is really amazing for certain things, Rust's approach just wins out for production code, I think.
> In general the lack of quality is a side effect of the lack of liability in many software fields, not the programming language that gets used.
This is true, until you have languages with truly novel features, like an implementation of affine types, and strong compilers.
Even just the difference between errors-as-values versus exceptions is a huge difference in my book -- Rust code gives you a clear chance/requirement to handle every possible error.