Cleanup
This commit is contained in:
parent
8656e5b40c
commit
c7e6ff89fe
5 changed files with 1 additions and 420 deletions
|
@ -70,9 +70,6 @@
|
|||
- file: posts/new-conduit-tutorial.md
|
||||
title: New Conduit Tutorial
|
||||
day: 2016-10-13
|
||||
- file: posts/respect.md
|
||||
title: Respect
|
||||
day: 2016-09-29
|
||||
- file: posts/proposed-conduit-reskin.md
|
||||
title: Proposed conduit reskin
|
||||
day: 2016-09-23
|
||||
|
|
|
@ -1,131 +0,0 @@
|
|||
Yesterday I
|
||||
[put out a blog post](http://www.snoyman.com/blog/2016/08/haskell-org-evil-cabal)
|
||||
describing a very problematic situation with the haskell.org
|
||||
committee. As often happens with this kind of thing, a
|
||||
[very lively discussion occurred on Reddit](https://www.reddit.com/r/haskell/comments/4zzmoa/haskellorg_and_the_evil_cabal/). There
|
||||
are many repeating themes over there, so instead of trying to address
|
||||
the points in that discussion, I'm going to give some responses in
|
||||
this post.
|
||||
|
||||
* Firstly: thank you to those of you who subscribed to the
|
||||
haskell-community list and made your voices heard. That was the
|
||||
best response to the blog post I could have hoped for, and it
|
||||
happened. At this point, the
|
||||
[Twitter poll](https://twitter.com/snoyberg/status/769732460879962112)
|
||||
and mailing list discussion both point to a desire to have Stack
|
||||
as the primary option on the downloads page (the latter is a tied
|
||||
vote of 6 to 6, indicating the change proposed should not
|
||||
happen). As far as I'm concerned, the committee has two options:
|
||||
|
||||
* Listen to the voices of the community and make Stack the primary
|
||||
option on haskell.org.
|
||||
|
||||
* Ignore the community voices and put the Haskell Platform at the
|
||||
top of the page, thus confirming my claims of an oligarchy.
|
||||
|
||||
* Clarification: I do not believe anyone involved in this is an evil
|
||||
person. I thought my wording was unambiguous, but apparently
|
||||
not. The collusion among the projects is what gets the term "Evil
|
||||
Cabal." That said, I _do_ believe that there were bad actions
|
||||
taken by individuals involved, and I've called some of those
|
||||
out. There's a much longer backstory here of the nepotism I refer
|
||||
to, starting at least at ICFP 2014 and GPS Haskell, but that's a
|
||||
story I'm not getting into right now.
|
||||
|
||||
* A few people who
|
||||
[_should_ know better](https://twitter.com/snoyberg/status/770085132493545476)
|
||||
claimed that there's no reason for my complaint given that the
|
||||
Haskell Platform now ships with Stack. This is incorrect for
|
||||
multiple reasons. Firstly, one of my complaints in the blog post
|
||||
is that _we've never discussed technical merits_, so such a claim
|
||||
should be seen as absurd immediately. There's a
|
||||
[great Reddit comment](https://www.reddit.com/r/haskell/comments/4zzmoa/haskellorg_and_the_evil_cabal/d70pffl)
|
||||
explaining that this inclusion is just misdirection. In any event,
|
||||
here are just
|
||||
[140 characters worth of reasons the Haskell Platform is inferior to Stack for a new user](https://twitter.com/snoyberg/status/770092223748837378)
|
||||
|
||||
* There is no clear "getting started" guide for new users. Giving
|
||||
someone a download is only half the battle. If they don't know
|
||||
where to go next, the download it useless. (Compare with
|
||||
[haskell-lang's getting started](https://haskell-lang.org/get-started).)
|
||||
|
||||
* Choice confusion: saying "HP vs Stack" is actually
|
||||
misleading. The real question is "HP+cabal-install vs HP+Stack
|
||||
vs Stack". A new user is not in a strong enough position to make
|
||||
this decision.
|
||||
|
||||
* Stack will select the appropriate version of GHC to be used
|
||||
based on the project the user is working on. Bundling GHC with
|
||||
Stack insists on a specific GHC version. (I'm not arguing that
|
||||
there's no benefit to including GHC in the installer, but there
|
||||
are definitely downsides too.)
|
||||
|
||||
* The HP release process has historically been very slow, whereas
|
||||
the Stack release process is a well oiled machine. I have major
|
||||
concerns about users being stuck with out-of-date Stack
|
||||
executables by using the HP and running into already fixed
|
||||
bugs. This isn't hypothetical: GHC for Mac OS X shipped an old
|
||||
Stack version for a while resulting in many bug reports. (This
|
||||
is an example of haskell.org download page decisions causing
|
||||
extra work for the Stack team.)
|
||||
|
||||
* Bonus point (not on Twitter): Stack on its own is very well
|
||||
tested. We have little experience in the wild of HP+Stack. Just
|
||||
assuming it will work is scary, and goes against the history of
|
||||
buggy Haskell Platform releases.
|
||||
|
||||
* A lot of the discussion seemed to assume I was saying to get rid
|
||||
of cabal-install entirely. In fact, my blog post said the exact
|
||||
opposite: let it continue if people want to work on it. I'm
|
||||
talking exclusively about the story we tell to new users. Again,
|
||||
technical discussions should have occurred long ago about what's
|
||||
the best course of action. I'm claiming that Stack is by far the
|
||||
best option for the vast majority of new users. The committee has
|
||||
never to my knowledge argued publicly against that.
|
||||
|
||||
* There was a lot of "tone policing," saying things like I need to
|
||||
have more patience, work with not against the committee, follow
|
||||
the principle of charity, etc. If this is the first time I raised
|
||||
these issues, you'd be right. Unfortunately, there is a long
|
||||
history here of many years of wasted time and effort. The reason I
|
||||
always link back to
|
||||
[pull request #130](https://github.com/haskell-infra/hl/pull/130)
|
||||
is because it represents the tipping point from "work with the
|
||||
committee without making a fuss" to "I need to make all of these
|
||||
decisions as public as possible so bad decisions don't slip in."
|
||||
|
||||
Let me ask you all: if I had just responded to the mailing list
|
||||
thread asking for a different course of action to be taken, would
|
||||
most of you know that this drama was happening? This needed to be
|
||||
public, so that no more massive changes could
|
||||
[slip under everyone's radar](https://github.com/haskell-infra/hl/pull/122).
|
||||
|
||||
Also: it's ironic to see people accusing me of violating the
|
||||
principle of charity by reading my words in the most negative way
|
||||
they possibly can. That's true irony,
|
||||
[not just misrepresenting someone's position](https://www.reddit.com/r/haskell/comments/4zzmoa/haskellorg_and_the_evil_cabal/d70bysm).
|
||||
|
||||
* For a long time, people have attacked FP Complete every chance
|
||||
they could, presumably because attacking a company is easier than
|
||||
attacking an individual. There is no "FP Complete" conspiracy
|
||||
going on here. I decided to write this blog post on my own, not
|
||||
part of any FP Complete strategy. I discussed it with others, most
|
||||
of whom do _not_ work for FP Complete. In fact, most of the
|
||||
discussion happened
|
||||
[publicly, on Twitter](https://twitter.com/snoyberg/status/769732460879962112),
|
||||
for you all to see.
|
||||
|
||||
If you want to attack someone, attack me. Be intellectually
|
||||
honest. And while you're at it: try to actually attack the
|
||||
arguments made instead of resorting to silly ad hominems about
|
||||
power grabs. Such tin-foil hattery is unbecoming.
|
||||
|
||||
* There's a legitimate discussion about how we get feedback from
|
||||
multiple forms of communication (mailing lists, Twitter,
|
||||
Reddit). While that's a great question to ask and a conversation
|
||||
to have, it really misses the point here completely: we're looking
|
||||
for a very simple vote on three options. We can trivially put up a
|
||||
Google Form or similar and link to it from all media. We did this
|
||||
just fine with the FTP debate. It feels _almost_ disingenuous to
|
||||
claim that we don't know how to deal with this problem when we've
|
||||
already dealt with it in the past.
|
|
@ -1,234 +0,0 @@
|
|||
There's no point being coy or saying anything but what I actually
|
||||
believe, and saying it bluntly. So here it is:
|
||||
|
||||
> The haskell.org committee has consistently engaged in tactics which
|
||||
> silence the voices of all non-members, and stacks the committee to
|
||||
> prevent dissenting opinions from joining.
|
||||
|
||||
I've said various parts of this previously. You may have heard me say
|
||||
things like the haskell.org oligarchy, refer to the "evil cabal of
|
||||
Haskell" (referring to the nepotism which exists amongst Hackage,
|
||||
cabal-install, haskell.org, and the Haskell Platform), or engage in
|
||||
lengthy debates with committee members about their actions.
|
||||
|
||||
_This is a pretty long post, if you want to see my request, please
|
||||
[jump to the end](#my-request)._
|
||||
|
||||
## The backstory
|
||||
|
||||
To summarize a quick backstory: many of us in the community have been
|
||||
dissatisfied with the four members of the "evil cabal" for years, and
|
||||
have made efforts to improve them, only to be met with opposition. One
|
||||
by one, some of us have been replacing these components with
|
||||
alternatives. Hackage's downtime led to an
|
||||
[FP Complete mirror](https://www.fpcomplete.com/blog/2015/03/hackage-mirror)
|
||||
and more reliable doc hosting on
|
||||
[stackage.org](https://www.stackage.org). cabal-install's weaknesses
|
||||
led to the creation of
|
||||
[the Stack build tool](https://haskellstack.org). Haskell Platform's
|
||||
poor curation process and broken installer led to Stackage Nightly and
|
||||
LTS Haskell, as well some of the Stack featureset. And most recently,
|
||||
the haskell.org committee's poor decisions (as I'll demonstrate
|
||||
shortly) for website content led to resurrecting
|
||||
[haskell-lang.org](https://haskell-lang.org/), a website devoted to
|
||||
actually making Haskell a more approachable language.
|
||||
|
||||
As you can see, at this point all four members of the evil cabal have
|
||||
been replaced with better options, and community discussions and user
|
||||
statistics indicate that most users are switching over. (For an
|
||||
example of statistics, have a look at the
|
||||
[package download count on Hackage](http://hackage.haskell.org/packages/top),
|
||||
indicating that the vast majority of users are no longer downloading
|
||||
packages via cabal-install+Hackage.) I frankly have no problem at all
|
||||
with the continued existence and usage of these four projects; if
|
||||
people want to spend their time on them and use what I consider to be
|
||||
inferior tools, let them. The only remaining pain point is that new,
|
||||
unsuspecting users will arrive at
|
||||
[haskell.org download page](https://www.haskell.org/downloads) instead
|
||||
of the much more intuitive
|
||||
[haskell-lang.org get started page](https://haskell-lang.org/get-started).
|
||||
|
||||
__EDIT__ Ignore that bit about the download statistics, it's apparently due to
|
||||
the CDN usage on Hackage. Instead, one need only look at how often a question
|
||||
about Haskell Platform is answered with "don't do that, use Stack instead." For
|
||||
a great example, see the discussion of [the Rust
|
||||
Platform](https://www.reddit.com/r/haskell/comments/4uxgbl/the_rust_platform/).
|
||||
|
||||
## The newest attempt
|
||||
|
||||
Alright, with that out of the way, why am I writing this blog post
|
||||
now? It's due to
|
||||
[this post on the Haskell-community mailing list](https://mail.haskell.org/pipermail/haskell-community/2016-August/000118.html),
|
||||
proposing promoting the Haskell Platform above all other options (yet
|
||||
again). Never heard of that mailing list? That's not particularly
|
||||
surprising. That mailing list was created in response to a series of
|
||||
complaints by me, claiming that the haskell.org committee acted in a
|
||||
secretive way and ignored all community input. The response to this
|
||||
was, instead of listening to the many community discussions already
|
||||
occuring on Twitter and Reddit, to create a brand new mailing list,
|
||||
have an echo chamber of people sympathetic to Evil Cabal thought, and
|
||||
insist that "real" community discussions go on there.
|
||||
|
||||
We're seeing this process work exactly as the committee wants. Let me
|
||||
demonstrate clearly how. At the time of writing this blog post, three
|
||||
people have voted in favor of promoting the HP on haskell-community,
|
||||
including two haskell.org committee members (Adam Foltzer and John
|
||||
Wiegley) and the person who originally proposed it, Jason Dagit. There
|
||||
were two objections: Chris Allen and myself. So with a sample size of
|
||||
5, we see that 60% of the community wants the HP.
|
||||
|
||||
## The lie
|
||||
|
||||
A few hours after this mailing list post, I put out a
|
||||
[poll on Twitter](https://twitter.com/snoyberg/status/769732460879962112). At
|
||||
time of writing (4 hours or so into the poll), we have 122 votes, with
|
||||
85% in favor of Stack, and 15% in favor of some flavor of the Haskell
|
||||
Platform (or, as we'll now be calling, the
|
||||
[Perfect Haskell Platform](https://twitter.com/snoyberg/status/769752895482896384)). Before
|
||||
anyone gets too excited: yes, a poll of my Twitter followers is
|
||||
obviously a biased sample, but no more biased than the
|
||||
haskell-community list. My real point is this:
|
||||
|
||||
__The haskell.org committee is posing questions of significant
|
||||
importance in echo chambers where they'll get the response they want
|
||||
from a small group of people, instead of engaging the community
|
||||
correctly on platforms that make participation easy.__
|
||||
|
||||
This isn't the first time this has happened. When we last discussed
|
||||
haskell.org download page content, a similar phenonmonon
|
||||
occurred. Magically, the haskell-community discussion had a bias in
|
||||
favor of the Haskell Platform. In response, I created a Google Form,
|
||||
and Stack was the clear victor:
|
||||
|
||||
<a href="https://docs.google.com/forms/d/1w2wKSxn5YN4LtSXYHvFT2IFw_BDaT_2cjUkP9pDeqLQ/viewanalytics"><img src="https://i.sli.mg/cGLAWL.png" width="100%"></a>
|
||||
|
||||
Yet despite this clear feedback, the committee went ahead with putting
|
||||
minimal installers at the top, not Stack (they weren't quite brazen
|
||||
enough to put the Perfect Haskell Platform at the top or even above
|
||||
Stack, for which I _am_ grateful).
|
||||
|
||||
## Proper behavior
|
||||
|
||||
As I see it, the haskell.org committee has two correct options to
|
||||
move forward with making the download page decision:
|
||||
|
||||
* Accept the votes from my Twitter poll in addition to the haskell-community votes
|
||||
* Decide that my poll is invalid for some reason, and do a proper poll
|
||||
of the community, with proper advertisement on Reddit, Twitter, the
|
||||
more popular mailing lists, etc
|
||||
|
||||
If past behavior is any indication though, I predict a third outcome:
|
||||
stating that the only valid form of feedback is on the
|
||||
haskell-community mailing list, ignore the clear community groundswell
|
||||
_against_ their decisions, and continue to make unilateral, oligarchic
|
||||
decisions. Namely: promote the Haskell Platform, thereby misleading
|
||||
all unfortunate new Haskellers who end up at haskell.org instead the
|
||||
much better haskell-lang.org.
|
||||
|
||||
## Further evidence
|
||||
|
||||
Everyone's always asking me for more of the details on what's gone on
|
||||
here, especially given how some people vilify my actions. I've never
|
||||
felt comfortable putting that kind of content on blogs shared with
|
||||
other authors when some of those others don't want me to call out the
|
||||
negative actions. However, thankfully I now have my own blog to state
|
||||
this from. This won't include every punch thrown in this long and
|
||||
sordid saga, but hopefully will give a much better idea of what's
|
||||
going on here.
|
||||
|
||||
* Not only are conversations held in private by the committee, but:
|
||||
|
||||
* Their private nature is used to shut down commentary on committee actions
|
||||
* There is open deception about what was actually discussed in private
|
||||
|
||||
Evidence: see
|
||||
[this troubling Reddit thread](https://www.reddit.com/r/haskell/comments/4ruqbl/new_haskell_community_nexus_site_launched/d57xtbu). I
|
||||
made the (very true) claim that Gershom made a unilateral decision
|
||||
about the downloads page. You can see the evidence of this
|
||||
[where he made that decision](https://github.com/haskell-infra/hl/pull/122). Adam
|
||||
Foltzer tried to call my claim false, and ultimately
|
||||
[Gershom himself confirmed I was correct](https://www.reddit.com/r/haskell/comments/4ruqbl/new_haskell_community_nexus_site_launched/d582jzk). Adam
|
||||
then claimed offense at this whole discussion and backed out.
|
||||
|
||||
* When I
|
||||
[proposed making Stack the preferred download option](https://github.com/haskell-infra/hl/pull/130)
|
||||
(at a time when Stack did not appear _at all_ on haskell.org),
|
||||
Gershom summarilly closed the pull request. I have referenced this
|
||||
pull request many times. I don't believe any well intentioned
|
||||
person can read that long discussion and believe that the
|
||||
haskell.org committee has a healthy process for maintaining a
|
||||
community website.
|
||||
|
||||
* At no point in any of these discussions has the committee opened
|
||||
up discussion to either the technical advantages of the HP vs
|
||||
Stack, or the relative popularity. Instead, we get discussions of
|
||||
committee process, internal votes, an inability to make changes at
|
||||
certain periods of time based on previously made and undocumented
|
||||
decisions.
|
||||
|
||||
* We often hear statements from committee members about the strong
|
||||
support for their actions, or lack of controversy on an
|
||||
issue. These claims are many times patently false to any objective
|
||||
third party. For example,
|
||||
[Gershom claimed](https://www.reddit.com/r/haskell/comments/4ruqbl/new_haskell_community_nexus_site_launched/d582jzk)
|
||||
that the pull request #122 that he unilaterally decided to merge
|
||||
was "thought to be entirely mundane and uncontroversial." Everyone
|
||||
is welcome to
|
||||
[read the Reddit discussion](https://www.reddit.com/r/haskell/comments/3b1yuk/haskellinfrastructure_fwd_new_haskell_platform/)
|
||||
and decide if Gershom is giving a fair summary or not.
|
||||
|
||||
* Chris Done - a coworker of mine - spent his own time on creating
|
||||
the first haskell-lang.org, due to his unhappiness with
|
||||
[the homepage at that time](https://wiki.haskell.org/Haskell). His
|
||||
new site was met with much enthusiasm, and he was pressured by
|
||||
many to get it onto haskell.org itself. What ensued was almost a
|
||||
year of pain working out the details, having content changed to
|
||||
match the evil cabal narrative, and eventually a rollout. At the
|
||||
end of this, Chris was - without any given reason - not admitted
|
||||
to the haskell.org committee, denying him access to share an
|
||||
opinion on what should be on the site he designed and created.
|
||||
|
||||
## My request
|
||||
|
||||
Thank you for either getting through all of that, or skipping to this
|
||||
final section. Here's my request: so many people have told me that
|
||||
they feel disenfranchised by these false-flag "community" processes,
|
||||
and just give up on speaking up. This allows the negative behavior
|
||||
we've seen dominate the evil cabal in Haskell for so long. If you've
|
||||
already moved on to Stack and Stackage yourself, you're mostly free of
|
||||
this cabal. I'm asking you to think of the next generation of Haskell
|
||||
users, and speak up.
|
||||
|
||||
Most powerful course of action: subscribe to the
|
||||
[haskell-community mailing list](https://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-community)
|
||||
and speak out about how the committee has handled the downloads
|
||||
page. Don't just echo my message here: say what you believe. If you
|
||||
think they've done a good job, then say so. If you think (like I do)
|
||||
that they've done a bad job, and are misleading users with their
|
||||
decisions, say that.
|
||||
|
||||
Next best: comment about this on Reddit or Twitter. Get your voice out
|
||||
there and be heard, even if it isn't in the haskell.org committee echo
|
||||
chamber.
|
||||
|
||||
In addition to that: expect me to put out more polls on Twitter and
|
||||
possibly elsewhere. Please vote! We've let a select few make damaging
|
||||
decisions for too long, make your voice heard. I'm confident that we
|
||||
will have a more user-friendly Haskell experience if we actually start
|
||||
listening to users.
|
||||
|
||||
And finally: as long as it is being mismanaged, __steer people away
|
||||
from haskell.org__. This is why we created haskell-lang.org. Link to
|
||||
it, tell your friends about it, warn people away from haskell.org, and
|
||||
maybe even
|
||||
[help improve its content](http://github.com/haskell-lang/haskell-lang#contributing-content).
|
||||
|
||||
* * *
|
||||
|
||||
Archive link of the Reddit and Github threads quoted above:
|
||||
|
||||
* http://archive.is/7zFkb
|
||||
* http://archive.is/NTzUD
|
||||
* http://archive.is/roexm
|
||||
* http://archive.is/uwdzr
|
||||
* http://archive.is/uduu5
|
|
@ -1,31 +0,0 @@
|
|||
As I'm sure many people in the Haskell community have seen, Simon PJ
|
||||
put out
|
||||
[an email entitled "Respect"](https://mail.haskell.org/pipermail/haskell/2016-September/024995.html). If
|
||||
you haven't read it yet, I think you should. As is usually the case,
|
||||
Simon shows by example what we should strive for.
|
||||
|
||||
I put out a
|
||||
[Tweet](https://twitter.com/snoyberg/status/780255158898921473)
|
||||
referring to
|
||||
[a Gist](https://gist.github.com/snoyberg/1f70ed1754cac2e5f1f1bd268c2b279c)
|
||||
I wrote two weeks back. At the time, I did not put the content on this
|
||||
blog, as I didn't want to make a bad situation worse. However,
|
||||
especially given Simon's comments, now seems like a good time to put
|
||||
out this message in the same medium (this blog) that the original
|
||||
inflammatory messaging came out in:
|
||||
|
||||
> A few weeks back I wrote a blog post (and a second clarifying post)
|
||||
> on what I called the Evil Cabal. There is no sense in repeating the
|
||||
> content here, or even referencing it. The title is the main point.
|
||||
>
|
||||
> It was a mistake, and an offensive one, to use insulting terms like
|
||||
> evil in that blog post. What I said is true: I have taken to using
|
||||
> that term when discussing privately some of the situation that has
|
||||
> occured. I now see that that was the original problem: while the
|
||||
> term started as a joke and a pun, it set up a bad precedent for
|
||||
> conversation. I should not have used it privately, and definitely
|
||||
> should not have publicized it.
|
||||
>
|
||||
> To those active members in projects I maligned, I apologize. I
|
||||
> should not have brought the discourse to that level.
|
||||
|
|
@ -9,30 +9,10 @@ proposing a way to make things better, is a waste of 280
|
|||
characters. So I'd like to expand on where I think we, the Haskell
|
||||
community, can do better.
|
||||
|
||||
To try and prevent the flamewars which I'm sure are about to start,
|
||||
let me give some guidelines on __who shouldn't read this blog post__:
|
||||
|
||||
* If you think that programming languages should succeed on purely
|
||||
technical merits, and silly "marketing activities" like writing
|
||||
newbie-oriented tutorials and making engaging screencasts is unfair
|
||||
competition, you shouldn't read this blog post.
|
||||
* If you think that broken dependency solving, Hackage downtime,
|
||||
confusing cabal-install incantations, and problematic global package
|
||||
databases in the Haskell Platform have had no ill effect on Haskell
|
||||
adoption, you shouldn't read this blog post.
|
||||
* If you think that new users who give up after 5 minutes of confusion
|
||||
on a website weren't serious enough in the first place and we
|
||||
shouldn't be sad that we lost them, you shouldn't read this blog
|
||||
post.
|
||||
|
||||
And most likely, you shouldn't post this to /r/haskell. That's not
|
||||
going to end well.
|
||||
|
||||
## Attacking Haskell's Flaws
|
||||
|
||||
As the Twitter discussion yesterday pointed out, there are undoubtedly
|
||||
flaws in Haskell. It may be __inflammatory__ to admit that publicly,
|
||||
but so be it. Every language has flaws. Haskell is blessed to also
|
||||
flaws in Haskell. Every language has flaws. Haskell is blessed to also
|
||||
have some of the greatest strengths in any programming language
|
||||
available today: beautiful concurrency, a powerful _and_ useful type
|
||||
system, a plethora of real-world libraries, and (as of recently)
|
||||
|
|
Loading…
Reference in a new issue