4 ms·
Tools should be chosen to match the use case. Haskell is a good choice when you've got: 1) a problem that requires a very high-assurance system with very low
by SkyMarshal 6y ago
Tools should be chosen to match the use case. Haskell is a good choice when you've got:
1) a problem that requires a very high-assurance system with very low tolerance for bugs, errors, and failures, and
2) a large complex system where refactoring and other maintenance-over-time activities are made materially more manageable by Haskell's strong type system and other tools,
3) a need for large-scale parallelization that a purely functional language like Haskell facilitates, and
4) a world class team of engineers who can become productive in it relatively quickly, support new hires doing so too, and won't foreseeably be outsourced to some low cost overseas sweat shop.
Rust is also worth considering under those criteria, in addition to embedded systems, hard/soft real-time or constant-time systems, etc.
But obviously not all software projects have all those criteria. Other languages like Go, Python, Javascript, Java-ecosystem, .Net, etc may be ideal in other circumstances. You just have to match the tools for the job.
- paulryanrogers 6y agoArticle seems to be implying at a big company you probably can't have #4 and may not even need #1.