3 ms·
I don't know about their maturity, but I think Haskell's type system and purity would help with security. It doesn't have anything like `eval` and is much less
by tikhonj 15y ago
I don't know about their maturity, but I think Haskell's type system and purity would help with security.
It doesn't have anything like `eval` and is much less tolerant of weird input by default than dynamically typed languages (at least in my experience). Having no or limited state also helps--bad input and other mistakes tend to be more localized when they can't possibly change anything else in the program.
If you're really crazy about security, then I suspect the Haskell code would also be much easier to analyze and verify.
- danieldk 15y agoAlso, many underlying components are tested using QuickCheck. QuickCheck allows you to verify that the properties of functions hold under random input. Of course, since such checking is used when the number of possible inputs is too large to check (or infinite), it is not watertight. But it helps tremendously in uncovering bugs.