1Program Size
3Team Development
4Support for Modern, Agile Development Styles
5Tools
6Keeps Clients Happy
7Domain-Specific Languages
8Homomorphic Encryption
Homomorphic encryption is a form of encryption where a specific algebraic operation performed on the plaintext is equivalent to another (possibly different) algebraic operation performed on the ciphertext. Adams-Moran said Haskell is good for implementing homomorphic encryption, particularly in protecting data in the cloud—where users want to store only encrypted data in the cloud. Searches and queries work over encrypted data, yielding encrypted results that only the owner can access.
9Community
11Abstraction Is Key
Abstraction is the key to Haskell. Abstraction is the process by which data and programs are defined with a representation similar in form to its meaning (semantics), while hiding away the implementation details. Abstraction tries to reduce and factor out details so that the programmer can focus on a few concepts at a time. In Haskell, abstraction is central to the programmer, particularly in discerning and describing patterns. It’s a key creative skill for programmers and it helps manage complexity and enables reuse and understanding.
14Network Security
15Software Quality
Haskell is important in situations where software quality is key, particularly for tools for analyzing and evaluating software. This is especially true for security properties.