In the light of feedback, let me attempt a summary of my position and what I am proposing.
Proposal: That a button be added to www.haskell.org that says something like “try haskell” which links to GHCUp.
Technical:
The technical argument is very narrow. There is community consensus that HLS is a core part of “installing Haskell”. GHCUp is the reliable way to install HLS, and is the recommendation of the HLS team:
Direct installation from source, while possible via cabal install haskell-language-server
and stack install --stack-yaml stack-<GHCVER>.yaml
, is not recommended for most people. ~ Installation — haskell-language-server 1.7.0.0 documentation
If this technical judgement is accepted, neither cabal nor stack can be included as valid ways to “install Haskell” for new users.
This is true whether or not the GHCUp installation of stack meets the requirements of the stack team.
Social:
About 6 years ago, I recall sitting in a Haskell course being shamed and ridiculed for choosing to use stack. The instructor stopped presenting and, instead, watched over me as I uninstalled stack, hyperventilating about its shortcomings.
Events such as this are historically ubiquitous and often traumatic for everyone involved. The community has a trauma response whenever something vaguely akin to the old debates pops up, and I apologize if I haven’t handled this with enough sensitivity. There has been fault on both sides - I personally regret public comments about cabal I have made in the past - but it is canon that the stack project has been treated very shabbily.
Political:
it is currently politically untenable to treat ghcup and stack on anything other than an equal footing ~ https://github.com/haskell-infra/www.haskell.org/issues/166#issuecomment-1086726154
Technically, stack and ghcup are not on an equal footing, so the main reason progress towards a single onboarding is impeded is political.
The problem with the politics in this situation is manifold:
- Politics is at its best when it is open and subject to public scrutiny. After reading as widely as I could, I cannot discern who the stack team are and what their positioning is. Private and Board-level only lines of communication are breeding grounds for nepotism and dysfunction (as Michael Snoyman taught me).
- The political tradeoff in place puts the needs of new users in opposition to the need to make amends for past wrongs and build trust with the stack team.
- Setting the problem up as political encourages technical details to be used as ammunition, so that technical correctness is necessarily obfuscated in order to survive the politics.
In this context, set up as a political tradeoff, closely-held opinion and politics will ride roughshod over any appeal to the public good. The stack team will likely see technically valid arguments to promote GHCUp as an excuse to bash stack yet again, and will veto progress, via private comms at senior levels.
Solution:
If the technicals outlined above are correct, the problem doesn’t have to be constructed this way. We can both have a big button that reliably installs a version of what is a “Haskell installation” suitable for new users, and seek to build trust and empowerment of the stack team. They are not inextricably linked and they are both the right thing to do.
Perhaps some of them hang out here, but I also suggest you spread your message on Reddit, haskell-cafe and Twitter, at the very least. … I suspect they’re not particularly interested in chiming in
I can do this, but I worry it will be counter-productive to have the messaging cast by a single community member with little in the way of political clout.
If stack-aligned members of the community do not trust posting on this discourse (perhaps because they are fearful of the big pile-ons that this community is reknown for) then surely this is a core problem for the Foundation.
An alternative to this individualistic approach is for the Foundation to take ownership of the reality that the stack team has not been involved in public discussions, and seek to fix this. Facilitating a transparent, safe and centralised place to work things out must be the minimum standard for the leadership role the Foundation has. I imagine the stack team has representation at Board level, at least, and I would ask the Foundation for public comment representing their point-of-view.
Regardless, the status quo solution is dysfunctional, has low probability of success, and sounds bruising and exhausting. My proposal is to stop making these same mistakes over and over again. Acknowledge and separate the necessary reparation and healing work from the technical decision to promote GHCUp as a reliable way to install Haskell for new users.