Skip to content

Instantly share code, notes, and snippets.

@snoyberg
Created July 11, 2016 06:10
Show Gist options
  • Save snoyberg/b486983451fa8e5007de39bec8966edb to your computer and use it in GitHub Desktop.
Save snoyberg/b486983451fa8e5007de39bec8966edb to your computer and use it in GitHub Desktop.
FP Complete, haskell-lang.org, Stack, and Stackage

As has become a bit of a tradition of mine, I'm writing up a Gist to cover a controversial topic instead of putting it on my blog. Motivation: I want to get down my thoughts in just one place to link people to, but I don't want to give a silly debate more publicity by adding it to my blog archive, Planet Haskell, and so on.

tl;dr: Each time FP Complete has made a supposed "grab for power," the reality is very simple:

  1. We've tried to work with existing projects and found that the efforts we invested were not paying off
  2. We needed to improve the situation for either internal development purposes or because our customers demanded it
  3. Because the engineers at FP Complete are devoted to open source, and the management team (myself included) share this passion, we make our work available to the community whenever possible, despite being attacked for doing so

It seems that each time FP Complete does anything in the open source Haskell community, a group of people come out and attack us (and often me personally) for doing so. This has occurred with such things as:

  • Releasing our own package security solution instead of waiting for the Hackage Security work from Well Typed to be complete
  • Creating a new build tool - Stack - instead of sticking with cabal-install.
  • Recommending new users avoid the Haskell Platform and instead just use Stack
  • Most recently: creating a new haskell-lang.org website instead of collaborating on haskell.org

I've debated in the past giving a comprehensive history of exactly what happened that led to each of these decisions. There is more than enough public information available to demonstrate that:

  • I personally, and FP Complete as a team, put in a lot of effort to collaborate with existing solutions
  • We only resorted to "forking" after our efforts were clearly going nowhere, or creating a new solution from scratch would take less effort than collaborating

Many people have made baseless attacks - usually on Reddit - about how we do these things as power grabs for political purposes. This simply ignores the history and efforts we've made. I'm not going to engage in a he-said-she-said back-and-forth on this. If someone is so mistrusting of me to say that I'm lying through my teeth here, so be it. To tie up this mini-post, I'll quote a comment I made on Reddit (with some minor tweaks) explaining things a bit more.


There is no FP Complete agenda here, or goal outside of what we've stated. You can say things like "dubious overtones" or "feigned altruism" all you want, but it doesn't change the reality of the situation.

The reality is: I and other individuals - inside and outside FP Complete - have tried for years to improve the situation with Hackage, Haskell Platform, Cabal, and haskell.org. The changes you're now seeing come out in the platform are changes I originally agitated for and spent many hours, days, and weeks hashing out with the maintainers.

Stack was released because all efforts to speed up Cabal development were failures. We switched to using Stackage-based package hosting because of the glacial pace of Hackage security. And haskell-lang.org is only being launched because Gershom made unilateral decisions that were detrimental to the content of the site, and undoing those decisions takes far too much time to be worth it.

Honestly, this silly community trop of FP Complete trying to amass power is just stupidity. I got the budget approved to work on this site not for any community reason at all: I pointed out that we were fracturing our own internal documentation efforts because there was no solid, central place to put this stuff due to the problems with haskell.org. The fact that we made this open source and publicly available was due to having a team that loves open source, and hoping to collaborate with other great developers in the community.

I'm sure most of the typical Reddit commenters are going to continue to attack this as "feigned altruism" or whatever. But if any of you are reading this and actually want to go through a real thought experiment on this, think this through:

  1. If FP Complete was just interested in "politics," why would we:
    • Have collaborated on improving haskell.org, Hackage, etc, for so long before making clean breaks?
    • And if by politics you mean "look good to the community," every time we've done something like this we've been shit on by this Reddit hivemind approach. Why would we do it to get community brownie points?
  2. What exact benefit are you thinking FP Complete is getting from being in control of things like haskell-lang.org? The benefit we care about is that there will be a site with good content that we can send new hires, new customers, and evangelize to the non-Haskell community (and even that is just a hobby, not a business interest).
@hvr
Copy link

hvr commented Jul 12, 2016

First off, there's no doubt that you and FP Complete have invested a lot of time and effort into the Haskell ecosystem. Thanks for that! That being said, there's two things I'd like to comment on:

The reality is: I and other individuals - inside and outside FP Complete - have tried for years to improve the situation with Hackage, Haskell Platform, Cabal, and haskell.org. The changes you're now seeing come out in the platform are changes I originally agitated for and spent many hours, days, and weeks hashing out with the maintainers.

Stack was released because all efforts to speed up Cabal development were failures.

I looked at your past Cabal PRs but those seem rather modest code contributions. The list of Hackage PRs looks similar.

I may not know or remember where all these contributions you mention were published even though I'm following Cabal/Hackage development quite closely. Also, other people stumbling over this article may not know what you're referring to either. So maybe you could complete the picture by elaborating what those efforts of yours to improve and "speed up" development of Cabal (and Hackage) were?

And haskell-lang.org is only being launched because Gershom made unilateral decisions that were detrimental to the content of the site, and undoing those decisions takes far too much time to be worth it.

Please stop this character assassination. I know for a fact that Gershom's decisions are fully supported by the Haskell.org committee. So if you want to criticise somebody, you should take it up with the whole committee rather than singling out Gershom.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment