I'm starting to feel the same way about Haskell that I did with open source software ten years ago. With open source software, when a new CPU architecture like ARM appeared, we could take all our software (including the Linux kernel), rebuild it for this new architecture, and everything just worked. As opposed to Windows, where you might get a working kernel, but all the software is distributed as x86 assembly, so no apps are going to work on an ARM system.
It seems this goes even further with Haskell, allowing us to compile not only to new CPU architectures, but to even more exotic targets like FPGAs, since the code is closer to a logical description of the problem domain, as opposed to a sequence of state modifications. This will become particularly relevant if end up hitting a wall with regards to CPU performance, and need to move to different hardware in order to gain a speedup.
It seems this goes even further with Haskell, allowing us to compile not only to new CPU architectures, but to even more exotic targets like FPGAs, since the code is closer to a logical description of the problem domain, as opposed to a sequence of state modifications. This will become particularly relevant if end up hitting a wall with regards to CPU performance, and need to move to different hardware in order to gain a speedup.