Andy Adams-Moran said there are 20,000 to 200,000 lines of code included in Haskell projects out in the wild. This tends to be much smaller than many major programs written in other languages.
Adams-Moran said the oldest Haskell projects are approaching 10 years in use.
Haskell projects are typically created by teams of one to six programmers at a time.
Support for Modern, Agile Development Styles
Haskell is good for peer programming, whiteboards and code reviews.
While there is no vibrant, commercial market for Haskell tools, Adams-Moran said there are several available tools and libraries—in-house and community-driven—that support Haskell development at scale.
Keeps Clients Happy
Using Haskell can keep clients happy by allowing developer teams to easily keep to deadlines, while providing clarity, performance and maintainability of systems.
Haskell is good for creating domain-specific languages (DSLs). It is also good in situations where high assurance deployments require formal evidence. And DSLs enable organizations to empower their experts with a language they know from the core.
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.
Haskell has a vibrant, open community that attracts great programmers and researchers, said Adams-Moran. There also is a growing community of industrial practitioners of Haskell.
Haskell facilitates and simplifies refactoring and reuse.
Abstraction 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.
Haskell is good for going straight to debugging your design.
Haskell also is good for exploring design spaces and modeling behavior.
Haskell can be applied to network security in regard to applications, tools, architectures, frameworks and the mobile space, said Adams-Moran.
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.