3 ms·
There are many simpler languages with speed and memory efficiency (Nim, Crystal and the like). Rust somehow became even more complex than C++; what an achieveme
by atemerev 4y ago
There are many simpler languages with speed and memory efficiency (Nim, Crystal and the like). Rust somehow became even more complex than C++; what an achievement (not).
- nequo 4y agoTwo things that might help Rust a lot despite the complexity are the tooling and the ecosystem. Cargo is good, the compiler is extremely helpful, and there are a lot of crates to build on for all sorts of tasks. For example, if I need to use simulated annealing to solve an optimization problem, there already exist libraries that implement that algorithm well.[1] Unfortunately, the Haskell library for this seems to be unmaintained[2] and so does the OCaml library that I can find.[3] Similarly, Agda, Idris, and Lean 4 all seem like great languages. But not having libraries for one's tasks is a big obstacle to adoption. Nim looks very promising. (Surprisingly so to me.) Hopefully they will succeed at gaining wider recognition and growing a healthy ecosystem. [1] E.g., https://github.com/argmin-rs/argmin https://github.com/argmin-rs/argmin [2] https://hackage.haskell.org/package/hmatrix-gsl-0.19.0.1 https://hackage.haskell.org/package/hmatrix-gsl-0.19.0.1 was released in 2018. (Although there are newer commits in the GitHub repo, https://github.com/haskell-numerics/hmatrix https://github.com/haskell-numerics/hmatrix. Not too sure what is going on.) [3] https://github.com/khigia/ocaml-anneal https://github.com/khigia/ocaml-anneal
- chowells 4y agoFwiw, hmatrix-gsl works trivially and painlessly. Why does a working library need changes?
- nequo 4y agoGood to know that hmatrix-gsl works too. In this case, I went down the Rust route instead of the Haskell one. I use Haskell too, just not for simulated annealing. My main domain is scientific computing and I get nervous about the prospect of not being able to run my code 5 or 10 years down the road (somewhat above the typical lifespan of a project that ends up published in my discipline). GHC gets updates that sometimes require library maintainers to update their libraries. Here is a list of a few: https://github.com/fumieval/Haskell-breaking-changes https://github.com/fumieval/Haskell-breaking-changes Rust promises no breaking changes in the stable part of the language. Hopefully this promise will hold up.
- ben-schaaf 4y ago> Rust somehow became even more complex than C++ I use C++ professionally and the small subset of it that I've learnt is already way more complicated than rust.