[Haskell-community] haskell.org download page

Harendra Kumar harendra.kumar at gmail.com
Thu Sep 1 12:48:17 UTC 2016


I started on Haskell last year and I fall in the category of "discovering
it by searching on google" and learning it myself, nobody told me about
Haskell and I did not even know about it before. Let me share my
perspective on this issue. I can vouch for Haskell being a very high
barrier to entry for casually interested and even moderately motivated
people. In the long battle most people will quit before the finish line.

I assume our goal here is to make Haskell popular, successful and
influential. I believe it is already highly successful in the academic
community and among a relatively small community of self motivated people
who are smart enough to see why it is the right choice. What we need is to
make it successful among the bulk of the engineering community who usually
don't care what language they use. When I mention Haskell to anyone I know
of in my engineering circle, they are usually confident that I meant
Pascal. I think Haskell deserves a lot better than that.

I would strongly argue that we should not target the Haskell landing or
first download page for those who already know Haskell, they won't even
need it. It is for those who do not know enough and want to learn more. It
is for luring and then trapping people. Specifically I would say that this
page should not be targeted for students or mentored learners in general.
It should be targeted to self learners. If you are a student, learning
Haskell as part of a course you would have an expert mentor to tell you
what to do. If you are a mentor you should know enough to not need that
page and if you do then you are in the self learner category anyway. If you
are a self motivated person you would anyway find what you need. We need
the website to lure the mass engineering community of casual users or
moderately motivated self learners usually looking for a better way to
solve some problem.

In the engineering community people have little time. Everybody is busy
with their day to day work and nobody has time and motivation to put huge
amount of time and effort to learn something that they do not even know
whether it will be useful. The way we can lure them is by showing how
easily they can solve one of their small day to day problem, using Haskell,
without investing a huge amount of time. That means we need a _zero_
learning build tool. Though build tool is not the only hurdle but it is an
important first step. In my opinion we should not even talk about build
tool user guide for beginners, it should not be required, the tool must be
intuitive enough and the help available with it must be really good. Once
you graduate to advanced usage it is a different matter altogether.

Another point that I want to make is that we should list only _one tool_ on
the front page. Multiple choice is an immediate psychological barrier for
beginners. When the users have a choice they must decide on one out of
many. So either you explain the rationale right there or they will have to
search the internet for reviews etc. In any case it requires an effort to
choose and has a risk of turning them off. The committee should decide on a
single choice after gathering enough information on what is best. They can
ask for a shootout from the competing tools if that's needed.

In my opinion and from my experience learning Haskell for last one year or
so, stack is a pretty good choice at the moment. It fits most of the
requirements of a tool which has an out of the box experience. Though it
may not be perfect it seems to be generally in the right direction
especially for those who want to get started quickly and effortlessly.

-harendra

On 1 September 2016 at 12:39, Gershom B <gershomb at gmail.com> wrote:

> I think this is a very good point being made. We should disengangle
> the installer question from the “getting started” question.  Someone
> on reddit even proposed having two seperate pages entirely.
>
> A getting started page that promoted a stack centric workflow for
> beginners as a good “default path” would be reasonable in my eyes, and
> certainly worth discussing. Certainly if it let us lay the downloads
> page to rest with a single option for a minimal installer (with
> perhaps slightly different branding as discussed on a ticket I linked
> earlier — “Haskell Toolchain” or the like) that provided ghc, stack
> and cabal all, then I think that would be a very good way to go.
>
> That way Nicolas and others who wanted to direct people to the
> downloads page, and then wanted to teach them with one sort of
> approach would be able to do so, people who wanted to direct people to
> the downloads page, and teach them with a stack-based approach would
> be able to do so, and people coming to the site directly could
> immediately find a “getting started page” with a single approach that
> got them up and running quickly, and that approach could well be
> stack-oriented if that’s what people think gives the best experience
> for that particular use case.
>
> (Again, I give the caveat I’m speaking just for myself here, and
> thinking this through as an idea I’d like to hear others’ thoughts
> on).
>
> —gershom
>
>
> On August 31, 2016 at 5:48:41 PM, Nicolas Wu (nicolas.wu at gmail.com) wrote:
> > Hi Paolo,
> >
> > On Tue, Aug 30, 2016 at 1:53 PM Paolo Giarrusso
> > wrote:
> >
> > > > The decision about how to manage projects and their dependencies
> should
> > > be
> > > > open and isn't for beginners, whether that be using stack or cabal:
> both
> > > > have their merits, and I don't want to push one over the other.
> > >
> > > I'm honestly confused what you're arguing. You say this decision isn't
> > > for beginners, yet you propose offering the HP. So how should a
> > > beginner install a package without first deciding whether to use
> > > cabal-install or stack? Or can a beginner meaningfully be expected to
> > > learn using both alternatives?
> > >
> >
> > Sorry for not being clear, my bad. Hopefully I can clarify and elaborate
> a
> > bit more.
> >
> > I think a beginner doesn't usually make the choice of how to use
> > GHC/stack/cabal by themselves; they are usually being instructed by
> someone
> > (or a resource) that has decided that for them. On that front I don't
> think
> > there's a singular best way to approach this; there's diversity in the
> way
> > people approach teaching and that's fine and healthy, there's also
> > diversity in the way people learn and the goals they have with the
> language
> > and that's fine and healthy too. We should be supporting people who want
> to
> > learn the language as well as people who want to contribute to teaching.
> We
> > should respect diversity in those roles; if someone wants their students
> to
> > use only stack then by all means they can do so, that shouldn't stop
> others
> > from using ghc or ghci directly.
> >
> > For instance, if a beginner is just trying to run small examples they see
> > on a blog, then maybe all they need is a call to ghci. If they're
> learning
> > about making a simple binary they might want ghc. If they want to have a
> > whole managed project, perhaps they're after either stack or cabal. The
> > point is that they're usually guided by something, and those guides do
> > differ on what they prefer and recommend. The default download should
> > easily support these different modes of learning and teaching.
> >
> >
> > > Also, do both tools have their merits *for beginners*? We're talking
> > > of cabal as-is, not of the ongoing work on new-build.
> > >
> >
> > I'm talking about having a default that bundles tools like ghc, cabal,
> and
> > stack, since these are the main tools our community has for compiling and
> > executing Haskell code. I don't want to force people into one of
> > these--whether that be students or educators. In all cases the default
> > download recommendation should support all of these since they are the
> > mainstream tools we use. To avoid confusion I think there should be only
> > one recommended option on the main download page (and here the HP minimal
> > seems to satisfy this, and stack seems to preclude this). The download
> page
> > should also have a link to other resources (such as the HP Full, stack
> > only, and other distributions like Haskell for Mac) on another page.
> >
> > Since there seems to be confusion about how the committee comes to a
> > consensus I should note that at this point I'm only speaking for myself
> > here. This is just my recommendation, and I'm open and willing to listen
> to
> > other views before considering what I think is best. I am not usually
> > overtly vocal in these discussions, but I do read what is said and form
> my
> > own opinions.
> >
> > Best wishes,
> >
> > Nick
> > _______________________________________________
> > Haskell-community mailing list
> > Haskell-community at haskell.org
> > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-community
> >
> _______________________________________________
> Haskell-community mailing list
> Haskell-community at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-community
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-community/attachments/20160901/049de99a/attachment-0001.html>


More information about the Haskell-community mailing list