Haskell is Useless
notes date: 2014-02-25
source links:
source date: 2011-12-17
- Start by laying out programming languages on useful<->useless, safe<->unsafe axes (where unsafe refers to side-effects)
- Most mainstream languages are imperative and end up in the useful, unsafe corner – they are very effectful.
- Real world gradually moving in the safe direction
- Transactional memory: avoid doing arbitrary I/O during a transaction
- Annotations of pure procedures that compilers can work with
- LINQ
- so sublanguages with controlled effects exist, but primarily within bigger languages
- Ideally, Haskell will also move toward being useful.
- Attempting to combine effectful computations and safe computations into a single language in such a way that they don’t pollute each other.
- Cross-fertilizations between the useful and safe corners that currently seem so mutually exclusive