Jump to ratings and reviews
Rate this book

Production Haskell: Succeeding in Industry with Haskell

Rate this book
Are you excited about Haskell, but don't know where to begin? Are you thrilled by the technical advantages, but worried about the unknown pitfalls? This book has you covered. So you've learned Haskell. You've taught your friends about monads, you've worked through some beginner textbooks, and maybe you've played around with some open source projects. Now that you've had a taste, you want you want to write an application in Haskell for fun! Maybe you want to use Haskell at work! You sit down at your computer, and you're stuck. How does anyone actually get anything done with this language? This is a common thing to wonder. Haskell has always enjoyed a wide variety of high quality learning material for advanced parts of the language, if you're not afraid of academic papers. The last five years have seen an upswelling of fantastic resources for learning the language as a beginner. However, the language does not have many resources for using it in production. It's difficult to navigate the ecosystems and identify quality resources that are in alignment with your goals and values. This book aims to help with that situation. After reading this book, you should feel comfortable writing large software projects in Haskell, evaluating competing libraries and techniques, and productively reading material from a variety of Haskell users. An Opinionated Tour Guide Haskell is a hugely diverse landscape. There are many regional United Kingdom, Scandinavia, mainland Europe, Russia, the USA, Japan, China, and India all have thriving Haskell ecosystems that have interesting dialects and differences in custom and practice. People come to Haskell with many backgrounds. Some people learned Haskell well into their careers, and had a long career writing Java, Scala, or C# beforehand. Some people came to Haskell from dynamically typed languages, like LISP or Ruby. Some people started learning Haskell very early on in their programming career, and use it as the basis of comparison. Some people primarily use Haskell in academic research, while others primarily use Haskell in industrial applications. Some people are hobbyists and just like to write Haskell for fun! This book is intended for people that want to write Haskell in industry. The tradeoffs and constraints that industrial programmers face are different from academic or hobbyist programmers. This book will cover not only technical aspects of the Haskell language, but also social and engineering concerns that aren't "really" about Haskell. Part of this book will be objective. I will teach you how to use some interesting techniques and ideas to make developing with Haskell more productive. We'll learn about Template Haskell, type-level programming, and other fun topics. However, for the most part, this book is inherently subjective. Because Haskell serves so many ecosystems, it is imperative to discern what ecosystem a something is intended for. More than just giving out prescriptions - "This library is production ready! This is a toy!" - I hope to show my thought process and allow you to make your own judgment calls. Ultimately, this is a book about the social reality of software engineering in niche languages.

Unknown Binding

6 people are currently reading
47 people want to read

About the author

Matt Parsons

16 books2 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
2 (15%)
4 stars
6 (46%)
3 stars
5 (38%)
2 stars
0 (0%)
1 star
0 (0%)
Displaying 1 - 3 of 3 reviews
Profile Image for Matvey Aksenov.
70 reviews7 followers
September 16, 2024
So, I have some production experience with Haskell, and I found it funny that while I generally agreed with the more abstract concepts being discussed, when it came to the specifics, I absolutely hated everything mentioned. I think yesod-sphere is a deeply unpleasant place to be in (maybe with an exception of conduit, if that counts?); I dislike the extensive use of Template Haskell and code generation in general, especially when it comes to serialization; and I really don't like the smell of "advanced type-level programming" in production (a very cool topic otherwise).

I would've loved to see more discussion on a variety of related topics, such as application configuration (environment variables, configuration files, etc), deployment (SQL migrations, Nix), request tracing. While not specifically about Haskell, these are (some of) the problems someone wanting to introduce Haskell into their company would have to solve.

Still, it is undoubtedly a helpful book for someone at an intermediate level of Haskell and there aren't many like it.
Profile Image for Michael Webb.
156 reviews5 followers
November 23, 2023
I've been working with Haskell for about 3 years, and I have colleagues with experience between 1 and 10 years with the language. I found that each one of us in the team, with the exceptions of the greybeards, had sections we found really valuable and interesting and sections that were completely indecipherable to us. There wasn't a gradual ramp up in the knowledge required.

This still felt like an interesting and valuable read but felt like it could signpost a little better what prior knowledge you'd have to have before getting into each chapter, or be better organised along a skills-building path.
Profile Image for pluton.
304 reviews10 followers
May 10, 2023
The book contains very valuable information, geared towards practical and production Haskell, especially since it's written by a professional Haskell programmer, what he tried, what worked and what didn't. It covers important topics like architecture (partially), domain modeling, testing, databases.
A neat trick I've already tried is using custom preludes in the project, one for each area of the program — reduces the number of imports everywhere. There are more good pieces of advice like "write lots of datatypes and interpret them into some domain".
The last part is very dense since it contains Template Haskell and type-level programming. The zeroth chapter about book "principles", such as empathy, and some parts of the first chapter feel murky and not clear what about, e.g. they mention someone's "aversion to error messages". But these parts aren't long, and the rest will be better.
It's a very decent Haskell book overall. I'll need to return to it multiple times to better understand what it explains.
Displaying 1 - 3 of 3 reviews

Can't find what you're looking for?

Get help and learn more about the design.