Haskell creates fast, safe software.
Haskell's unique combination of functional purity and static type safety allows us to rapidly develop software that performs well and works reliably.
How we're using Haskell
Here's a selection of our projects and products built with, for and about Haskell.
We use Haskell to power the REST/JSON API behind the comments on our blog. Using only a pair of Heroku dynos, it responds to requests instantly without resorting to caching or other performance tricks. When performance peaks, Haskell doesn't bat an eye. Since it was deployed two years ago, we have only discovered one bug in the Haskell code.See Carnival in Action
Fast, Working Parsing
When users complete Upcase exercises, we need to parse their Git history to understand their work. Our diff parser in Ruby was the most significant source of bugs and performance problems in the application. We deployed a Haskell service to take over diff parsing more than a year ago, and we haven't had to release any bug fixes or performance changes since. It parses immense diffs using constant memory.See how Upcase performs
We wrote the book on programming without null
Literally! Many languages now provide the Maybe type popularized by Haskell. This book teaches developers to take advantage of this concept and avoid programming's most expensive error: the pointer exception.Read Maybe Haskell
Why We Love Haskell
There are many reasons to love Haskell, here's a few of ours.
Haskell's type system lets us concentrate on what we're building and figure out later how the pieces are connected. The types say a lot to developers reading the code, and once we've built something, they ensure that our programs make sense, preventing entire families of bugs from occurring.
02. Purely Functional
Using pure functions makes our programs easier to reason about, avoiding misunderstandings and introducing clarity. Functions and data structures lets us organize our programs without trying to fit our world into class hierarchies or design patterns.
The combination of Haskell's rich type system and pure functions allows the compiler to deeply analyze the program before compiling it. Immutable data structures and restricted IO also allows for massive concurrency without restructuring the entire program.
Haskell boasts a vibrant community of developers committed to finding clearer and better ways to structure programs. Programs written in Haskell can take advantage of a wealth of open source software built up over decades.
Explore Our Haskell Work
We greatly appreciate the enormous amount of open source Haskell that we've used in our projects. We give back by releasing our work as open source whenever possible.
Look under the covers at the Haskell code that powers the comments for our blog.
OAuth2 for Yesod
Sign into Yesod applications using OAuth2 providers like GitHub.
Afraid of missing out? This Slack bot will tell you which channels to join.
Hire us to help you build excellent software
Our best work gets done when we can work face-to-face with you. Chat with a designer or developer at one of our studios near you.Let’s make something great together