Hacker News new | ask | show | jobs
by tayo42 246 days ago
Pattern matching, usable abstractions, non null types, tagged unions or w/e enums are, build tools etc
4 comments

Standard ML from 1983, alongside all those influenced by it like Haskell, OCaml, Agda, Rocq,....
Most of those have nothing remotely approaching Rust's level of build tooling.
Yet parent was mostly talking about type systems.

If you prefer, Rust tooling is still quite far behind from languages like Kotlin and Scala, which I didn't mention, but also have such type system.

> If you prefer, Rust tooling is still quite far behind from languages like Kotlin and Scala

I'm not sure that's true, at least when it comes to specifically build tooling. I'd say Cargo is far ahead of Gradle, Ant, or worst of all SBT, and probably even slightly ahead of Maven (which never really reached critical mass in the Kotlin or Scala ecosystems sadly).

You are missing the IDE capabilities, maturity of GUI frameworks, a full OS that 80% of the world uses,... the whole tooling package.
"build tools" does not normally refer to those things.
This sounds more like "this is what I like in rust" than "features any modern language should have" though

If you like rust, use rust. It's very likely the best rust

> This sounds more like "this is what I like in rust" than "features any modern language should have" though

Good build tooling has been around since 2004, and all of the rest of those features have been around since the late 1970s. There's really no excuse for a language not having all of them.

Every language should have haskell level pattern matching?
Yes.
That’s definitely a list of features that any modern language should have. It’s in no way specific to Rust.
I'm not sure what you mean by "usable abstractions" and tagged unions are a little verbose because they are defined in terms of closed sets of subtypes, but otherwise Dart has all of those.
Nothing like "oh you can do that but with this weird work around" or if they're clunky to use
Scala but it's on JVM (also is https://scala-native.org without JVM but that not really has big user base)