Why Programmers Should Use the Haskell Language Now

 
 
By Darryl K. Taft  |  Posted 2012-04-09
 
 
 

Program Size

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.

Program Size

Proven Technology

Adams-Moran said the oldest Haskell projects are approaching 10 years in use.

Proven Technology

Team Development

Haskell projects are typically created by teams of one to six programmers at a time.

Team Development

Support for Modern, Agile Development Styles

Haskell is good for peer programming, whiteboards and code reviews.

Support for Modern, Agile Development Styles

Tools

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.

Tools

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.

Keeps Clients Happy

Domain-Specific Languages

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.

Domain-Specific Languages

Homomorphic 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.

Homomorphic Encryption

Community

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.

Community

Reuse

Haskell facilitates and simplifies refactoring and reuse.

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.

Abstraction Is Key

Debugging

Haskell is good for going straight to debugging your design.

Debugging

Modeling

Haskell also is good for exploring design spaces and modeling behavior.

Modeling

Network Security

Haskell can be applied to network security in regard to applications, tools, architectures, frameworks and the mobile space, said Adams-Moran.

Network Security

Software 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.

Software Quality

Rocket Fuel