4 ms·
I don't think Haskell was ever successful other than as an inspiration for parts of other programming languages like Rust. They chose an unfamiliar syntax for
by devit 6y ago
I don't think Haskell was ever successful other than as an inspiration for parts of other programming languages like Rust.
They chose an unfamiliar syntax for no reason (and one that makes it hard to learn abstractions, e.g. the practice to not distinguish between a -> (b -> c) and (a x b) -> c), and non-strictness/space-leaks makes it unusable for anything serious; plus, it doesn't support dependent types, so it's not even good as a "theoretically perfect" language.
The only thing that can kill Rust is a better Rust, which means either a Rust with dependent types, or a Rust that is somehow much easier to learn while not sacrificing power and zero-cost abstraction (I believe the latter is likely impossible, but maybe I'm wrong).
There is also the possibility of limited success for Rust, i.e. the fact that it will kill C/C++ (which is inevitable), but fail to kill JavaScript and Java/Go/C#.
- tasogare 6y ago> There is also the possibility of limited success for Rust, i.e. the fact that it will kill C/C++ (which is inevitable), but fail to kill JavaScript and Java/Go/C#. This is the most probable issue. Rust doesn’t offer anything new or useful for a C# developer, yet have quite a number of drawbacks. Memory safety? Heck, this is exactly what the CLR is about, hence the usual name of "managed code".
- devit 6y agoRust offers data-race freedom and in general correct concurrency (e.g. it's impossible to access mutex-protected data if you don't hold the mutex), correct handling of objects and invariant preservation due to shared xor mutable (e.g. can't pass an array to a constructor that stores it in a field, and then modify the array in unrelated code that kept a reference, breaking the class invariants), better exception safety since exception propagation is explicit, a macro system, deterministic finalization, no GC latency, reduced memory utilization, better code generation, better cross-platform support, ability to produce lighter C ABI dynamic libraries. Rust doesn't really have fundamental drawbacks other than the fact that there are more ways to store and refer to data (e.g. owned, borrowed, boxed, reference-counted, etc.) and thus you need additional code where you want to support more than one of them. Of course there are ecosystem differences and learning curves.
- crubier 6y ago> There is also the possibility of limited success for Rust, i.e. the fact that it will kill C/C++ (which is inevitable), but fail to kill JavaScript and Java/Go/C#. This is not just a possibility. This is a certainty. Rust is never going to replace JavaScript or typescript.
- amw-zero 6y agoHaskell choose syntax that is similar, if not exactly based on math. I would argue that all other programming languages have chosen completely arbitrary syntax, we’re just used to them.
- wbl 6y agoNo language has ever had total domination. Maybe C and C++ in the 1980's came the closest, but they brought Awk and the shell with them. There are always tasks for which a different language gets the job done faster, or more simply, or is subjectively prettier.
- otabdeveloper4 6y ago> it will kill C/C++ There is no such thing as a "C/C++", so how can you kill something that doesn't exist?
- pjmlp 6y agoIt exists as abbreviation for "C and C++" and several renowned publications, FAANG documents and ISO make reference to it.
- pjmlp 6y agoI doubt it will kill C and C++, because not even C++ has managed to replace all use cases where C gets presence, after trying for 40 years.