New: The "Begin Rust" book

See a typo? Have a suggestion? Edit this page on Github

Get new blog posts via email

I see an attitude expressed on forums often. This has happened for years, and I usually ignore it. But I'm responding to it today because I think the opinion is negative for the Haskell community. And—hitting a bit closer to home for me—negatively impacts my coworkers.

I'm an opinionated person. In my experience, most people who end up writing Haskell are to some extent. I'm not afraid to share my opinions on lots of topics, and I think that's healthy. Most people who read my blog or Twitter feed know my opinions on language design, API design, build tool design, nutrition, and exercise, for example.

Here's the two sentence summary of everything I'm going to say in this blog post:

  • Just because I believe something does not make it FP Complete's belief.
  • Just because I believe something does not mean that everyone at FP Complete believes it.

I think I've interviewed every engineer who works for FP Complete. When interviewing, I do look for certain criteria. For example, if I'm hiring for a Haskell development position, I look for people who like and know Haskell. That's the closest thing to an "FP Complete opinion" you can find: things which are intrinsic to the job. I've never tried to hire someone who has identical opinions to me on all topics. Not only would that be impossible to achieve, but it would be bad for business: we want a diversity of opinions, not a monoculture.

Someone on our sales team recently brought a question to the engineering team: "Why does FP Complete hate Nix?" He showed me the comment in question. I won't point to the comment; it's neither informative nor unique. Here's the answer: FP Complete has no emotions. It's a company. We work on projects, and we have people who do that work. I don't think anyone on our team "hates" Nix. I certainly don't, even if I'm usually one of the people on the team saying we shouldn't use Nix for most projects (I can explain why that happens separately, but it's off topic here). However:

We have technical disagreements on our team. You've probably seen members of the FP Complete team espousing those differing viewpoints publicly. We regularly have technical debates about how to approach things. This isn't just in the realm of Haskell. We debate DevOps tooling, front end development, and even business objectives.

When someone joins the FP Complete team, they are agreeing to fulfill the terms of their contract: do the work we ask from them, contribute to our internal technical discussions, and so on. There is no pledge of obedience to the "FP Complete will." Because it doesn't exist.

I feel almost silly writing up this blog post, because everything I'm saying should be automatic. However, it seems like something like this needed to be said.

If you want to criticize something I've said, go for it. I've proven over the years I'm always up for a technical debate. But couching it as "FP Complete believes X" is lazy (in the bad way) and wrong. That goes for generalizing from statements of other members of the team too.

Get new blog posts via email