[Haskell-community] Request for comment: New haskell.org download page
Gershom B
gershomb at gmail.com
Thu Sep 24 14:10:36 UTC 2015
On September 24, 2015 at 2:33:12 AM, Michael Snoyman (michael at fpcomplete.com) wrote:
> Firstly, thank you John for working on this.
>
> Secondly, I'd like to make clear what I think the goal for the downloads
> page should be: new users. Experienced Haskellers are unlikely to even
> visit this downloads page, and are likely well aware of the situation
> around tooling to make an informed decision regardless of what this page
> says. I'd like us to constrain discussion to "what's best for a new user."
> I haven't heard anyone object to this idea before.
>
> I'll repeat what I've said in various other places: given the current state
> of the Haskell Platform and the fact that it's known to cause many problems
> - especially for new users - it should not be top option. I recommend
> putting Stack at the top. My arguments are:
Given the concerns about the current platform and the global package database, I would advocate considering a Minimal-first order. The caveat here is that minimal, which includes stack for Windows and OS X, should also include stack for Linux installs — this is just a matter of a pull request to add stack instructions to the various install pages, so can be part if this discussion.
Stack covers certain but not all new-user scenarios well. The main thing is, I think when people go to a “download” page, they expect to be able to directly download a compiler or interpreter. That is to say, they want GHC, and the tools to use it, directly. Which is also how most documentation in the world describes using Haskell. If users download stack first, they must also then use it to download GHC. And at this point, if they want to run or use ghc or ghci, they must do so _via_ stack, and will probably find themselves in situations creating yaml files earlier than they may have otherwise.
In my mind, this is not an optimal new-user experience, though it is a good curated experience for certain use cases to be sure.
Pointing people to GHC and cabal and also stack allows them to A) avoid the global package database issue but B) nonetheless use “bare” ghc and ghci when they desire and C) then choose to use cabal or stack to manage their package installs and builds, and hence grow into any particular style they want.
My point being this — I agree that until we make the platform more minimal, it is perhaps best that it not be the first option on the page. However, I do _not_ want the first option to be something that forces the choices between cabal and stack — rather I want it to be something that enables both choices.
All of Michael’s points in favor of Stack do not evaporate when it _also_ ships with a ghc and a cabal binary directly. So let’s just make sure all our minimal instructions do this, and it suffices!
Cheers,
Gershom
P.S. On another note, I want to warn against the hypothetical one size-fits-all “new user” as a good benchmark in this sense: “experienced haskellers” are more uniformly alike than new users are. This is because experienced haskellers all share a certain common knowledge base. New users are all completely different. Some want to build deployable projects early on, others want to explore books, others want to build a few modules for their own use for recreational math, still others are following along with a particular course. Some have only windows experience and expect to click all the things, some only ruby experience and expect a giant base library, some are old *nix hands and don’t know why everything can’t just use autoconf, etc. Experienced haskell users can adapt themselves to a variety of workflows more easily, because they know what’s going on. Default workflow certainly affects new-users much more. But, because they are all different, the same default workflow won’t be the same pleasant experience for every new user.
More information about the Haskell-community
mailing list