<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>I think that one thing that's come up repeatedly but seems to not
      be getting enough attention is this:</p>
    <p>The existence of (any number of) simpler ways to install the
      software is entirely moot in terms of the new-user experience if
      the typical new user is unaware of them. In short, when
      considering attracting new users to the platform, the ONLY method
      is whatever the download-for-Windows instructions on haskell.org
      displays. All other methods do not exist.</p>
    <p>This is where I think some of the sense of elitism can come from:
      A lot of responses assume that everybody at every level of
      exposure has full access to all the knowledge embodied in the
      community. Furthermore, the goals as they were laid out early in
      the discussion (make it easy to have multiple versions installed
      at the same time, make it easy to update the components
      separately) are things that matter only to experienced Haskell
      developers, not new users, and those experiences Haskell
      developers are both more likely to know about alternate methods
      available and more likely to be able to manage to figure this
      stuff out on their own. <br>
    </p>
    <p>Given that, I believe basically the complaint (and I'm here
      paraphrasing for others, so correct me if I'm wrong) is that the
      method that appears front and centre on the download-for-Windows
      instructions on haskell.org should always be the simplest method
      for entirely new users with minimal-to-zero knowledge of Haskell
      to use. (Of course, there's no harm in having a link to "advanced"
      instructions for those that want them.) </p>
    <p>Think about Python, as an example of a language that has
      tremendous outreach, is often recommended as a great first
      language to learn, and garners new adherents daily. If you go to
      Python.org and mouse over "Downloads", it says "Download for
      Windows" and there's a single button labelled "Python 3.8.2"
      clicking that gives you an executable installer that you run,
      click next a bunch of times, and you're done. They don't even
      bother asking if you want 32 or 64 bit up-front. It's as easy as
      installing a game. Anyone who's used Python knows that there are
      myriad other ways of getting and updating it, myriad other
      components you can also install, etc., etc. But that's left to
      advanced instructions or for people who know where to find those
      resources. The core "get you started as a new user" experience is
      something that anybody can navigate trivially. <br>
    </p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 2020-04-27 5:30 a.m., Adam wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAHVMtHZaN=ir7GG_duMFJPmMzwJuYHKRu1=_=0tpn8MFMHYGZA@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>Hi Anthony,</div>
        <div><br>
        </div>
        <div>I'll quickly say that I don't approve of the tone of your
          email; it is needlessly inflammatory ("abhorrence", really?),
          and indeed incorrect: PowerShell _is_ a standard Windows tool
          as already addressed in this email chain. I personally don't
          like it as a tool, but that doesn't make it any less standard.
          With that said, I'll move on:<br>
        </div>
        <div><br>
        </div>
        <div>If you're not a fan of Chocolately (me either!) there's
          another tool called Scoop that gives you a package manager for
          Windows but avoids global installation. If on the other hand
          you're simply not a fan of package managers in Windows, see
          Richard O'Keefe and Mikhail Glushenkov's replies regarding
          installing Stack/Cabal respectively in a more direct fashion.<br>
        </div>
        <div><br>
        </div>
        <div>I do think you highlight an important oversight that I
          think is especially important for new users: each additional
          step required before having a working Haskell environment will
          exponentially reduce the number of people exposed to the
          language in a meaningful and helpful way - it's a problem of
          UX more than technology, but a very important problem
          nonetheless.
          <div><br>
          </div>
          <div>Richard O'Keefe mentioned using Stack, which I find is a
            very easy route to running Haskell as it gets the compiler
            and (helpfully) restricts the package list to packages that
            interoperate, thus allowing students new to the language to
            avoid any superfluous problems while trying to focus on
            learning. <a
              href="https://tech.fpcomplete.com/haskell/get-started/windows"
              moz-do-not-send="true">https://tech.fpcomplete.com/haskell/get-started/windows</a>
            should have you covered. In an ideal world we wouldn't need
            even that extra Stack step in between plain Windows and
            Windows+Haskell, but that ideal world would be ignoring the
            meta-problem of package compatibility that can be thorny, so
            it seems like a decent trade for now. What are your thoughts
            on this?</div>
        </div>
        <div><br>
        </div>
        <div>With regards GHC error messages versus Hugs I'm not
          familiar with the latter, but do struggle with the former,
          especially when compared to other (albeit simpler) languages
          like Elm. I recently saw an article on a (fairly recent?)
          capability to tune the error messages that GHC emits: <a
            href="https://kodimensional.dev/type-errors"
            moz-do-not-send="true">https://kodimensional.dev/type-errors</a>
          - and I hope that as more people take this on the ecosystem as
          a whole will become a bit friendlier and easier for me to
          understand :) I wonder whether Hugs was able to emit
          friendlier errors because the language was simpler then, or
          whether it's just that we're in an inconvenient time
          in-between having both a more powerful set of
          abstractions/inference and having human readable errors!</div>
        <div><br>
        </div>
        <div>One thing I find that helps whenever an error message has
          type variables in it (`a1` etc.) is to enable `{-# LANGUAGE
          ScopedTypeVariables #-}` and tell the compiler what I _think_
          the type should be in a few instances, and that tends to iron
          out my misunderstandings.<br>
        </div>
        <div><br>
        </div>
        <div>Cheers,</div>
        <div>Adam<br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Sun, 26 Apr 2020 at 01:23,
          Anthony Clayden <<a
            href="mailto:anthony_clayden@clear.net.nz"
            moz-do-not-send="true">anthony_clayden@clear.net.nz</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div dir="auto">Remember GHC's motto is 'avoid success at all
            costs'. Then naturally it is prohibitively difficult to get
            to use GHC.</div>
          <div dir="auto"><br>
          </div>
          <div dir="auto">For students/people who you want to encourage
            to love Haskell, especially on Windows,</div>
          <div dir="auto">I'm astonished you're not using Hugs,
            especially WinHugs (2-click install).</div>
          <div dir="auto">Despite being over a dozen years unsupported
            it is still orders-of-magnitude more friendly than GHC,</div>
          <div dir="auto"> and has plenty of functionality (in Hugsmode)
            for undergraduate level. </div>
          <div dir="auto">What's more Haskell from the intro texts just
            works on it;</div>
          <div dir="auto">whereas GHC throws all sorts of obscure
            advanced type errors.</div>
          <div dir="auto"><br>
          </div>
          <div dir="auto">I don't think powershell is a 'standard tool'.
            I use mostly Windows machines,</div>
          <div dir="auto">I'm aware of powershell, I've never used it.</div>
          <div dir="auto"><br>
          </div>
          <div dir="auto">Chocolatey is an abhorence. Fortunately I've
            never had to use it;</div>
          <div dir="auto">I don't know why GHC would inflict it on
            anybody.</div>
          <div dir="auto"><br>
          </div>
          <div dir="auto">Increasingly, GHC HQ is a cult/elite that
            doesn't want any new members.</div>
          <div dir="auto">The difficulties in trying to use GHC just
            show how exclusive it has become.</div>
          <div dir="auto"><br>
          </div>
          <div dir="auto"><br>
          </div>
          <div dir="auto"><br>
          </div>
          <div dir="auto">AntC</div>
          <div dir="auto"><br>
          </div>
          <div dir="auto">
            <pre style="white-space:pre-wrap;background-color:rgb(255,255,255)">> I appreciate that these things are standard tools for Windows
developers, but it's worth noting how much harder it can make things
for completely new people (either new developers or new to Windows).

> At the start of the year, I prepared install instructions for university
students who would be using Haskell as part of a first year CS
course. We needed to use GHC 8.6.5 because certain libraries were not
available for GHC 8.8.x (their base upper bounds hadn't updated, which
ruled out haskell-dev), and tried to use Chocolatey as an experiment.

> It was remarkably tough to get students set up on their own machines. I
was planning on recommending the Haskell Platform installer for Semester
2 this year, and am disappointed to find that it no longer exists.

> If it becomes too hard for students to install Haskell on their own
Windows machines, it may become too hard for us to use Haskell as an
educational tool, and I'd consider that a tragedy.


</pre>
          </div>
          _______________________________________________<br>
          Haskell-Cafe mailing list<br>
          To (un)subscribe, modify options or view archives go to:<br>
          <a
            href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe"
            rel="noreferrer" target="_blank" moz-do-not-send="true">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
          Only members subscribed via the mailman list are allowed to
          post.</blockquote>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
<a class="moz-txt-link-freetext" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a>
Only members subscribed via the mailman list are allowed to post.</pre>
    </blockquote>
  </body>
</html>