Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make downloads page as simple as possible #221

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

ismailmustafa
Copy link

There are several things I've noticed with the current downloads page that can act as a deterrent to users getting Haskell up and running as quickly as possible:

  • The page is incredibly confusing from the get-go. It's not immediately obvious how to get Haskell from any of the ways mentioned.
  • There's way too much information that we expect a user to ingest before they can even start using Haskell. Most users who visit this page are looking for the easiest way to get up and running with Haskell. Why inundate them with information about sandboxing and global installations when they haven't even had a chance to write a hello world program in Haskell?
  • A description of each of the three methods of installation at the top of the page are mentioned again in each respective section. So why bother describing it at the top?
  • The only benefit provided by the "minimal installer" section is a link to the linux page. The other two links for osx and windows take you to the Haskell platform.

Rather than trying to squeeze as much information as possible into a single page, I've opted for a much simpler approach of showing the user where to get Haskell quickly. If the user wants to know more about the particular method they've chosen, then its all on the page that they just clicked into. Here's what it looks like (I took some inspiration from Scala's download page):

image

I've also moved the unrelated "Additional Libraries" section into its own page called "Packages".

image

Let me know what you think.

- Create new packages page. For now I just copied over the "additional
libraries" section into this new page but it could use a little more
work.
@angerman
Copy link

While we are at it, could we mention that on macOS (in the presence of homebrew) stack, ghc and cabal can alle be installed via brew?

@TikhonJelvis
Copy link
Member

Would it be difficult to provide OS-specific instructions based on the OS a person uses to visit? I've seen this on the downloads pages for other projects (can't recall which ones exactly) and found it to be a good experience.

More broadly, though, the goal of this proposal is simplicity and we shouldn't lose sight of that! It's too easy to go off on a tangent and build up too many options all over again, defeating the point...

@TikhonJelvis
Copy link
Member

TikhonJelvis commented Jan 26, 2018

I agree wholeheartedly with the goals of this proposal. Having too many options is an easy way to turn people off of a project. I remember this being a real problem when I was downloading Eclipse back in high school and was faced with something like a dozen options full of words I didn't know (Java EE?).

The linked Scala page, on the other hand, would have been great. It still offers a choice but makes the choice meaningful and doesn't dazzle me with way too many options.

Here's a screenshot of the Eclipse page I was talking about, from 2010. I found it on a video tutorial on downloading Eclipse. We should aim for a download page that doesn't require a YouTube tutorial!

Eclipse download page from 2010

(Note the scroll bar: those are just the first six options of many.)

@ismailmustafa
Copy link
Author

@TikhonJelvis in this case, I don't think it would make sense for the downloads page to be OS specific since we don't yet know which option they have selected. However, once they click into the Haskell Platform, it detects which OS you are using. The link that the stack button takes you to doesn't auto detect, but the options are clearly presented on the left hand side.

@ismailmustafa
Copy link
Author

@angerman That might be good to add underneath the two buttons. Maybe changing that copy to something like "Looking for alternative ways of installing Haskell? Click here.", and then adding a macOS section to the page it takes you too.


Note that if you are not in a sandbox, this will install the package globally, which is often not what you want, so it is recommended to set up sandboxes in your project directory by running `cabal sandbox init`.

[Go to Hackage →](https://hackage.haskell.org/packages/)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While we're changing things, it would be better at this point to point to the main hackage url rather than the old packages page.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed here 0da454d

@Mistuke
Copy link

Mistuke commented Jan 26, 2018

While we're changing things, can we also mention that on Windows ghc, cabal and stack can be installed via chocolatey?

The download numbers themselves should speak towards their popularity.

@gbaz
Copy link

gbaz commented Jan 26, 2018

I hesitate to jump into this discussion again. That said, adding either brew or chocolatey-specific information here runs the risk of cluttering things, when the point of the PR is to declutter.

At the moment, the haskell platform page does provide a brew route for the platform, but I think that only does "full". A PR to add "minimal" via just brew installing the 3 things would be welcome on the platform page.

Similarly the platform page could add a chocolatey package manager section to windows for minimal, with the actual minimal installer subbed for just the three individual choco install calls.

moving the choco and brew calls to behind a link, in a way that does platform-specific detection, seems to me a good way to keep clutter low.

@Mistuke
Copy link

Mistuke commented Jan 26, 2018

That's fair enough. I'll leave it up to you guys to decide. I just wanted to point out that there are other ways to get the binaries.

@angerman
Copy link

I'm all for reducing the clutter! And I did not mean to add full blown instructions on how to use brew, I believe everyone who has brew knows how to use it; same holds for choco I believe. Just a line "Also available via brew (macOS) or choco (win)" was what I had in mind. Potentially links to the details page with an anchor to the respective subsections migth be helpful.

The "On linux or looking for alternative ways to install" (to me) does not suggest I find brew there. It suggests to me that if I want to go the hard way, that's where I might want to look. But honestly I probably shouldn't look there and just download the binary

Please go ahead and declutter it any way you like! I'm with @Mistuke here, and will leave up to you guys to decide.

- Download stack button now points to stack's install page
- Hackage link now points to main hackage url
@hvr
Copy link

hvr commented Feb 17, 2018

I've recently started looking at Haskell on Windows, and it appears to me that choco-based installs currently seem to provide a better and more uniform experience than the alternatives (and even better than the HP) for when you need to work on Haskell packages which depend on non-trivial things like Gtk+.

@m-renaud
Copy link

m-renaud commented Dec 1, 2018

On Linux, my favorite (new) way to install the Haskell toolchain is ghcup which AFAIK supports most (all?) Linux distros as well as MacOS. I think it would be unfortunate if this wasn't at least mentioned since its been the smoothest experience I've had (even more so after the bootstrap script is available).

Also, one nice to have would be auto-detecting the operating system and showing the appropriate instructions (check out the rustup page for an example). It turns out this can be done relatively easily with JavaScript.

@m-renaud
Copy link

m-renaud commented Dec 1, 2018

Also, consider renaming this to the "Install" page?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants