
I'm wondering how we are all feeling about the platform these days.... I notice that in the new Haskell pages, the Platform is definitely not the recommended way to go: The main download pages suggests the compiler and base libraries as the first option - and the text for the Platform (second option) pretty much steers folks away from it. Of the per-OS download pages, only the Windows version even mentions it. Does this mean that we don't want to consider continuing with it? It is a lot of community effort to put out a Platform release - we shouldn't do it if we don't really want it. That said, I note that the other ways to "officially get" Haskell look, to my eye, very ad hoc. Many of the options involve multiple steps, and exactly what one is getting isn't clear. It hardly looks like there is now an "official, correct" way to setup Haskell. The Platform arose in an era before sandboxes and before curated library sets like Stackage and LTS. Last time we set direction was several years ago. These new features and development have clearly changed the landscape for use to reconsider what to do. I don't think the status quo for the Platform is now viable - mostly as evidenced by waning interest in maintaining it. I offer several ways we could proceed: *1) Abandon the Platform.* GHC is release in source and binary form. Other package various installers, with more or less things, for various OSes. *2) Slim the Platform.* Pare it back to GHC + base + a smaller set of "essential" libs + tools. Keeps a consistent build layout and installation mechanism for Haskell. *3) Re-conceive the Platform.* Take a very minimal install approach, coupled with close integration with a curated library set that makes it easy to have a rich canonical, stable environment. This was the core idea around my "GPS Haskell" thoughts from last September - but there would be much to work out in this direction. Thoughts? — Mark

On 2015-03-21 at 18:54:26 +0100, Mark Lentczner wrote: [...]
The Platform arose in an era before sandboxes and before curated library sets like Stackage and LTS. Last time we set direction was several years ago. These new features and development have clearly changed the landscape for use to reconsider what to do.
[...]
Thoughts?
My biggest complaint about the current HP is that it pollutes the global package database with additional packages which leak into `cabal sandbox`es. This causes `cabal sandbox` to provide quite different sandbox environments for HP environments compared to a non-HP environment without those additional packages pre-installed. Currently GHC/Cabal knows about a global package db and a user package db (the user pkg db is is what gets replaced/shadowed by cabal sandboxes). Maybe we need a 3rd package db sitting between the global and the user package db that interacts better with cabal sandboxes? Cheers, hvr

I also thought about it recently. IIRC ghc can already deal with any number of stacked package dbs; we only need to expose this somehow through cabal. On 22/03/15 11:52, Herbert Valerio Riedel wrote:
On 2015-03-21 at 18:54:26 +0100, Mark Lentczner wrote:
[...]
The Platform arose in an era before sandboxes and before curated library sets like Stackage and LTS. Last time we set direction was several years ago. These new features and development have clearly changed the landscape for use to reconsider what to do.
[...]
Thoughts?
My biggest complaint about the current HP is that it pollutes the global package database with additional packages which leak into `cabal sandbox`es. This causes `cabal sandbox` to provide quite different sandbox environments for HP environments compared to a non-HP environment without those additional packages pre-installed.
Currently GHC/Cabal knows about a global package db and a user package db (the user pkg db is is what gets replaced/shadowed by cabal sandboxes). Maybe we need a 3rd package db sitting between the global and the user package db that interacts better with cabal sandboxes?
Cheers, hvr _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

Hi, Am Sonntag, den 22.03.2015, 10:52 +0100 schrieb Herbert Valerio Riedel:
Currently GHC/Cabal knows about a global package db and a user package db (the user pkg db is is what gets replaced/shadowed by cabal sandboxes). Maybe we need a 3rd package db sitting between the global and the user package db that interacts better with cabal sandboxes?
this would also be great for distributions, which also provide packages that should not (necessarily) in sandboxes, but are installed system wide. Greetings, Joachim -- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0xF0FBF51F Debian Developer: nomeata@debian.org

I have to say that I'm quite surprised this conversation is happening at all. As far as I knew before doing some research in advance of this post, the Haskell Platform is *the* way to install Haskell on a fresh machine. It's certainly what I've relied on in getting Haskell on my machines (both MacOS 10.8). While I personally don't feel the need for the HP to have some curated set of libraries (especially now that there are other curated sets available), I do feel a strong need to have it be nice, shiny, and easy to install. At least for Mac, I don't know of a suitable replacement.
I feel like we, as a community, ask a tremendous amount from our users.* By eliminating the HP, we'll be asking more from users before they're even a proper part of community. This seems like a step in the wrong direction, to me.
Richard
* Here are a few ways in which we ask a ton from users:
- Users have to figure out which libraries to use. Many basic tasks (e.g. parsing, regular expressions) have competing packages, and it's hard to know which is appropriate.
- Users have to deal with a very intricate type system. Basic libraries (like the new Prelude, `vector`, `lens`) use this complexity to their advantage, but perhaps to newcomers' disadvantage. (I'm well aware I'm, in some degree, to blame here!)
- Users have to deal with long, intricate error messages. This comes hand-in-hand with the previous point. We GHC hackers try our best, but I know we fall short of the mark here.
- Once a year, when the new GHC comes out, everything breaks.
- Cabal hell.
In return, the community gives and gives and is ever patient with newcomers. This is wonderful, and I attribute Haskell's growth to the friendliness of the community. But we should be aware of just how steep the curve is.
On Mar 22, 2015, at 12:08 PM, Joachim Breitner
Hi,
Am Sonntag, den 22.03.2015, 10:52 +0100 schrieb Herbert Valerio Riedel:
Currently GHC/Cabal knows about a global package db and a user package db (the user pkg db is is what gets replaced/shadowed by cabal sandboxes). Maybe we need a 3rd package db sitting between the global and the user package db that interacts better with cabal sandboxes?
this would also be great for distributions, which also provide packages that should not (necessarily) in sandboxes, but are installed system wide.
Greetings, Joachim
-- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0xF0FBF51F Debian Developer: nomeata@debian.org _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

On Sun, Mar 22, 2015 at 9:35 PM, Richard Eisenberg
I have to say that I'm quite surprised this conversation is happening at all. As far as I knew before doing some research in advance of this post, the Haskell Platform is *the* way to install Haskell on a fresh machine. It's certainly what I've relied on in getting Haskell on my machines (both MacOS 10.8). While I personally don't feel the need for the HP to have some curated set of libraries (especially now that there are other curated sets available), I do feel a strong need to have it be nice, shiny, and easy to install. At least for Mac, I don't know of a suitable replacement.
That's interesting, because http://ghcformacosx.github.io is pretty much the only thing anyone recommends to Mac users any more, and in #haskell people seem to actively steer everyone away from the Platform in all its incarnations. I think the time when the Platform release got held up for over a year waiting for "important ghc fixes" pretty much killed all relevance for the Platform as it currently exists. Maybe a reformulation and relaunch will help, but from here it looks pretty doomed/dead. -- brandon s allbery kf8nh sine nomine associates allbery.b@gmail.com ballbery@sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net

On Mar 22, 2015, at 9:40 PM, Brandon Allbery
That's interesting, because http://ghcformacosx.github.io is pretty much the only thing anyone recommends to Mac users any more, and in #haskell people seem to actively steer everyone away from the Platform in all its incarnations.
I do indeed think that this is interesting, because this thread is the first time I had ever heard of ghcformacosx. I've used Haskell on a Mac daily for several years now. I subscribe to (and read at least subject lines from) Haskell-cafe and Haskell mailing lists -- including Haskell Weekly News and HCAR -- though I'm only occasionally on reddit and very rarely look at #haskell. Besides, I run MacOS 10.8, and so ghcformacosx doesn't help me, anyway. (I installed 10.9 once upon a time. It slowed down my machine so much I preferred to reformat and roll back to 10.8, even though I was facing down a nasty deadline.) At the least, this end of the debate shows me that the community has some disagreement about what today's status quo is, an important fact to settle on before charting a course for the future. Richard

richarch, you should *still* be able to use the ghc-for-osx bundle, just
not launch the "help setup your path" app
eg, if you donwlaod the current release from
https://ghcformacosx.github.io/ and add
/Applications/ghc-7.8.4.app/Contents/bin/ to your path, you should be able
to use the included ghc et al on any >= 10.7 system.
a simple test would be to launch ghci as follows
/Applications/ghc-7.8.4.app/Contents/bin/ghci
ghc for osx USES the same GHC build that OS X haskell platform uses.
that said, mark HAS been the general custodian of official OS X builds
because he's been the only person who seems to be able to get docbook
working properly on osx
On Sun, Mar 22, 2015 at 9:55 PM, Richard Eisenberg
On Mar 22, 2015, at 9:40 PM, Brandon Allbery
wrote: That's interesting, because http://ghcformacosx.github.io is pretty much the only thing anyone recommends to Mac users any more, and in #haskell people seem to actively steer everyone away from the Platform in all its incarnations.
I do indeed think that this is interesting, because this thread is the first time I had ever heard of ghcformacosx. I've used Haskell on a Mac daily for several years now. I subscribe to (and read at least subject lines from) Haskell-cafe and Haskell mailing lists -- including Haskell Weekly News and HCAR -- though I'm only occasionally on reddit and very rarely look at #haskell. Besides, I run MacOS 10.8, and so ghcformacosx doesn't help me, anyway. (I installed 10.9 once upon a time. It slowed down my machine so much I preferred to reformat and roll back to 10.8, even though I was facing down a nasty deadline.)
At the least, this end of the debate shows me that the community has some disagreement about what today's status quo is, an important fact to settle on before charting a course for the future.
Richard
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

I'm sure we could do better at publicity, but your email made me wonder, so
the first thing I tried was a search on haskell-café that brings up several
threads with relevant subjects that mention ghcformacosx, including an HWN.
http://search.gmane.org/search.php?group=gmane.comp.lang.haskell.cafe&query=ghcformacosx
I believe that you haven't heard of it, but, if somebody asks about GHC on
OS X, the advice is pretty consistent.
It is pretty well the single-step, OS X-focused installer people ask for.
All that's missing is more unified branding across different operating
systems.
Anthony
On Sunday, March 22, 2015, Richard Eisenberg
On Mar 22, 2015, at 9:40 PM, Brandon Allbery
javascript:_e(%7B%7D,'cvml','allbery.b@gmail.com');> wrote: That's interesting, because http://ghcformacosx.github.io is pretty much the only thing anyone recommends to Mac users any more, and in #haskell people seem to actively steer everyone away from the Platform in all its incarnations.
I do indeed think that this is interesting, because this thread is the first time I had ever heard of ghcformacosx. I've used Haskell on a Mac daily for several years now. I subscribe to (and read at least subject lines from) Haskell-cafe and Haskell mailing lists -- including Haskell Weekly News and HCAR -- though I'm only occasionally on reddit and very rarely look at #haskell. Besides, I run MacOS 10.8, and so ghcformacosx doesn't help me, anyway. (I installed 10.9 once upon a time. It slowed down my machine so much I preferred to reformat and roll back to 10.8, even though I was facing down a nasty deadline.)
At the least, this end of the debate shows me that the community has some disagreement about what today's status quo is, an important fact to settle on before charting a course for the future.
Richard

On Sun, 2015-03-22 at 10:52 +0100, Herbert Valerio Riedel wrote:
My biggest complaint about the current HP is that it pollutes the global package database with additional packages which leak into `cabal sandbox`es. This causes `cabal sandbox` to provide quite different sandbox environments for HP environments compared to a non-HP environment without those additional packages pre-installed.
Currently GHC/Cabal knows about a global package db and a user package db (the user pkg db is is what gets replaced/shadowed by cabal sandboxes). Maybe we need a 3rd package db sitting between the global and the user package db that interacts better with cabal sandboxes?
I think this is a good idea. As far as I can see there's no conflict between the advocates of mini and maxi installers (as aimed at new users) except for this behaviour of new sandboxes. All we need to do is make "cabal sandbox init" start with a minimal package set, rather than taking the global package db. It's true that the ghc/platform installers could help with this, e.g. by shipping an environment file (a new 7.10 feature) that lists all the core packages, and cabal-install could use this as a basis for new sandboxes. Duncan

Mark Lentczner wrote:
1) Abandon the Platform…
2) Slim the Platform. Pare it back to GHC + base + a smaller set of "essential" libs + tools. Keeps a consistent build layout and installation mechanism for Haskell.
3) Re-conceive the Platform. Take a very minimal install approach, coupled with close integration with a curated library set that makes it easy to have a rich canonical, stable environment. This was the core idea around my "GPS Haskell" thoughts from last September - but there would be much to work out in this direction.
I vote for (3) but in a way that it would *not* be much work. We should definitely do the Platform, but with much *less* work. The most important reason we need the Platform is as a default selection of quality basic libraries. We should not abandon that concept. Curated package sets do not replace that - the Platform is not just packages that build together. Nor do OS packagers. The platform is a community-wide set of basic default packages that are mature, well tested, all work together well, and stable. The second most important role of the Platform is a web site where you can get a clear picture of how to download and install a default Haskell installation for your platform, and a simple view of where we are in the parade of releases. That should also continue. The hardest work of the Platform was its role as a way to bootstrap a Haskell installation. That is what made it so hard for HP to keep up with GHC releases, and what consequently gave people the impression that HP is always old. That work doesn't need to be done as part of the Platform anymore. We should leverage other good work people are doing to create installers, and stop doing it as part of the HP process. The most important part of an HP release should be a cabal package that provides the packages in the platform, at the right versions, with a specification of the recommended GHC version as a pre-requisite. Perhaps we can also provide an HP-branded slick installer for some platforms that does everything in one click, built as a thin wrapper of some existing installer. But that should not delay the official release of an HP version. It's just a nice-to-have extra. Once we pare down the work needed for an HP release, we should release new versions of HP quite often - *more* often than GHC releases, not less often. Another thing we should fix is the (now false) impression that HP gets in the way of installing other packages and versions due to cabal hell. We should make "require-sandbox" the default setting in the cabal config file. I would go further - I would add a cabal feature to create a sandbox automatically unless "--user" or "--global" is specified explicitly. I would make "foo installed" a default constraint (that is easy to override) for all platform packages, which solves virtually all cabal hell problems (assuming you are using a sandbox) and will not keep things old if we release often. Thanks, Yitz

It should go without saying that the first sentiment we all likely have is
gratitude for all the work Mark has put into the platform, as well as all
of the other contributors and maintainers the platform has had over the
years. It hasn't just been work on producing the platform itself, but also
for setting up an expectation in the Haskell world for high quality,
reliable libraries. Even if the current incarnation of the platform is in
jeopardy, I hope that we continue with that attitude going forward.
I spend a lot of time working on Stackage, and obviously there's quite a
bit of overlap between Stackage, Haskell Platform, and LTS Haskell. For
purposes of this discussion, I think it's important to separate out
different features of the platform, and see how we may continue or
discontinue each individually:
1. A quality-approved set of libraries. As I see it, the process of coming
up with recommended libraries can continue completely independently of any
other work.
2. A method for installing GHC and build tools. I personally think that it
makes sense to separate out this aspect of the platform from all others.
MinGHC is an example of such a project: a minimal set of functionality for
bootstrapping a more complete Haskell development environment.
3. Prebuilt binary package databases. As I've mentioned in the past, and
others have here, there are problems with the current approach of putting
the packages in the global package database. I'd personally rather see this
aspect of the platform give way to more robust solutions.
And as we've already discussed in the past regarding GPS, there's
definitely room to add *more* to the platform with better build dependency
solving. LTS Haskell was specifically an effort to try to advance that
aspect of GPS.
Putting this together, I think it leads to a new approach for the platform:
minimalistic installers, curated package sets (ala LTS), recommended
packages (ala the current platform set), and a robust means for installing
these (e.g., cabal sandboxes). The Haskell world has advanced since the
initial HP work, maybe all that's needed now is upgrading to the newest
tooling available.
I realize I haven't put down any concrete "next steps" here. I definitely
have more ideas than I could put into this (already quite long) email. I
think a smaller task force dedicated to improving the tooling situation is
the best next step, and I'd be happy to kick off such an effort with other
interested individuals.
On Sat, Mar 21, 2015 at 7:54 PM Mark Lentczner
I'm wondering how we are all feeling about the platform these days....
I notice that in the new Haskell pages, the Platform is definitely not the recommended way to go: The main download pages suggests the compiler and base libraries as the first option - and the text for the Platform (second option) pretty much steers folks away from it. Of the per-OS download pages, only the Windows version even mentions it.
Does this mean that we don't want to consider continuing with it? It is a lot of community effort to put out a Platform release - we shouldn't do it if we don't really want it.
That said, I note that the other ways to "officially get" Haskell look, to my eye, very ad hoc. Many of the options involve multiple steps, and exactly what one is getting isn't clear. It hardly looks like there is now an "official, correct" way to setup Haskell.
The Platform arose in an era before sandboxes and before curated library sets like Stackage and LTS. Last time we set direction was several years ago. These new features and development have clearly changed the landscape for use to reconsider what to do.
I don't think the status quo for the Platform is now viable - mostly as evidenced by waning interest in maintaining it. I offer several ways we could proceed:
*1) Abandon the Platform.* GHC is release in source and binary form. Other package various installers, with more or less things, for various OSes.
*2) Slim the Platform.* Pare it back to GHC + base + a smaller set of "essential" libs + tools. Keeps a consistent build layout and installation mechanism for Haskell.
*3) Re-conceive the Platform.* Take a very minimal install approach, coupled with close integration with a curated library set that makes it easy to have a rich canonical, stable environment. This was the core idea around my "GPS Haskell" thoughts from last September - but there would be much to work out in this direction.
Thoughts?
— Mark
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

On 2015-03-22, at 15:59, Michael Snoyman
2. A method for installing GHC and build tools. I personally think that it makes sense to separate out this aspect of the platform from all others. MinGHC is an example of such a project: a minimal set of functionality for bootstrapping a more complete Haskell development environment. 3. Prebuilt binary package databases. As I've mentioned in the past, and others have here, there are problems with the current approach of putting the packages in the global package database. I'd personally rather see this aspect of the platform give way to more robust solutions.
I think a smaller task force dedicated to improving the tooling situation is the best next step, and I'd be happy to kick off such an effort with other interested individuals.
I’d be very happy to contribute to this effort. In fact, I’ve already spent some of time addressing these issues. Halcyon already provides a method for installing GHC, cabal-install, build-tools, and other Haskell programs — on OS X, and many Linux distributions. FreeBSD and Windows are on the roadmap. Additionally, Halcyon allows you to declare native OS libraries as build-time (or run-time…) dependencies for Haskell programs. They will be installed into a user-controlled directory, by wrapping around the native OS package manager. Currently, this is supported on Debian-based and RedHat-based Linux distributions, which partially implements a long-standing cabal-install feature request: https://github.com/mietek/halcyon/issues/38 https://github.com/haskell/cabal/issues/571 See the Haskell Language source code for an example: https://halcyon.sh/examples/#haskell-language See the Halcyon reference for details: https://halcyon.sh/reference/#halcyon_sandbox_extra_os_packages https://halcyon.sh/reference/#halcyon_extra_os_packages -- Miëtek https://mietek.io

Richard: The problem isn't the age itself, but rather the compatibility
problems that age introduces. It can be quite difficult as a new user to
get all of the libraries you want to use to play well with the platform.
There's usually a way to make it work if you know what you're doing, but
the platform is largely targeted at those who don't. This is particularly
bad because library compatibility problems are inherently annoying to
solve, or at least they feel that way to me.
I think Gershom framed the problem well. From the discussion, it sounds
like there are a lot of potential solutions, mostly in the category of
"re-conceive the platform".
On Mon, Mar 23, 2015 at 9:32 AM, Miëtek Bak
On 2015-03-22, at 15:59, Michael Snoyman
wrote: 2. A method for installing GHC and build tools. I personally think that it makes sense to separate out this aspect of the platform from all others. MinGHC is an example of such a project: a minimal set of functionality for bootstrapping a more complete Haskell development environment. 3. Prebuilt binary package databases. As I've mentioned in the past, and others have here, there are problems with the current approach of putting the packages in the global package database. I'd personally rather see this aspect of the platform give way to more robust solutions.
I think a smaller task force dedicated to improving the tooling situation is the best next step, and I'd be happy to kick off such an effort with other interested individuals.
I’d be very happy to contribute to this effort. In fact, I’ve already spent some of time addressing these issues.
Halcyon already provides a method for installing GHC, cabal-install, build-tools, and other Haskell programs — on OS X, and many Linux distributions. FreeBSD and Windows are on the roadmap.
Additionally, Halcyon allows you to declare native OS libraries as build-time (or run-time…) dependencies for Haskell programs. They will be installed into a user-controlled directory, by wrapping around the native OS package manager.
Currently, this is supported on Debian-based and RedHat-based Linux distributions, which partially implements a long-standing cabal-install feature request: https://github.com/mietek/halcyon/issues/38 https://github.com/haskell/cabal/issues/571
See the Haskell Language source code for an example: https://halcyon.sh/examples/#haskell-language
See the Halcyon reference for details: https://halcyon.sh/reference/#halcyon_sandbox_extra_os_packages https://halcyon.sh/reference/#halcyon_extra_os_packages
-- Miëtek https://mietek.io
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

I notice that in the new Haskell pages, the Platform is definitely not the recommended way to go: Like Richard, I was astonished by this. I always thought that the Haskell Platform was the route of choice to install GHC, together with a respectable set of libraries. It’s certainly what I install on a new machine! Let’s not forget the large but non-vocal set of ill-informed and/or would-be users, who want a simple answer to “How do I install GHC?”. It may be that the HP formula needs re-visiting, but I think it’s very important that we continue to give a very simple (click here) answer to that question. Simon From: Libraries [mailto:libraries-bounces@haskell.org] On Behalf Of Mark Lentczner Sent: 21 March 2015 17:54 To: ghc-devs@haskell.org; Haskell Libraries; haskell-platform@projects.haskell.org; haskell-infrastructure@community.galois.com Subject: wither the Platform I'm wondering how we are all feeling about the platform these days.... I notice that in the new Haskell pages, the Platform is definitely not the recommended way to go: The main download pages suggests the compiler and base libraries as the first option - and the text for the Platform (second option) pretty much steers folks away from it. Of the per-OS download pages, only the Windows version even mentions it. Does this mean that we don't want to consider continuing with it? It is a lot of community effort to put out a Platform release - we shouldn't do it if we don't really want it. That said, I note that the other ways to "officially get" Haskell look, to my eye, very ad hoc. Many of the options involve multiple steps, and exactly what one is getting isn't clear. It hardly looks like there is now an "official, correct" way to setup Haskell. The Platform arose in an era before sandboxes and before curated library sets like Stackage and LTS. Last time we set direction was several years ago. These new features and development have clearly changed the landscape for use to reconsider what to do. I don't think the status quo for the Platform is now viable - mostly as evidenced by waning interest in maintaining it. I offer several ways we could proceed: 1) Abandon the Platform. GHC is release in source and binary form. Other package various installers, with more or less things, for various OSes. 2) Slim the Platform. Pare it back to GHC + base + a smaller set of "essential" libs + tools. Keeps a consistent build layout and installation mechanism for Haskell. 3) Re-conceive the Platform. Take a very minimal install approach, coupled with close integration with a curated library set that makes it easy to have a rich canonical, stable environment. This was the core idea around my "GPS Haskell" thoughts from last September - but there would be much to work out in this direction. Thoughts? — Mark

From the downloads https://www.haskell.org/ghc/download_ghc_7_8_4 page on the GHC homepage:
Version 7.8.4 (released December 23rd 2014)
Stop!
For most users, we recommend installing the Haskell Platform
http://hackage.haskell.org/platform/ instead of GHC. The current Haskell
Platform release includes a recent GHC release as well as some other tools
(such as cabal), and a larger set of libraries that are known to work
together.
On Mon, Mar 23, 2015 at 11:01 AM, Simon Peyton Jones
I notice that in the new Haskell pages, the Platform is definitely not the recommended way to go:
Like Richard, I was astonished by this. I always thought that the Haskell Platform was *the* route of choice to install GHC, together with a respectable set of libraries. It’s certainly what I install on a new machine!
Let’s not forget the large but non-vocal set of ill-informed and/or would-be users, who want a simple answer to “How do I install GHC?”. It may be that the HP formula needs re-visiting, but I think it’s very important that we continue to give a very simple (click here) answer to that question.
Simon
*From:* Libraries [mailto:libraries-bounces@haskell.org] *On Behalf Of *Mark Lentczner *Sent:* 21 March 2015 17:54 *To:* ghc-devs@haskell.org; Haskell Libraries; haskell-platform@projects.haskell.org; haskell-infrastructure@community.galois.com *Subject:* wither the Platform
I'm wondering how we are all feeling about the platform these days....
I notice that in the new Haskell pages, the Platform is definitely not the recommended way to go: The main download pages suggests the compiler and base libraries as the first option - and the text for the Platform (second option) pretty much steers folks away from it. Of the per-OS download pages, only the Windows version even mentions it.
Does this mean that we don't want to consider continuing with it? It is a lot of community effort to put out a Platform release - we shouldn't do it if we don't really want it.
That said, I note that the other ways to "officially get" Haskell look, to my eye, very ad hoc. Many of the options involve multiple steps, and exactly what one is getting isn't clear. It hardly looks like there is now an "official, correct" way to setup Haskell.
The Platform arose in an era before sandboxes and before curated library sets like Stackage and LTS. Last time we set direction was several years ago. These new features and development have clearly changed the landscape for use to reconsider what to do.
I don't think the status quo for the Platform is now viable - mostly as evidenced by waning interest in maintaining it. I offer several ways we could proceed:
*1) Abandon the Platform.* GHC is release in source and binary form. Other package various installers, with more or less things, for various OSes.
*2) Slim the Platform.* Pare it back to GHC + base + a smaller set of "essential" libs + tools. Keeps a consistent build layout and installation mechanism for Haskell.
*3) Re-conceive the Platform.* Take a very minimal install approach, coupled with close integration with a curated library set that makes it easy to have a rich canonical, stable environment. This was the core idea around my "GPS Haskell" thoughts from last September - but there would be much to work out in this direction.
Thoughts?
— Mark
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

On 2015-03-23 at 11:20:36 +0100, Thomas Miedema wrote: [...]
For most users, we recommend installing the Haskell Platform http://hackage.haskell.org/platform/ instead of GHC. The current Haskell Platform release includes a recent GHC release as well as some other tools (such as cabal), and a larger set of libraries that are known to work together.
Btw, I've always wondered a little bit about the last part, namely "set of libraries that are known to work together"... what is actually meant by that? Does it simply refer to providing a selection of package-versions that form a valid coherent/simultaneous Cabal install plan? Cheers, hvr

On Mon, Mar 23, 2015 at 3:20 AM, Thomas Miedema
From the downloads https://www.haskell.org/ghc/download_ghc_7_8_4 page on the GHC homepage:
Alas, that warning has never been effective. But it is moot anyway: Start from the shiny Haskell.org page and see where you land!

A common sentiment I see here is that the Platform always seems out of date. That has always been true, and to a degree by design: It is the stable set, not the wild west. Historically, the first release of a major new GHC was seen as needing a bit of a trial period before we enshrined it in a Platform release. Hence, they lagged. There are also other concerns like stable release schedule (which the Platform has been poor at, but has always been a goal). GHC has made great strides in being much more stable out of the gate. And the Platform has been significantly automated recently. For example, there is already an Alpha of the Platform for 7.10 RC3. But it still takes person-power to run it, test it, and get it out. And there is still the issue of stable release times. If you want latest GHC, and latest libs - then Platform is not the way to go. A solid question is: Where do we want to direct the mass of the community? At head? At latest release? At some older, but now stabilized point? What do we want their experience to be? We will best served if the answer is pretty much right for the bulk of the community: not just newcomers, not just people doing production work, not just hobbiests... all of them. Most other language systems manage to have a single distribution that works for the majority of the community, and most of them are content to have much better stability and support. Python put out 2.7.0 in 2010, and 2.7.9 last Dec. It is still supporting 2.7 line (with source and library compatibility) while it is off releasing 3.3 line. This would be for us like deciding to support and update 7.8, and the pre-FTP Prelude for another four years. Which wouldn't be so bad...

+1
An important example of the last point is an introductory programming
course using Haskell. The students will mostly have Windows and Mac
laptops. Having a very simple (click here) way to get students set up with
Haskell is important for such a course.
On Mon, Mar 23, 2015 at 7:01 AM, Simon Peyton Jones
I notice that in the new Haskell pages, the Platform is definitely not the recommended way to go:
Like Richard, I was astonished by this. I always thought that the Haskell Platform was *the* route of choice to install GHC, together with a respectable set of libraries. It’s certainly what I install on a new machine!
Let’s not forget the large but non-vocal set of ill-informed and/or would-be users, who want a simple answer to “How do I install GHC?”. It may be that the HP formula needs re-visiting, but I think it’s very important that we continue to give a very simple (click here) answer to that question.
Simon
*From:* Libraries [mailto:libraries-bounces@haskell.org] *On Behalf Of *Mark Lentczner *Sent:* 21 March 2015 17:54 *To:* ghc-devs@haskell.org; Haskell Libraries; haskell-platform@projects.haskell.org; haskell-infrastructure@community.galois.com *Subject:* wither the Platform
I'm wondering how we are all feeling about the platform these days....
I notice that in the new Haskell pages, the Platform is definitely not the recommended way to go: The main download pages suggests the compiler and base libraries as the first option - and the text for the Platform (second option) pretty much steers folks away from it. Of the per-OS download pages, only the Windows version even mentions it.
Does this mean that we don't want to consider continuing with it? It is a lot of community effort to put out a Platform release - we shouldn't do it if we don't really want it.
That said, I note that the other ways to "officially get" Haskell look, to my eye, very ad hoc. Many of the options involve multiple steps, and exactly what one is getting isn't clear. It hardly looks like there is now an "official, correct" way to setup Haskell.
The Platform arose in an era before sandboxes and before curated library sets like Stackage and LTS. Last time we set direction was several years ago. These new features and development have clearly changed the landscape for use to reconsider what to do.
I don't think the status quo for the Platform is now viable - mostly as evidenced by waning interest in maintaining it. I offer several ways we could proceed:
*1) Abandon the Platform.* GHC is release in source and binary form. Other package various installers, with more or less things, for various OSes.
*2) Slim the Platform.* Pare it back to GHC + base + a smaller set of "essential" libs + tools. Keeps a consistent build layout and installation mechanism for Haskell.
*3) Re-conceive the Platform.* Take a very minimal install approach, coupled with close integration with a curated library set that makes it easy to have a rich canonical, stable environment. This was the core idea around my "GPS Haskell" thoughts from last September - but there would be much to work out in this direction.
Thoughts?
— Mark
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

On Mon, Mar 23, 2015 at 3:01 AM, Simon Peyton Jones
I notice that in the new Haskell pages, the Platform is definitely not the recommended way to go:
Like Richard, I was astonished by this. I always thought that the Haskell Platform was *the* route of choice to install GHC, together with a respectable set of libraries. It’s certainly what I install on a new machine!
I do too...! But follow the new Haskell.org pages like you are a user "just want to install Haskell"... you'll never end up with the Platform. It looks like the Platform deprecated on the Haskell.org site for Linux and OS X in June https://github.com/haskell-infra/hl/commit/4ecad2973c162194cf038fd35769df028..., and for Windows in Jan https://github.com/haskell-infra/hl/commit/6277ba664b4ac83deda54624e7cfa2ec1... . *Infrastructure team:* Was there a discussion and decision to do that somewhere? Let’s not forget the large but non-vocal set of ill-informed and/or
would-be users, who want a simple answer to “How do I install GHC?”. It may be that the HP formula needs re-visiting, but I think it’s very important that we continue to give a very simple (click here) answer to that question.
As evidenced by yourself, and those that spoke up here, there is also a vocal, well-informed set of users who want such a thing as well.

On March 23, 2015 at 10:02:11 AM, Mark Lentczner (mark.lentczner@gmail.com) wrote:
I do too...! But follow the new Haskell.org pages like you are a user "just want to install Haskell"... you'll never end up with the Platform.
It looks like the Platform deprecated on the Haskell.org site for Linux and OS X in June , and for Windows in Jan
. *Infrastructure team:* Was there a discussion and decision to do that somewhere?
I thought the current language on the page was rather balanced? That said, the initial people working on the site strongly leaned towards recommending minimal downloads over the platform in general, and as OS X and Windows developed good minimal installers the site was updated to point to them. In the editorial process on the site we, actually worked to make sure the platform _was_ highlighted more than it had been. And every time the site has come under public review (three times thus far, at least) the issue of minimal installers vs. platform was contentious, but with the former voice dominating. Note that there remains an issue under discussion about making the presentation of the two alternatives more balanced yet: https://github.com/haskell-infra/hl/issues/55 (patches and pull requests welcome!). In any case, here is my problem. I would like us to be in a situation where we can always say “use the platform” to new users. I don’t think we are there, because new users will insist on using whatever libraries they read about as the latest and greatest, and those libraries do necessarily take care to ensure platform-compatability. (And if you tell them that straying from the platform is not for the inexperienced, they will snap at you and call you condescending, and insist they know what they are doing… shrug). Since we cannot mass-alter this sort of attitude among new users, then the next best thing would be to mass-alter the attitude among people who write not-platform-compatible libraries. But that is hard to do as well! (A “badge” on hackage for platform-compatible packages would do wonders, I think). So, in the meantime, we need to get the centralized, uniform platform installers into a shape where we _can_ uniformly recommend them. And, as I suggested, it seems to me the way to go about doing that is decoupling the “library curation” element of the platform from the “installing haskell” element. That, or ruthlessly marking packages on hackage that do not work with the current platform with a big red X :-) Cheers, Gershom

On Mon, Mar 23, 2015 at 7:27 AM, Gershom B
I thought the current language on the page was rather balanced?
It leads any user away from the Platfrom: - From the homepage - "Downloads" from the top bar - First links are three OS links, click any one.... - The Windows one has one link the Platform at bottom after giving you a different way to install - The OS X only mentions the Platform if you have an older OS - The Linux page doesn't mention the Platform at all. - If you read the paragraph on Platform - it basically says don't use it. Personally, I think multiple options in this regard is a failure. We aught to have one path that works for the vast majority of use cases. The reason is that there are many build and packaging choices in getting from source to installed tool chain, and each of these paths makes them differently... which leads to just tons of incompatibility and confusion. If the community wants minimal installers - fine - I wish we had one way not two or three. The Platform has a very complete and automated build - and installers tested on a wide variety of OS versions - it could easily be adapted to a more minimal approach (as per my GPS proposal a way back) if that's what we want. I'd really like to invite folks creating minimal installers to rally around the large body of work, experience, and code in building the Haskell Platform installers. They could easily fashion minimal builds from it (with the Shake build system this is now like a single .hs file of work...)... then perhaps we could have Platform "minimal" and "full" releases.

On Mar 23, 2015, at 10:27 AM, Gershom B
wrote: On March 23, 2015 at 10:02:11 AM, Mark Lentczner (mark.lentczner@gmail.com) wrote: I do too...! But follow the new Haskell.org pages like you are a user "just want to install Haskell"... you'll never end up with the Platform.
It looks like the Platform deprecated on the Haskell.org site for Linux and OS X in June , and for Windows in Jan
. *Infrastructure team:* Was there a discussion and decision to do that somewhere?
I thought the current language on the page was rather balanced?
That said, the initial people working on the site strongly leaned towards recommending minimal downloads over the platform in general, and as OS X and Windows developed good minimal installers the site was updated to point to them. In the editorial process on the site we, actually worked to make sure the platform _was_ highlighted more than it had been. And every time the site has come under public review (three times thus far, at least) the issue of minimal installers vs. platform was contentious, but with the former voice dominating. Note that there remains an issue under discussion about making the presentation of the two alternatives more balanced yet: https://github.com/haskell-infra/hl/issues/55 (patches and pull requests welcome!).
In any case, here is my problem. I would like us to be in a situation where we can always say “use the platform” to new users. I don’t think we are there, because new users will insist on using whatever libraries they read about as the latest and greatest, and those libraries do necessarily take care to ensure platform-compatability. (And if you tell them that straying from the platform is not for the inexperienced, they will snap at you and call you condescending, and insist they know what they are doing… shrug). Since we cannot mass-alter this sort of attitude among new users, then the next best thing would be to mass-alter the attitude among people who write not-platform-compatible libraries. But that is hard to do as well! (A “badge” on hackage for platform-compatible packages would do wonders, I think).
I don't understand this attitude. You say that neither new users nor package authors agree with your stance on the HP, so you want to force their hands. Presumably package authors know what they're doing for themselves, and the majority of evidence we have is that new users who stick with the language do not like the way the HP works https://reddit.com/r/haskell/comments/2zts44/wither_the_platform/. I understand this is not your personal preference, but is there any group whose vote would count here? The community has responded to the reality of the situation by having easy minimal installers for OS X, Windows, and Ubuntu. What is coming down the pike is integration between Stackage LTS and isolated build environments that support building programs that need specific versions of dependencies. We're not there yet, but it's coming. The common pieces needed for all concerned parties are: GHC and isolated build environments. Cabal developers, Mietek (of Halcyon), and myself (tying Nix to Cabal) are all rapidly converging on similar designs (which is very encouraging!). The shake out here will likely be cabal-install gaining some Nix-like tricks while supporting tools focus on deployment to servers. This will give us per-package build caching with the opportunity to serve binaries for everything in Stackage, without any headaches of old versions interfering with builds, and a local binary cache that fills up between LTS releases. If the question then becomes, "What's the holdup?" the answer is lack of developer hours. Finally, just to clarify, the goals of the HP, broadly stated as an installer for essential tools and a good starter set of libraries, are not in dispute. Haskellers rely on a vast number of small, focused libraries, and our compile times are nothing to brag about. The combination of those two present a challenge, so now we are tuning how something like the HP ought to be implemented. Anthony
So, in the meantime, we need to get the centralized, uniform platform installers into a shape where we _can_ uniformly recommend them. And, as I suggested, it seems to me the way to go about doing that is decoupling the “library curation” element of the platform from the “installing haskell” element. That, or ruthlessly marking packages on hackage that do not work with the current platform with a big red X :-)
Cheers, Gershom _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

On Mon, Mar 23, 2015 at 11:20 AM, Anthony Cowley
I don't understand this attitude. You say that neither new users nor package authors agree with your stance on the HP, so you want to force their hands. Presumably package authors know what they're doing for themselves, and the majority of evidence we have is that new users who stick with the language do not like the way the HP works https://reddit.com/r/haskell/comments/2zts44/wither_the_platform/.
No, this is not what I said. I was explaining that it rather difficult, even if we wanted to force their hands, to imagine that we could do so. I will say that I do not share your belief that package authors know what they are doing, in general. If they did, I would imagine that nearly all packages would ensure they would work with the current platform. But getting programmers to all agree on something like that is herding cats, and all it takes is a few people saying "feh on the platform" but nonetheless producing otherwise good packages that come into widespread use to _in general_ mean that many packages which directly or indirectly want to use those dependencies must also now split off from support for the platform. So I agree that people have voted with their feet, and we need to catch up to that. In fact, it seems to me from this discussion that there are only _two_ things we need to do to make the platform the recommended install path for all platforms again: 1) Incorporate the improvements to windows builds that have been pioneered by the MinGHC project (in particular so that platform-installed windows ghc can build the network package properly, and perhaps even the GL stuff). 2) Address the problem that in a sandbox you will get a different install plan depending on your global package db. I would suggest this be done by setting a default preference of the sandbox to ignore global packages, and allow that to be overridden with an easily configurable flag or setting or the like. That way, new users can pay the longer compile price for a guaranteed-safer experience, and more experienced users can choose to use / build up a broader library of packages they can share across sandboxes. (Certainly some "nix-like tricks" in cabal could also help address the repeated builds problem, but a flag can be implemented much more quickly as a short-term measure). All that said, I think it would _still_ be better if more package authors paid attention to backwards-compatibility across releases, and it would _still_ be better for new users if they didn't go off and bash their heads against the newest and least stable packages around. But that is indeed a different problem. Cheers, Gershom

On Mar 23, 2015, at 1:19 PM, Gershom B
wrote: On Mon, Mar 23, 2015 at 11:20 AM, Anthony Cowley
wrote: I don't understand this attitude. You say that neither new users nor package authors agree with your stance on the HP, so you want to force their hands. Presumably package authors know what they're doing for themselves, and the majority of evidence we have is that new users who stick with the language do not like the way the HP works https://reddit.com/r/haskell/comments/2zts44/wither_the_platform/.
No, this is not what I said. I was explaining that it rather difficult, even if we wanted to force their hands, to imagine that we could do so. I will say that I do not share your belief that package authors know what they are doing, in general. If they did, I would imagine that nearly all packages would ensure they would work with the current platform. But getting programmers to all agree on something like that is herding cats, and all it takes is a few people saying "feh on the platform" but nonetheless producing otherwise good packages that come into widespread use to _in general_ mean that many packages which directly or indirectly want to use those dependencies must also now split off from support for the platform.
To be clear, I said that package authors know what they are doing for themselves. I don't think they inherently know what is best for beginners, hence the reddit evidence.
So I agree that people have voted with their feet, and we need to catch up to that.
In fact, it seems to me from this discussion that there are only _two_ things we need to do to make the platform the recommended install path for all platforms again:
1) Incorporate the improvements to windows builds that have been pioneered by the MinGHC project (in particular so that platform-installed windows ghc can build the network package properly, and perhaps even the GL stuff).
2) Address the problem that in a sandbox you will get a different install plan depending on your global package db. I would suggest this be done by setting a default preference of the sandbox to ignore global packages, and allow that to be overridden with an easily configurable flag or setting or the like. That way, new users can pay the longer compile price for a guaranteed-safer experience, and more experienced users can choose to use / build up a broader library of packages they can share across sandboxes.
That's a good start, but not enough. For example, Mark's latest platform build shows OpenGL taking up a lot of space. Plenty of users want to install GHC in a server-like environment where this is a waste. But then OpenGL takes a long time (and apparently many gigabytes of RAM) to build, so we'd rather not require that those who want it rebuild it for each project (I've done this, and it's a drag). Now we face the question of having different platforms for different users, which may be acceptable despite the common claim that there should be a single download so as not to burden new users with a difficult choice. Alternately, if we let our installation tools catch up to our needs, we will have an automatic way to upgrade from a minimal installation to a, say, game development environment. That is, a user says "cabal install OpenGL", and it works, makes future rebuilds of OpenGL unlikely, and doesn't interfere with a program that depends on an older version of OpenGL. We can certainly offer kits of packages for specialized needs, but the main thing is to avoid "blessing" any one set of packages such that I'm stuck with a shared global database based on which platform I downloaded back on day 1 with Haskell. I chose OpenGL as an example, but a similarly unpleasant experience awaits potential users of our various web server packages. They are big things to install, and have dependency chains that are always itching for a rumble. These packages are some of our community's best software, the old tooling should be updated to support them. Anthony

I think the fact that we now have these minimal installers floating
around is evidence that there is demand for that.
I personally just download the latest bindist from the GHC site and
bootstrap cabal myself. Partly this is because my work requires me to
have the latest GHC, so maybe I'm not in the HP's target demographic.
That said, I would love if there was a platform that just did that (+
whatever is needed to get that to work). Maybe at the end of the
minimal install, give me a choice between stackage and hackage and set
the remote-repo in my cabal file appropriately.
I was excited by all Mark's (and other's) recent work on the platform,
because it sounded like the new build system would allow it to track
GHC much more closely. To me, the value of the HP (and why I still
recommend it to people) was always that it is a quick way to get ghc +
cabal on your system. Have a curated set of recommended packages was
neither here nor there (until they get way out of date, as Michael
pointed out with aeson 0.6.2.1). Finding good libraries seems like a
problem that google + hackage 2 + stackage solves well nowdays.
On Mon, Mar 23, 2015 at 12:19 PM, Gershom B
On Mon, Mar 23, 2015 at 11:20 AM, Anthony Cowley
wrote: I don't understand this attitude. You say that neither new users nor package authors agree with your stance on the HP, so you want to force their hands. Presumably package authors know what they're doing for themselves, and the majority of evidence we have is that new users who stick with the language do not like the way the HP works https://reddit.com/r/haskell/comments/2zts44/wither_the_platform/.
No, this is not what I said. I was explaining that it rather difficult, even if we wanted to force their hands, to imagine that we could do so. I will say that I do not share your belief that package authors know what they are doing, in general. If they did, I would imagine that nearly all packages would ensure they would work with the current platform. But getting programmers to all agree on something like that is herding cats, and all it takes is a few people saying "feh on the platform" but nonetheless producing otherwise good packages that come into widespread use to _in general_ mean that many packages which directly or indirectly want to use those dependencies must also now split off from support for the platform.
So I agree that people have voted with their feet, and we need to catch up to that.
In fact, it seems to me from this discussion that there are only _two_ things we need to do to make the platform the recommended install path for all platforms again:
1) Incorporate the improvements to windows builds that have been pioneered by the MinGHC project (in particular so that platform-installed windows ghc can build the network package properly, and perhaps even the GL stuff).
2) Address the problem that in a sandbox you will get a different install plan depending on your global package db. I would suggest this be done by setting a default preference of the sandbox to ignore global packages, and allow that to be overridden with an easily configurable flag or setting or the like. That way, new users can pay the longer compile price for a guaranteed-safer experience, and more experienced users can choose to use / build up a broader library of packages they can share across sandboxes.
(Certainly some "nix-like tricks" in cabal could also help address the repeated builds problem, but a flag can be implemented much more quickly as a short-term measure).
All that said, I think it would _still_ be better if more package authors paid attention to backwards-compatibility across releases, and it would _still_ be better for new users if they didn't go off and bash their heads against the newest and least stable packages around. But that is indeed a different problem.
Cheers, Gershom _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

On 2015-03-23, at 18:13, Andrew Farmer
I personally just download the latest bindist from the GHC site and bootstrap cabal myself. Partly this is because my work requires me to have the latest GHC, so maybe I'm not in the HP's target demographic. That said, I would love if there was a platform that just did that (+ whatever is needed to get that to work). Maybe at the end of the minimal install, give me a choice between stackage and hackage and set the remote-repo in my cabal file appropriately.
I’m happy to say `halcyon install --cabal-remote-repo=…` does just that. See the Halcyon tutorial and reference for details: https://halcyon.sh/tutorial/#install-ghc-and-cabal https://halcyon.sh/reference/#halcyon_cabal_remote_repo -- Miëtek https://mietek.io

On 23 March 2015 at 15:01, Mark Lentczner
On Mon, Mar 23, 2015 at 3:01 AM, Simon Peyton Jones
wrote: Like Richard, I was astonished by this. I always thought that the Haskell Platform was the route of choice to install GHC, together with a respectable set of libraries. It’s certainly what I install on a new machine!
I do too...! But follow the new Haskell.org pages like you are a user "just want to install Haskell"... you'll never end up with the Platform.
Separate from any opinions about what's best going forward, chiming in on a bit of history for the new homepage, my motivations were: I wanted newbies to come to the site and find a download page *within the Haskell.org site* (not going to another site with a different design) that gives them something current and usable. I added the manual GHC install guide (now gone) because that is the method I was most familiar with. I've never used a HP release. So I surveyed the current crop of handy installers and judged community use of these things from mailing lists, reddit, IRC, etc. I saw enough interactions with newbies that the HP was not being recommended anymore due to its old GHC version and old packages (at the time of making that change on the page, the current HP release was very old), and the problem of the global database and installing new things. I'm not really familiar with the user experience of this, but people don't seem to like it. So the Linux install became recommendations of OS-specific installers (e.g. the Ubuntu and Arch repos are often recommended), and Windows remained HP coupled with the new MinGHC (which I also saw being recommended), and OS X became linked to the GHC for Mac OS X project (again, I saw people were using that), each of which claim superiority for various platform-specific reasons over the HP releases. So that's the decision-making process that went into making the page flow like it is. Someone added this text:
Many now recommend just using a bare compiler combined with sandboxed dependencies, especially for new users. However, others prefer to start with the curated blessed set of packages in the Haskell Platform, which is available for Windows, OS X, and Linux.
Which adds choice to users ill-equipped to make choice. I didn't add it (although I understand the motivation behind it). From a web site perspective, I'd prefer the download pages just be on the site. If it's these platform-specific installers, the HP, or some new helpful installer + LTS or whatever, it should be just there under /downloads, /downloads/windows, etc. and there should ideally be one, good, current choice. The current page is a compromise, not the final product.

On Mar 23, 2015, at 10:58 AM, Christopher Done
Someone added this text:
Many now recommend just using a bare compiler combined with sandboxed dependencies, especially for new users. However, others prefer to start with the curated blessed set of packages in the Haskell Platform, which is available for Windows, OS X, and Linux.
Which adds choice to users ill-equipped to make choice.
Your point here is a good one. I have to confess I'm not even sure, exactly, what "combined with sandboxed dependencies" means. (Use a sandbox for every package I wish to install, bypassing `cabal install`? Use a sandbox for every package I write? Use a sandbox to write "Hello, world!"? And what about GHCi?) And I'm not a newcomer to Haskell! This is not welcoming, in my opinion. If the recommended installation mentions sandboxes, it's the wrong recommendation, and we should aim for better. Richard

I suppose ironically the page does a good job of representing community opinion; i.e. there is still debate on this issue. Even though ideally the vision was for the site to be as clear as possible, I saw no uncontentious choice here.

Forgive me, all, for asking what many may think a silly question, but I must ask: What's wrong with the platform? One non-answer to this question: - "It's always out-of-date." This statement, while true, isn't a direct indication that something is wrong. How does its age bite? Is the GHC version too old, meaning that users can't install the packages they want? (Are there an older versions of those packages available that *do* work? If so, does cabal find them?) Or, are the packages that ship with the platform out-of-date, causing installation trouble because of high lower-bounds on other packages? My question here hints at the fact that I'm a bit old-fashioned. I generally don't mind when things are out of date, provided that I don't need the new features. Maybe I'm in the minority here, and that the majority of newcomers to Haskell feel the burning need to have the very latest release of everything. But I, personally, would rather have ease of installation and be able to get moving forward without a headache than to have the new, shiny -- especially if I know how to get the new, shiny later if I should need it. Thanks, Richard

On Mon, Mar 23, 2015 at 11:19 AM, Richard Eisenberg
- "It's always out-of-date." This statement, while true, isn't a direct indication that something is wrong.
"Perception is reality". The period when the Platform went without an update for over a year because we were waiting on ghc 6.8.3 did a lot to ruin the Platform's reputation. -- brandon s allbery kf8nh sine nomine associates allbery.b@gmail.com ballbery@sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net

On Mon, Mar 23, 2015 at 5:21 PM Brandon Allbery
On Mon, Mar 23, 2015 at 11:19 AM, Richard Eisenberg
wrote: - "It's always out-of-date." This statement, while true, isn't a direct indication that something is wrong.
"Perception is reality". The period when the Platform went without an update for over a year because we were waiting on ghc 6.8.3 did a lot to ruin the Platform's reputation.
I hate to bring this up, but it's not just a historical issue. The version of attoparsec used by the platform today forces an old version of aeson to be used (0.6.2.1). The combination of that aeson and attoparsec version is vulnerable to an incredibly severe DoS attack for specially crafted JSON strings (e.g., {"foo":1e100000000000000000000000}). In fact, just a few weeks ago I sent a private email to someone about a massive vulnerability in a service (obviously not going to point out which one). Michael

On 23/03/15 17:19, Richard Eisenberg wrote:
Forgive me, all, for asking what many may think a silly question, but I must ask:
What's wrong with the platform?
It solves a problem few people seem to have. Most people want a compiler (ghc), a package manager (cabal), and libraries they can install (hackage/stackage). Instead, they are being sold HP which has its own versioning, releases on its own irregular schedule, and brings a small arbitrary set of packages frozen at an arbitrary point in time. These packages often interfere with users' desire to install their own packages. Roman

On Sat, 2015-03-21 at 10:54 -0700, Mark Lentczner wrote:
I'm wondering how we are all feeling about the platform these days....
I notice that in the new Haskell pages, the Platform is definitely not the recommended way to go: The main download pages suggests the compiler and base libraries as the first option - and the text for the Platform (second option) pretty much steers folks away from it. Of the per-OS download pages, only the Windows version even mentions it.
There was a big argument about this. I was on the loosing side. :-)
Does this mean that we don't want to consider continuing with it? It is a lot of community effort to put out a Platform release - we shouldn't do it if we don't really want it.
I think it is worth it, and the issues that people are complaining about wrt the platform vs minimal installers can be fixed.
That said, I note that the other ways to "officially get" Haskell look, to my eye, very ad hoc. Many of the options involve multiple steps, and exactly what one is getting isn't clear. It hardly looks like there is now an "official, correct" way to setup Haskell.
Right, I think there's still a great deal of value in having a simple recommendation for new users. One of the points of argument was that some people were arguing that the minimal installers are better for new users. I disagree, but certainly there is one issue that could be fixed that'd go a long way to resolving the particular use case with new users that was raised.
The Platform arose in an era before sandboxes and before curated library sets like Stackage and LTS. Last time we set direction was several years ago. These new features and development have clearly changed the landscape for use to reconsider what to do.
I don't think the status quo for the Platform is now viable - mostly as evidenced by waning interest in maintaining it. I offer several ways we could proceed:
Well, the people who like it don't really complain. But yes, things need improving.
*1) Abandon the Platform.* GHC is release in source and binary form. Other package various installers, with more or less things, for various OSes.
*2) Slim the Platform.* Pare it back to GHC + base + a smaller set of "essential" libs + tools. Keeps a consistent build layout and installation mechanism for Haskell.
*3) Re-conceive the Platform.* Take a very minimal install approach, coupled with close integration with a curated library set that makes it easy to have a rich canonical, stable environment. This was the core idea around my "GPS Haskell" thoughts from last September - but there would be much to work out in this direction.
I'm not sure that slimming is really needed. But I agree with the GPS approach. The current set is too small in the sense that it doesn't cover lots of things people need, and the GPS approach should solve that. We don't need to promise such high QA for the extended set, we just need to make sure they build together. We need to remember that one of the purposes of the platform as originally conceived is to get people to sync on the versions of their deps that they're using at the moment. This is where the GPS approach shines, but it still makes sense to have some core set at the middle of that. It's true that advanced users don't need lots of things pre-installed, but they sill benefit from other developers synchronising on versions of deps, so that they can have more things work together more often. On the argument that the platform is too big, the primary issue there is that people want to make new sandboxes that are more minimal, and with cabal's current behaviour of basing all sandboxes off of the global package db, and the platform installing lots of packages globally then we get a conflict. But the solution is simple: make cabal sandboxes not be based off of everything that is globally installed, make new sandboxes be really minimal (though the ghc/platform installers could help with identifying what is the minimal subset). Duncan

Duncan Coutts
: On Sat, 2015-03-21 at 10:54 -0700, Mark Lentczner wrote: I'm wondering how we are all feeling about the platform these days....
I notice that in the new Haskell pages, the Platform is definitely not the recommended way to go: The main download pages suggests the compiler and base libraries as the first option - and the text for the Platform (second option) pretty much steers folks away from it. Of the per-OS download pages, only the Windows version even mentions it.
There was a big argument about this. I was on the loosing side. :-)
Does this mean that we don't want to consider continuing with it? It is a lot of community effort to put out a Platform release - we shouldn't do it if we don't really want it.
I think it is worth it, and the issues that people are complaining about wrt the platform vs minimal installers can be fixed.
That said, I note that the other ways to "officially get" Haskell look, to my eye, very ad hoc. Many of the options involve multiple steps, and exactly what one is getting isn't clear. It hardly looks like there is now an "official, correct" way to setup Haskell.
Right, I think there's still a great deal of value in having a simple recommendation for new users.
Absolutely! The recurring problem with decisions like the one about the recommended installers on the Haskell front page is that they are made by power users who simply lack the perspective to understand the requirements of new users. A minimal installer followed by half an hour of cabal install is an extremely bad way to sell Haskell to a newcomer. Sure, it is more flexible, but flexible is *bad* for newcomers. We are using Haskell in a few courses here at UNSW. We always recommend students to use the Haskell Platform when they want to install Haskell on their own machines. It’s one download and gives them the same packages on all platforms. Anything else just leads to lots of support questions of students trying to get their installations working to do their assignments. Manuel
One of the points of argument was that some people were arguing that the minimal installers are better for new users. I disagree, but certainly there is one issue that could be fixed that'd go a long way to resolving the particular use case with new users that was raised.
The Platform arose in an era before sandboxes and before curated library sets like Stackage and LTS. Last time we set direction was several years ago. These new features and development have clearly changed the landscape for use to reconsider what to do.
I don't think the status quo for the Platform is now viable - mostly as evidenced by waning interest in maintaining it. I offer several ways we could proceed:
Well, the people who like it don't really complain. But yes, things need improving.
*1) Abandon the Platform.* GHC is release in source and binary form. Other package various installers, with more or less things, for various OSes.
*2) Slim the Platform.* Pare it back to GHC + base + a smaller set of "essential" libs + tools. Keeps a consistent build layout and installation mechanism for Haskell.
*3) Re-conceive the Platform.* Take a very minimal install approach, coupled with close integration with a curated library set that makes it easy to have a rich canonical, stable environment. This was the core idea around my "GPS Haskell" thoughts from last September - but there would be much to work out in this direction.
I'm not sure that slimming is really needed. But I agree with the GPS approach. The current set is too small in the sense that it doesn't cover lots of things people need, and the GPS approach should solve that. We don't need to promise such high QA for the extended set, we just need to make sure they build together.
We need to remember that one of the purposes of the platform as originally conceived is to get people to sync on the versions of their deps that they're using at the moment. This is where the GPS approach shines, but it still makes sense to have some core set at the middle of that. It's true that advanced users don't need lots of things pre-installed, but they sill benefit from other developers synchronising on versions of deps, so that they can have more things work together more often.
On the argument that the platform is too big, the primary issue there is that people want to make new sandboxes that are more minimal, and with cabal's current behaviour of basing all sandboxes off of the global package db, and the platform installing lots of packages globally then we get a conflict.
But the solution is simple: make cabal sandboxes not be based off of everything that is globally installed, make new sandboxes be really minimal (though the ghc/platform installers could help with identifying what is the minimal subset).
Duncan
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

I absolutely agree that haskell platform is the right choice for class
rooms.
On Mar 24, 2015 8:14 PM, "Manuel M T Chakravarty"
I'm wondering how we are all feeling about the platform these days....
I notice that in the new Haskell pages, the Platform is definitely not
Duncan Coutts
: On Sat, 2015-03-21 at 10:54 -0700, Mark Lentczner wrote: the recommended way to go: The main download pages suggests the compiler and base libraries as the first option - and the text for the Platform (second option) pretty much steers folks away from it. Of the per-OS download pages, only the Windows version even mentions it.
There was a big argument about this. I was on the loosing side. :-)
Does this mean that we don't want to consider continuing with it? It is a lot of community effort to put out a Platform release - we shouldn't do it if we don't really want it.
I think it is worth it, and the issues that people are complaining about wrt the platform vs minimal installers can be fixed.
That said, I note that the other ways to "officially get" Haskell look, to my eye, very ad hoc. Many of the options involve multiple steps, and exactly what one is getting isn't clear. It hardly looks like there is now an "official, correct" way to setup Haskell.
Right, I think there's still a great deal of value in having a simple recommendation for new users.
Absolutely! The recurring problem with decisions like the one about the recommended installers on the Haskell front page is that they are made by power users who simply lack the perspective to understand the requirements of new users.
A minimal installer followed by half an hour of cabal install is an extremely bad way to sell Haskell to a newcomer. Sure, it is more flexible, but flexible is *bad* for newcomers.
We are using Haskell in a few courses here at UNSW. We always recommend students to use the Haskell Platform when they want to install Haskell on their own machines. It’s one download and gives them the same packages on all platforms. Anything else just leads to lots of support questions of students trying to get their installations working to do their assignments.
Manuel
One of the points of argument was that some people were arguing that the minimal installers are better for new users. I disagree, but certainly there is one issue that could be fixed that'd go a long way to resolving the particular use case with new users that was raised.
The Platform arose in an era before sandboxes and before curated library sets like Stackage and LTS. Last time we set direction was several years ago. These new features and development have clearly changed the landscape for use to reconsider what to do.
I don't think the status quo for the Platform is now viable - mostly as evidenced by waning interest in maintaining it. I offer several ways we could proceed:
Well, the people who like it don't really complain. But yes, things need improving.
*1) Abandon the Platform.* GHC is release in source and binary form. Other package various installers, with more or less things, for various OSes.
*2) Slim the Platform.* Pare it back to GHC + base + a smaller set of "essential" libs + tools. Keeps a consistent build layout and installation mechanism for Haskell.
*3) Re-conceive the Platform.* Take a very minimal install approach, coupled with close integration with a curated library set that makes it easy to have a rich canonical, stable environment. This was the core idea around my "GPS Haskell" thoughts from last September - but there would be much to work out in this direction.
I'm not sure that slimming is really needed. But I agree with the GPS approach. The current set is too small in the sense that it doesn't cover lots of things people need, and the GPS approach should solve that. We don't need to promise such high QA for the extended set, we just need to make sure they build together.
We need to remember that one of the purposes of the platform as originally conceived is to get people to sync on the versions of their deps that they're using at the moment. This is where the GPS approach shines, but it still makes sense to have some core set at the middle of that. It's true that advanced users don't need lots of things pre-installed, but they sill benefit from other developers synchronising on versions of deps, so that they can have more things work together more often.
On the argument that the platform is too big, the primary issue there is that people want to make new sandboxes that are more minimal, and with cabal's current behaviour of basing all sandboxes off of the global package db, and the platform installing lots of packages globally then we get a conflict.
But the solution is simple: make cabal sandboxes not be based off of everything that is globally installed, make new sandboxes be really minimal (though the ghc/platform installers could help with identifying what is the minimal subset).
Duncan
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

On March 24, 2015 at 8:14:27 PM, Manuel M T Chakravarty (chak@cse.unsw.edu.au) wrote:
Right, I think there's still a great deal of value in having a simple recommendation for new users.
Absolutely! The recurring problem with decisions like the one about the recommended installers on the Haskell front page is that they are made by power users who simply lack the perspective to understand the requirements of new users.
To be clear, the current recommendations that highlight minimal installers were not made on behalf of “power users.” In fact, they were motivated by those with the most experience helping _new users_. As the discussed on various reddit threads [1], people coming to Haskell in the context of independent acquisition (i.e. not students at the fine institutions of higher learning with sufficient distinction and taste to teach Haskell) have consistently had trouble with the platform. I am here talking about people that are probably experienced programmers to some degree, but just not experienced with Haskell. If they are to be confused by things, I want them to be confused by clever types, subtle uses of laziness, and mind-blowing idioms relying on higher order functions, not confusing messages when trying to install libraries. The first things they try to do are not write student exercises, but e.g. install Yesod, or GHCJS, or Yesod and then GHCJS, and then some package with an API binding for some webservice which has not been updated in two years and requires an old version of time, and then maybe a GUI toolkit and of course lens. They do not yet know how to vet packages and carefully manage dependencies. They do not know how to fix trivial breakages or manually change bounds. They know how to type at least three words: “cabal” “install” and “ghci”. And they do not have a professor or instructor to guide them. And, consistently, repeatedly, they destroy their package environment. And when they do so, the answer is invariably the only one that is easy to give remotely and without lots of context — wipe the package environment and start again. The most important message for these new users is “always use a sandbox”, because that at least keeps them from destroying the full environment when they allow installations of packages that break other packages, etc. And the platform, to the extent that it changes and complicates build plans, does these users no good.
A minimal installer followed by half an hour of cabal install is an extremely bad way to sell Haskell to a newcomer. Sure, it is more flexible, but flexible is *bad* for newcomers.
I will grant this. But I will also say that a full platform install followed by a day of trying and failing to install complex combinations of dependencies also isn’t particularly inviting. Again, I very much _want_ to be able to recommend the platform unilaterally as the “best choice nearly always”. I like the fact that it has a uniform process for releases and installers. I like that it has infrastructure and buy-in, and I remember how bad things were in the days before it. I personally always use it, and I personally (absent the network/windows issue that MinGHC solves) don’t understand why experienced users don’t always go with the platform (except, I suppose, if they are so accustomed to “sandbox everything” that they never see a payoff, or if they are now using nix, which is also an awesome approach but very much for power users still). I think Duncan’s proposals are very good. That is to say first, change the “new sandbox behavior” issue. Once we do that, the platform will be perfectly fine for the sorts of users I described above, and I would hope that changing the recommendations on the website to say so would be uncontroversial. Then, above and beyond that, and at a future date, finishing the big plans for nix-like operations, allowing the same version of package A to be built against multiple versions of package B, etc, will do away for the need for sandboxes altogether, we hope. In the interim, I did point out an outstanding ticket [2] on the homepage to further improve and balance the current layout and wording — pull requests are always welcome! Cheers, Gershom [1] a) Most recently, related to this discussion and linked by acowley: http://www.reddit.com/r/haskell/comments/2zts44/wither_the_platform/ b) Occasioned by the launch of the new homepage: http://www.reddit.com/r/haskell/comments/2w3php/venerable_haskell_platform_n... [2] https://github.com/haskell-infra/hl/issues/55
A minimal installer followed by half an hour of cabal install is an extremely bad way to sell Haskell to a newcomer. Sure, it is more flexible, but flexible is *bad* for newcomers.
We are using Haskell in a few courses here at UNSW. We always recommend students to use the Haskell Platform when they want to install Haskell on their own machines. It’s one download and gives them the same packages on all platforms. Anything else just leads to lots of support questions of students trying to get their installations working to do their assignments.
Manuel
One of the points of argument was that some people were arguing that the minimal installers are better for new users. I disagree, but certainly there is one issue that could be fixed that'd go a long way to resolving the particular use case with new users that was raised.
The Platform arose in an era before sandboxes and before curated library sets like Stackage and LTS. Last time we set direction was several years ago. These new features and development have clearly changed the landscape for use to reconsider what to do.
I don't think the status quo for the Platform is now viable - mostly as evidenced by waning interest in maintaining it. I offer several ways we could proceed:
Well, the people who like it don't really complain. But yes, things need improving.
*1) Abandon the Platform.* GHC is release in source and binary form. Other package various installers, with more or less things, for various OSes.
*2) Slim the Platform.* Pare it back to GHC + base + a smaller set of "essential" libs + tools. Keeps a consistent build layout and installation mechanism for Haskell.
*3) Re-conceive the Platform.* Take a very minimal install approach, coupled with close integration with a curated library set that makes it easy to have a rich canonical, stable environment. This was the core idea around my "GPS Haskell" thoughts from last September - but there would be much to work out in this direction.
I'm not sure that slimming is really needed. But I agree with the GPS approach. The current set is too small in the sense that it doesn't cover lots of things people need, and the GPS approach should solve that. We don't need to promise such high QA for the extended set, we just need to make sure they build together.
We need to remember that one of the purposes of the platform as originally conceived is to get people to sync on the versions of their deps that they're using at the moment. This is where the GPS approach shines, but it still makes sense to have some core set at the middle of that. It's true that advanced users don't need lots of things pre-installed, but they sill benefit from other developers synchronising on versions of deps, so that they can have more things work together more often.
On the argument that the platform is too big, the primary issue there is that people want to make new sandboxes that are more minimal, and with cabal's current behaviour of basing all sandboxes off of the global package db, and the platform installing lots of packages globally then we get a conflict.
But the solution is simple: make cabal sandboxes not be based off of everything that is globally installed, make new sandboxes be really minimal (though the ghc/platform installers could help with identifying what is the minimal subset).
Duncan
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

Gershom B
: On March 24, 2015 at 8:14:27 PM, Manuel M T Chakravarty (chak@cse.unsw.edu.au) wrote: Right, I think there's still a great deal of value in having a simple recommendation for new users.
Absolutely! The recurring problem with decisions like the one about the recommended installers on the Haskell front page is that they are made by power users who simply lack the perspective to understand the requirements of new users.
To be clear, the current recommendations that highlight minimal installers were not made on behalf of “power users.” In fact, they were motivated by those with the most experience helping _new users_. As the discussed on various reddit threads [1], people coming to Haskell in the context of independent acquisition (i.e. not students at the fine institutions of higher learning with sufficient distinction and taste to teach Haskell) have consistently had trouble with the platform. I am here talking about people that are probably experienced programmers to some degree, but just not experienced with Haskell. If they are to be confused by things, I want them to be confused by clever types, subtle uses of laziness, and mind-blowing idioms relying on higher order functions, not confusing messages when trying to install libraries.
The first things they try to do are not write student exercises, but e.g. install Yesod, or GHCJS, or Yesod and then GHCJS, and then some package with an API binding for some webservice which has not been updated in two years and requires an old version of time, and then maybe a GUI toolkit and of course lens. They do not yet know how to vet packages and carefully manage dependencies. They do not know how to fix trivial breakages or manually change bounds. They know how to type at least three words: “cabal” “install” and “ghci”. And they do not have a professor or instructor to guide them. And, consistently, repeatedly, they destroy their package environment. And when they do so, the answer is invariably the only one that is easy to give remotely and without lots of context — wipe the package environment and start again.
The most important message for these new users is “always use a sandbox”, because that at least keeps them from destroying the full environment when they allow installations of packages that break other packages, etc. And the platform, to the extent that it changes and complicates build plans, does these users no good.
You are talking about a specific kind of new users. These new users want to install a web stack or similar — i.e., they need tons of packages. These people may be new to Haskell, but I reckon they are otherwise power users. I’m talking about somebody picking up Learn you a Haskell and wanting to write Hello World. Why should they care about sandboxes? Who cares if they mess up their installation by installing the wrong package. They can always nuke it and install it again. That’s a much simpler story. Look. I guess, I count as a power user ;) I rarely use sandboxes. They are great for a particular type of use, but you can do many things quite happily without them. (Ask SimonPJ; I reckon he doesn’t use sandboxes either.)
A minimal installer followed by half an hour of cabal install is an extremely bad way to sell Haskell to a newcomer. Sure, it is more flexible, but flexible is *bad* for newcomers.
I will grant this. But I will also say that a full platform install followed by a day of trying and failing to install complex combinations of dependencies also isn’t particularly inviting.
Again, I very much _want_ to be able to recommend the platform unilaterally as the “best choice nearly always”. I like the fact that it has a uniform process for releases and installers. I like that it has infrastructure and buy-in, and I remember how bad things were in the days before it. I personally always use it, and I personally (absent the network/windows issue that MinGHC solves) don’t understand why experienced users don’t always go with the platform (except, I suppose, if they are so accustomed to “sandbox everything” that they never see a payoff, or if they are now using nix, which is also an awesome approach but very much for power users still).
The mistake here is to try to make this a one-size-fits all. I honestly don’t care about a platform that is ideal for everybody. I want something that I can point newbies at that makes them happy quickly. That needs to be one download with all the packages that you need to get going included. If somebody gets sufficiently hooked on Haskell to want to start a bigger project, then they will have the patience for a more elaborate story (and wait for cabal install for a few hours to do its job). The point is that one-size-fits-all is inherently unfriendly to novices. A novice needs something simple with as few options as possible, whereas a power user wants flexibility and customisability. A minimal installer with sandboxes gives you the latter, but it comes at the expense of simplicity, which makes is unfriendly to novices.
I think Duncan’s proposals are very good. That is to say first, change the “new sandbox behavior” issue. Once we do that, the platform will be perfectly fine for the sorts of users I described above, and I would hope that changing the recommendations on the website to say so would be uncontroversial. Then, above and beyond that, and at a future date, finishing the big plans for nix-like operations, allowing the same version of package A to be built against multiple versions of package B, etc, will do away for the need for sandboxes altogether, we hope.
Well, we have got people who want to learn Haskell now and who use Haskell as part of their coursework now. Why make them wait for future work which will probably take longer than planned, needs to be rolled out, etc? I’m sorry if I’m sounding negative here. I appreciate all these efforts. However, I am quite frustrated by the recurrent argument that flexibility implies simplicity. That is true for the expert, but flexibility is a curse to the beginner. Manuel

On March 25, 2015 at 12:43:22 AM, Manuel M T Chakravarty (chak@cse.unsw.edu.au) wrote:
Look. I guess, I count as a power user ;) I rarely use sandboxes. They are great for a particular type of use, but you can do many things quite happily without them. (Ask SimonPJ; I reckon he doesn’t use sandboxes either.)
Ironically, the only time I have had to use a sandbox was in doing work on the new Haskell homepage (it is written in Yesod). In fact, that was insufficient for some reason and I had to install hsenv as well and use that for an even “stronger” sandbox. As I have said, I also install the platform whenever possible. Believe me, you are preaching to the choir!
The mistake here is to try to make this a one-size-fits all. I honestly don’t care about a platform that is ideal for everybody. I want something that I can point newbies at that makes them happy quickly. That needs to be one download with all the packages that you need to get going included. .. Well, we have got people who want to learn Haskell now and who use Haskell as part of their coursework now. Why make them wait for future work which will probably take longer than planned, needs to be rolled out, etc?
I do not understand this. The platform still exists, is still great, is not going anywhere, and as far as I can tell, is on track to become even better. You can point people at https://www.haskell.org/platform/ or you can point them at downloads.haskell.org which links to there or you can point them at www.haskell.org and tell them “the downloads page gives you options, pick the platform option.” Nobody who wants to use the platform must wait for anything. Nobody has taken anything from you, or anyone else. Nobody wants to take anything from you, or anyone else. We just want to recognize that this other set of users — those coming from other languages, and wanting to “from the gate” install large sets of dependencies — this set of users has grown and is growing and if we don’t want them to become frustrated and bounce off Haskell, then we need to provide resources for them too, and steer them to things that meet _their_ needs as well. They are not lucky enough to be in your class and be guided by an instructor. If you want to patch the downloads page so that it more clearly highlights the platform option or makes clear that if you want to be a “power user” and manage lots of dependencies with abandon you may want the minimal installers, and if you want “a good, wide-ranging set of defaults to experiment and learn with” then you want the platform, or some other wording that is perhaps clearer, or anything at all like that, then there is again a ticket on the github homepage to improve the language, and pull requests are welcome. The compromise wording on the page now is just that: a compromise. I don’t even claim it to be a great one, just what was settled on. If you (or anyone) can improve it to present both sorts of installers and the tradeoffs more clearly and more simply, please do! There are different types of beginners, and meeting all their needs (as well as the needs of long-timers of various stripes, etc) all at once is a tricky task. Again, the main advantage that students have is that they have instructors who can guide them in what they recommend to download, how to get started, etc. So, for the moment, I would argue that students are not the most fundamental target audience for that snippet of text on the downloads page. But, that does not mean the language cannot be better for students too. And I would very much like it to be! Beyond that I don’t feel we’re discussing anything as metaphysical as flexibility or simplicity. And I don’t feel my own preferences are necessarily better or worse than others — I just want two things, as do we all I think. A) To have the best possible toolsets available for all types of users in all possible development setups, and B) To somehow condense the core of that information into an easily digestible form to help steer visitors to the Haskell homepage to the setup that is right for _them_. As always, anybody who wants to help with this in any regard with the new homepage is welcome and invited to do so. We have plenty of open tickets and room for improvement all around, a helpful crew on the #haskell-infrastructure irc, and patches, pull requests, and new tickets are always welcomed. Best, Gershom

On Tue, Mar 24, 2015 at 10:09 PM, Gershom B
There are different types of beginners, and meeting all their needs (as well as the needs of long-timers of various stripes, etc) all at once is a tricky task.
Actually, pretty much all other language systems (C++, Java(*), Python, PHP, Ruby, Scala, etc...) meet *all* users' needs, not just beginners, with one common tool set + core libs. Different users don't install different packagings of Python. There isn't a list of choices of Scala installers. I had a really long post prepared about my reasoning, but I think I'll just spare you all, and cut to the chase: *The problem is how GHC is released:* It is released as a compiler, and minimal base libs, and (strangely) with 1/2 of cabal, haddock, ghc-pkg, no other tools, and no installer. *This is an insufficient set of things for most users.* At minimum it should also have cabal-install, and the libs so many things are built on: async, mtl, text, parsec, vector, etc..., and also common tools (like happy, alex, and hscolour). You can argue plus or minus some of these, the set could be bigger or smaller, ... basically, it should be the Platform. We should consider those additional libs as frozen, and tied to the GHC release, as the base libs - because that will mean those will be the common versions people will build and test against. And they will update as frequently as GHC. (If they aren't as stable as all that, or aren't willing to be part of that release cycle and constraint, then perhaps they shouldn't be in that set!) Yes, I'm arguing that the GHC release and the Platform release should be one and the same. The vast majority of the pain I think stems from the skew between these two, and that GHC is not enough. You need something besides the GHC release. If that something isn't standard, and/or it lags the GHC release, then all the attendant problems creep in. We worked really hard last Summer to make the Platform be very quickly buildable - there is already a 7.10 RC3 Platform out (though I did it by, ahem, not following Haskell Platform procedure - and, er, well, just did it!) - I think we should just pare back the definition of the Platform, and then commit to making it be the way new GHCs are released. - Mark (*) Okay, so Java comes in three variants, but they are mostly distinguished by final deployment environment, not user type.

On 2015-03-25 at 07:21:48 +0100, Mark Lentczner wrote: [...]
*The problem is how GHC is released:* It is released as a compiler, and minimal base libs, and (strangely) with 1/2 of cabal, haddock, ghc-pkg, no other tools, and no installer. *This is an insufficient set of things for most users.*
At minimum it should also have cabal-install, and the libs so many things are built on: async, mtl, text, parsec, vector, etc..., and also common tools (like happy, alex, and hscolour). You can argue plus or minus some of these, the set could be bigger or smaller, ... basically, it should be the Platform.
We should consider those additional libs as frozen, and tied to the GHC release, as the base libs - because that will mean those will be the common versions people will build and test against. And they will update as frequently as GHC. (If they aren't as stable as all that, or aren't willing to be part of that release cycle and constraint, then perhaps they shouldn't be in that set!)
Yes, I'm arguing that the GHC release and the Platform release should be one and the same. The vast majority of the pain I think stems from the skew between these two, and that GHC is not enough. You need something besides the GHC release. If that something isn't standard, and/or it lags the GHC release, then all the attendant problems creep in.
[...] While I sympathise myself with bundling cabal-install with GHC bindists, as that's been (in my perception) the most requested feature from ghc-bindist users, GHC HQ is trying rather trying strip down the GHC distribution and dropping packages being installed by default whenever possible. E.g. with GHC 7.10.1 we dropped 4 packages (old-locale, old-time, haskell98, and haskell2010) as those don't need to be part of the (installed) GHC distribution. Some other packages (xhtml, haskeline, terminfo) that were recently exposed could be dropped again if we manage to workaround an unexpected DSO issue. We would even be in the position (since GHC 7.10) to drop the `Cabal` package from being installed (if it wasn't for the Cabal spec), as the `ghc` package severed its dependency on `Cabal` with this release.[1] Not tying packages to GHC releases gives more flexibility and less overhead, as we need to synchronise less with upstream maintainers, and more importantly updates to non-bundled packages can happen independently of GHC releases and more frequently. Also, it gives 3rd party packagers more degrees of freedom to select different cross-sections/subsets of Hackage to define as curated snapshot (i.e. LTS, Stackage, HP, Linux distributions, NixOS, ...). Cheers, hvr [1]: http://comments.gmane.org/gmane.comp.lang.haskell.ghc.devel/7571

Yes, I'm arguing that the GHC release and the Platform release should be one and the same. The vast majority of the pain I think stems from the skew between these two, and that GHC is not enough. You need something besides the GHC release. If that something isn't standard, and/or it lags the GHC release, then all the attendant problems creep in.
Yes! Our plan for GHC, dating back to the dawn of the Haskell Platform, was this:
· There are some people working on GHC itself. That is already a big job. Just getting GHC ready to release is hard. Hence the desire that Herbert mentions to strip it down as much as possible.
· But a release of GHC is not adequate. No one except power users should install a GHC release. It should be a secret among the cognoscenti that a GHC release has happened.
· The first sensible unit of installation (at least for a non-power user) is the Haskell Platform. It includes the tools you need (Happy, Alex, Cabal) as well as a small but useful collection of libraries. That’s why GHC’s download page explicitly says “Stop! Shouldn’t you be installing the Haskell Platform instead?”.
· HP releases should therefore, in contrast to GHC releases, be widely publicised.
· Moreover, a HP release should very closely follow a GHC release (though the former could occur more often), to reduce the chance that a naïve user bypasses the HP and gets GHC alone. That is what Mark is rightly working on at this very moment for GHC 7.10. We probably should work harder to reduce the lag.
In this sense, the plan was always that “the GHC and the Platform release are one and the same”. I think of the HP release as the “real GHC release”. It’s just that, as an implementation mechanism, the GHC team push out the bare GHC bits, so that the HP team have something firm to chew on.
So that was the plan. I still think it’s a good plan. But it clearly is not working well, and I’m hazy about why. Possible reasons:
· Possible diagnosis 1. Installing HP somehow screws up the world for power users, or for a beginner who grows into a power user. Surely we can fix this! Installing HP should not get in the way. I suppose that, even if installing HP doesn’t get in the way, it might be a waste of internet bandwidth and disk space for some power users. But that is a smaller problem.
· Possible diagnosis 2. We have not shared the plan as a community; that is, we have focused lots of attention on GHC releases, and little attention on HP releases. It should be the other way around.
So here are the questions in my mind:
· Is the original plan still good?
· Is it possible to make the HP so that installing it does not get in the way of power users? So that installing it is, at worst, a waste of disk space?
Personally I like the plan because it’s simple; because it usefully empowers, and splits responsibility between, two different groups (GHC and HP); and because it makes life easy for our users.
Simon
From: Libraries [mailto:libraries-bounces@haskell.org] On Behalf Of Mark Lentczner
Sent: 25 March 2015 06:22
To: Gershom B
Cc: Manuel M T Chakravarty; haskell-platform@projects.haskell.org; haskell-infrastructure@community.galois.com; Duncan Coutts; ghc-devs@haskell.org; Haskell Libraries
Subject: Re: wither the Platform
On Tue, Mar 24, 2015 at 10:09 PM, Gershom B

Simon Peyton Jones
So that was the plan. I still think it’s a good plan. But it clearly is not working well, and I’m hazy about why. Possible reasons:
· Possible diagnosis 1. Installing HP somehow screws up the world for power users, or for a beginner who grows into a power user. Surely we can fix this! Installing HP should not get in the way. I suppose that, even if installing HP doesn’t get in the way, it might be a waste of internet bandwidth and disk space for some power users. But that is a smaller problem.
· Possible diagnosis 2. We have not shared the plan as a community; that is, we have focused lots of attention on GHC releases, and little attention on HP releases. It should be the other way around.
I’d say, both. Re 1, a big part of the problem is the whole cabal, package dependency and versioning morass. Re 2, I think, there are multiple factors. The delays in putting out the HP (as previously mentioned). Power users reading GHC Status reports and wanting to get the goodies as quickly as possible. The HP just being quite a bit of hard work people like to avoid. Manuel

On Wed, Mar 25, 2015 at 2:09 AM, Simon Peyton Jones
Yes! Our plan for GHC, dating back to the dawn of the Haskell Platform, was this: ...
I still like that plan! Concrete proposal based on that and the other fine input in the responses: *Simultaneous Release:* Since it is organizationally impractical to have one release, let's have GHC and Platform release at the same moment. That is, GHC HQ would keep a release in "RC" until HP was ready. By the same token, HP team commits to tracking GHC from RC1, and aiming to hit ready for release within a week of GHC being ready. Both go "release" in the same announcement. *In fact, let's version HP with the same number as GHC!* *Pare the Platform Back:* Bring down the number of packages in the Platform, focusing on the things that everyone needs, like text and vector, etc. I reckon that about 1/3 of the packages should go. *And, make that stuff be the latest it can be at each release. *The OpenGL stuff is a hard one, since it is large, but a very big painful build if you need it. Perhaps we need server/non-server versions of the platform - but only if we can get them out on the same day. *Make sure the Platform Installers are Complete:* I don't know Windows, but if this means adding MSYS, great.. let's do it. The Mac installer has a version switching script and supports multiple installed versions already, but people didn't seem to know. There needs to be more documentation. *Make Updating the Packages in Cabal 'work':* I'm unclear on the right technical path here, but we need away for Cabal to understand that a) it can't update the stuff tied to GHC, b) it *can* update the other stuff installed from the platform, but as a cohesive set, c) it can easily (and optionally) do (b) in just a sandbox, or in the global(-ish) install. *One Web Site:* Drop the separate Platform website. Incorporate it into the lovely new Haskell one. Put all the documentation there. This certainly has implications for how we choose what is in the platform, and how we position those packages. In particular, packages in the past have been stuck at older versions because of the requirement that the transitive dependencies be added to the platform, with the support guarantee that implies. I think we'd have to change that: There are packages in the platform, like attoparsec, packages that are there because they are dependencies, like scientific, but who knows if they will be there next time! Now, normally I'm the crazy, ranty stability guy. But, I'm thinking this: It is better to have clear release points that package developers can test against, then to have the current slidey scale of different stability guarntees, on different release schedules that we have now. And, to be honest, I realize that the Haskell community "hath spoken" recently on the issue and prefers things to evolve even if the APIs change... I think we can do this if all the great volunteer talent in our community steps up. Shall we? — Mark

On Wed, Mar 25, 2015 at 10:24 AM, Mark Lentczner
The OpenGL stuff is a hard one, since it is large, but a very big painful build if you need it. Perhaps we need server/non-server versions of the platform - but only if we can get them out on the same day.
OpenGL has always been an odd fit; it was included partly because of the size and complexity to build, but also because it was felt that batteries-included had to include *some* kind of graphics library. I'm inclined to think that it doesn't really belong in the core Platform, myself. -- brandon s allbery kf8nh sine nomine associates allbery.b@gmail.com ballbery@sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net

In general, I think Mark's proposals are the way to go. However, I know that there are many developers who will chafe under this plan. There is an inherent tension between "latest and greatest" and "batteries included." While I understand the concerns of those who are on the bleeding edge, I believe it is best for the future of Haskell to go in Mark's direction.
Issues that will need to be confronted:
1. Slower release cycle: Coordinating the stability of even a streamlined Platform with a new GHC release candidate will take more time. On the other hand, this is likely to produce a more tested final GHC release.
2. Less diversity in new GHC features: The GHC developers have generally aimed new features at a future release, where the existence and stability of new features has driven their incorporation. It was assumed that the Platform would eventually catch up. If the GHC release and the corresponding Platform release are simultaneous, then some GHC features may need to be pushed out to the following release so there is time for the Platform to be adapted.
3. The GHC development process will need to become more phased: Experimentation with new features will still be encouraged, but adoption of the new features will need to be gated to correspond with what the Platform can implement. (This is really another view of issue 2.)
So I would like to add to Mark's call for the developer community to "step up": The research community will need to accept a more structured deployment of their innovations.
Howard
________________________________
From: Mark Lentczner
Pare the Platform Back: Bring down the number of packages in the Platform, focusing on the things that everyone needs, like text and vector, etc. I reckon that about 1/3 of the packages should go. And, make that stuff be the latest it can be at each release. The OpenGL stuff is a hard one, since it is large, but a very big painful build if you need it. Perhaps we need server/non-server versions of the platform - but only if we can get them out on the same day.
Make sure the Platform Installers are Complete: I don't know Windows, but if this means adding MSYS, great.. let's do it. The Mac installer has a version switching script and supports multiple installed versions already, but people didn't seem to know. There needs to be more documentation.
Make Updating the Packages in Cabal 'work': I'm unclear on the right technical path here, but we need away for Cabal to understand that a) it can't update the stuff tied to GHC, b) it *can* update the other stuff installed from the platform, but as a cohesive set, c) it can easily (and optionally) do (b) in just a sandbox, or in the global(-ish) install.
One Web Site: Drop the separate Platform website. Incorporate it into the lovely new Haskell one. Put all the documentation there.
This certainly has implications for how we choose what is in the platform, and how we position those packages. In particular, packages in the past have been stuck at older versions because of the requirement that the transitive dependencies be added to the platform, with the support guarantee that implies. I think we'd have to change that: There are packages in the platform, like attoparsec, packages that are there because they are dependencies, like scientific, but who knows if they will be there next time! Now, normally I'm the crazy, ranty stability guy. But, I'm thinking this: It is better to have clear release points that package developers can test against, then to have the current slidey scale of different stability guarntees, on different release schedules that we have now. And, to be honest, I realize that the Haskell community "hath spoken" recently on the issue and prefers things to evolve even if the APIs change... I think we can do this if all the great volunteer talent in our community steps up. Shall we? — Mark _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

| 2. Less diversity in new GHC features: The GHC developers have generally | aimed new features at a future release, where the existence and stability | of new features has driven their incorporation. It was assumed that the | Platform would eventually catch up. If the GHC release and the | corresponding Platform release are simultaneous, then some GHC features | may need to be pushed out to the following release so there is time for | the Platform to be adapted. | 3. The GHC development process will need to become more phased: | Experimentation with new features will still be encouraged, but adoption | of the new features will need to be gated to correspond with what the | Platform can implement. (This is really another view of issue 2.) I'm not sure that's true. We try hard not to break backward compatibility with new features. So a new GHC/HP release might have new features in GHC that are simply un-exploited by the HP libraries. That's fine! By far the biggest backward-compat issues are related to changes in the libraries themselves, rather than new features. Simon

On 25-03-2015 15:24, Mark Lentczner wrote:
Concrete proposal based on that and the other fine input in the responses:
*Simultaneous Release:* Since it is organizationally impractical to have one release, let's have GHC and Platform release at the same moment. That is, GHC HQ would keep a release in "RC" until HP was ready. By the same token, HP team commits to tracking GHC from RC1, and aiming to hit ready for release within a week of GHC being ready. Both go "release" in the same announcement. *In fact, let's version HP with the same number as GHC!*
What is the purpose of doing this? It's not clear to me that there's any upside, only the rather large downside of GHC HQ (and thus some of us downstreams) having to wait arbitrarily long for the HP release. The historical record for timeliness of HP releases is not encouraging. Are we just expecting that the HP will somehow magically attract more developers... which will somehow translate into more timely releases? Regards,

Good plan. You didn’t mention a key point:
· Make sure that installing the Platform doesn’t get in the way, if you subsequently want to upgrade libraries or whatever.
I am un-clear about precisely what the problem(s) is/are here. I’m pretty sure they require infrastructure work (in Cabal) to achieve.
Simon
From: Mark Lentczner [mailto:mark.lentczner@gmail.com]
Sent: 25 March 2015 14:25
To: Simon Peyton Jones
Cc: Gershom B; Manuel M T Chakravarty; haskell-platform@projects.haskell.org; haskell-infrastructure@community.galois.com; Duncan Coutts; ghc-devs@haskell.org; Haskell Libraries
Subject: Re: wither the Platform
On Wed, Mar 25, 2015 at 2:09 AM, Simon Peyton Jones

On 2015-03-25 at 15:24:30 +0100, Mark Lentczner wrote: [...]
Concrete proposal based on that and the other fine input in the responses:
*Simultaneous Release:* Since it is organizationally impractical to have one release, let's have GHC and Platform release at the same moment. That is, GHC HQ would keep a release in "RC" until HP was ready. By the same token, HP team commits to tracking GHC from RC1, and aiming to hit ready for release within a week of GHC being ready. Both go "release" in the same announcement. *In fact, let's version HP with the same number as GHC!*
[...] I'm a bit worried about the aspect of delaying the GHC release schedule for the sole purpose to provide the HP with more visibility, while penalising those users that have no interest to use the HP anyway. Otoh, there's usually enough time between the last RC and the actual final release, which should give the HP at least one week of time anyway w/o any active delay on GHC's end. Otoh, as soon as the new HP is released, it provides users with the perception of a new stable HP release to jump on right-away. That, however, may lead to a poor experience if the it's the first HP release for a given major GHC version as Hackage usually hasn't fully caught up by the time a GHC x.y.1 is unleashed. So if we had co-released a HP featuring GHC 7.10.1 today, there would still be enough Hackage packages not yet compatible with GHC 7.10.1 to recommend users *not* to install the release right-away. So I'm actually not sure if a simultaneous release of GHC x.y.1 w/ HP would be in the HP's best interest in terms of providing a reliable and complete development environment (which IMO requires access to Hackage, even more so if the HP is to be reduced to contain less packages) -- hvr

On Fri, Mar 27, 2015 at 5:24 AM, Herbert Valerio Riedel
I'm a bit worried about the aspect of delaying the GHC release schedule for the sole purpose to provide the HP with more visibility,
That isn't the purpose at all. My aim ins't to promote HP. The aim of my suggestion is to ensure that there is a consistent way for the community to "get Haskell" (as GHC itself is not enough for anyone - you need cabal at the least, and there are libraries that are common enough to be considered essential: text, vector, etc...). It is also to ensure there is a consistent reference point for package developers to test their packages against, for those packages that wish to support more than just the current GHC. Again, GHC releases themselves do not form a big enough reference point to ensure two packages that "support the last two release" are supporting the same thing. ...
Otoh, there's usually enough time between the last RC and the actual final release, which should give the HP at least one week of time anyway w/o any active delay on GHC's end.
Well - if there is a week of commits to GHC, it should really do another RC before declaring it final. The difference between the last RC and the release should a single commit of no more than the version number change and the change log. Frankly, if we are all on board with this, then GHC could suffer a few day (week at most) delay between such an RC (as in "we're frozen, save for the version stamp"), and announcing "release". This would not only allow there to be a Platform on the same day - but also GHC bindists for other OSes on the same day.
Otoh, as soon as the new HP is released, it provides users with the perception of a new stable HP release to jump on right-away. That, however, may lead to a poor experience if the it's the first HP release for a given major GHC version as Hackage usually hasn't fully caught up by the time a GHC x.y.1 is unleashed.
We need to have to maintainers of the packages in the HP on board with this and down with the "we're all going to gear up in the four weeks before a GHC version"... not "we'll gear up in the four weeks after". Frankly, for the kinds of packages that are in the platform (text, vector, unordered containers, etc...), having these packages lag GHC release so that they are broken on Hackage the day of GHC release is in nobody's interest: It gives a poor experience for ALL users of Haskell. So if we had co-released a HP
featuring GHC 7.10.1 today, there would still be enough Hackage packages not yet compatible with GHC 7.10.1 to recommend users *not* to install the release right-away.
But that is true of GHC as well. We need to stop having the attitude of "Platform is for newcomers / GHC is for heavyweights". It is perfectly fine to announce "GHC 7.10.1 is out - you can install it from Platform 7.10.1 which is a complete installer for your OS with core and standard libraries, and tools; or if you prefer you can get the minimal binary compiler build. As always, not all packages on Hackage will be compatible." Then our recommendations on to users on IRC are about which version is best for their needs, not "don't install platform, you won't be able to get lens to compile..."
So I'm actually not sure if a simultaneous release of GHC x.y.1 w/ HP would be in the HP's best interest in terms of providing a reliable and complete development environment (which IMO requires access to Hackage, even more so if the HP is to be reduced to contain less packages)
People who care about stability will go ahead and hang back to what they consider a stable reference for them. (Gosh, how many projects are still supporting Python 2.6?!). But it will only be a "stable reference" if people use it, and package maintainers support it. Today's mess of GHC releases, Platform releases, alternative installer releases, etc... leaves both users and package maintainers no way to create or find stability. - Mark

On Fri, Mar 27, 2015 at 10:09 AM, Mark Lentczner
But that is true of GHC as well. We need to stop having the attitude of "Platform is for newcomers / GHC is for heavyweights". It is perfectly fine to announce "GHC 7.10.1 is out - you can install it from Platform 7.10.1 which is a complete installer for your OS with core and standard libraries, and tools; or if you prefer you can get the minimal binary compiler build. As always, not all packages on Hackage will be compatible." Then our recommendations on to users on IRC are about which version is best for their needs, not "don't install platform, you won't be able to get lens to compile..."
The lens package (alongside every other package I maintain that is incurred as a dependency of lens) has very deliberately support all Haskell Platform releases for at least 3 current major GHC releases, often at great expense to the API. No offense, but I don't think lens is the culprit here. -Edward

On Fri, Mar 27, 2015 at 7:27 AM, Edward Kmett
The lens package (alongside every other package I maintain that is incurred as a dependency of lens) has very
deliberately support all Haskell Platform releases for at least 3 current
major GHC releases, often at great expense to the API.
No offense, but I don't think lens is the culprit here.
Excellent! None taken. I appologize for my poor choice of example. Several people have included lens in an example of "newcomers want to install x, y, and z - and it won't work with the platform." It is great that lens is not the problem - but it does underscore that the other packages haven't seen fit to match the same stability release points as lens - hence the unlikeliness of them working together except at HEAD.

Gershom B
: On March 25, 2015 at 12:43:22 AM, Manuel M T Chakravarty (chak@cse.unsw.edu.au) wrote:
Look. I guess, I count as a power user ;) I rarely use sandboxes. They are great for a particular type of use, but you can do many things quite happily without them. (Ask SimonPJ; I reckon he doesn’t use sandboxes either.)
Ironically, the only time I have had to use a sandbox was in doing work on the new Haskell homepage (it is written in Yesod). In fact, that was insufficient for some reason and I had to install hsenv as well and use that for an even “stronger” sandbox. As I have said, I also install the platform whenever possible. Believe me, you are preaching to the choir!
Then, I don’t understand why the Platform isn’t the recommended
The mistake here is to try to make this a one-size-fits all. I honestly don’t care about a platform that is ideal for everybody. I want something that I can point newbies at that makes them happy quickly. That needs to be one download with all the packages that you need to get going included. .. Well, we have got people who want to learn Haskell now and who use Haskell as part of their coursework now. Why make them wait for future work which will probably take longer than planned, needs to be rolled out, etc?
I do not understand this. The platform still exists, is still great, is not going anywhere, and as far as I can tell, is on track to become even better. You can point people at https://www.haskell.org/platform/ or you can point them at downloads.haskell.org which links to there or you can point them at www.haskell.org and tell them “the downloads page gives you options, pick the platform option.” Nobody who wants to use the platform must wait for anything.
Nobody has taken anything from you, or anyone else. Nobody wants to take anything from you, or anyone else.
I know, but look at the subject of this message (and the original post in this thread). Mark’s questions was —as I read it— do we still need the platform. Then, lots of power users jumped up and down criticising the flaws in the platform and why other approaches are better. To which I say, other approaches are better for you (plural)[1], but not to a large class of novices. That is all. Also, to reiterate, I’m arguing with you because you replied to my message. I definitely do appreciate all the effort you (and others) are putting into the homepage and infrastructure. Manuel [1] English is such an awkward language :P
We just want to recognize that this other set of users — those coming from other languages, and wanting to “from the gate” install large sets of dependencies — this set of users has grown and is growing and if we don’t want them to become frustrated and bounce off Haskell, then we need to provide resources for them too, and steer them to things that meet _their_ needs as well. They are not lucky enough to be in your class and be guided by an instructor.
If you want to patch the downloads page so that it more clearly highlights the platform option or makes clear that if you want to be a “power user” and manage lots of dependencies with abandon you may want the minimal installers, and if you want “a good, wide-ranging set of defaults to experiment and learn with” then you want the platform, or some other wording that is perhaps clearer, or anything at all like that, then there is again a ticket on the github homepage to improve the language, and pull requests are welcome. The compromise wording on the page now is just that: a compromise. I don’t even claim it to be a great one, just what was settled on. If you (or anyone) can improve it to present both sorts of installers and the tradeoffs more clearly and more simply, please do!
There are different types of beginners, and meeting all their needs (as well as the needs of long-timers of various stripes, etc) all at once is a tricky task. Again, the main advantage that students have is that they have instructors who can guide them in what they recommend to download, how to get started, etc. So, for the moment, I would argue that students are not the most fundamental target audience for that snippet of text on the downloads page. But, that does not mean the language cannot be better for students too. And I would very much like it to be!
Beyond that I don’t feel we’re discussing anything as metaphysical as flexibility or simplicity. And I don’t feel my own preferences are necessarily better or worse than others — I just want two things, as do we all I think. A) To have the best possible toolsets available for all types of users in all possible development setups, and B) To somehow condense the core of that information into an easily digestible form to help steer visitors to the Haskell homepage to the setup that is right for _them_.
As always, anybody who wants to help with this in any regard with the new homepage is welcome and invited to do so. We have plenty of open tickets and room for improvement all around, a helpful crew on the #haskell-infrastructure irc, and patches, pull requests, and new tickets are always welcomed.
Best, Gershom
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

On 2015-03-25 at 05:43:13 +0100, Manuel M T Chakravarty wrote: [...]
The most important message for these new users is “always use a sandbox”, because that at least keeps them from destroying the full environment when they allow installations of packages that break other packages, etc. And the platform, to the extent that it changes and complicates build plans, does these users no good.
You are talking about a specific kind of new users. These new users want to install a web stack or similar — i.e., they need tons of packages. These people may be new to Haskell, but I reckon they are otherwise power users.
I’m talking about somebody picking up Learn you a Haskell and wanting to write Hello World.
IMO, that class of users don't need anything beyond the packages bundled with GHC anyway... However, LYAH already directs such users to the platform as it states in its introduction: | What you need to dive in | | A text editor and a Haskell compiler. You probably already have your | favorite text editor installed so we won't waste time on that. For the | purposes of this tutorial we'll be using GHC, the most widely used | Haskell compiler. | | *The best way to get started is to download the Haskell Platform,* | which is basically Haskell with batteries included.* | [...] And here's what Bird's "Thinking Functionally with Haskell" has to say about the HP: | 1.5 The Haskell Platform | | If you visit the site www.haskell.org, you will see how to download | The Haskell Platform. This is a large collection of tools and packages | that can be used to run Haskell scripts. The platform comes in three | versions, one for each of Windows, Mac and Linux. We deal only with | the Windows version, the others being similar. So I'm not too worried that newcomers following a guided course/tutorial (such as LYAH or TFwH) won't be directed to the platform. Cheers, hvr

On Tue, Mar 24, 2015 at 8:20 PM, Gershom B
install Yesod, or GHCJS, or Yesod and then GHCJS, and then some package with an API binding for some webservice which has not been updated in two years and requires an old version of time, and then maybe a GUI toolkit and of course lens.
That sounds like a recipe for Cabal Hell, Platform or not!

On 2015-03-25 at 06:52:22 +0100, Mark Lentczner wrote:
On Tue, Mar 24, 2015 at 8:20 PM, Gershom B
wrote: install Yesod, or GHCJS, or Yesod and then GHCJS, and then some package with an API binding for some webservice which has not been updated in two years and requires an old version of time, and then maybe a GUI toolkit and of course lens.
That sounds like a recipe for Cabal Hell, Platform or not!
Regardless of the hellish issue, Gershom's comment indirectly highlights of one thing where I'm wondering if the HP's growth isn't bounded by diversity: There are some areas which I'd expected to some degree in a batteries-included platform, where the Haskell ecosystem has diverged into popular but distinct package-sub-ecosystems (which all have their respective communities/followers), such as HTTP-serving (Yesod/Snap/Happstack/...), or which lens-abstraction to use, or at the more fundamental level, even the streaming abstraction (pipes/conduit/io-streams/machines/...) doesn't seem to have a clearly recommended and agreed upon representative. Also, to this day we don't have any TLS library support in the platform, which also is subject to debate of which crypto-library to use (and there's also the question whether to use OpenSSL via FFI or a native TLS reimpl). So the platform-included `HTTP` package is not even able to access `https://` URLs which is quite sad, as this also holds back `cabal-install`'s ability to access `https://`-only repositories. So, where do you see the platform's growth for those packages/areas where you'll probably not get a reasonable majority consensus for picking a specific package? Cheers, hvr
participants (24)
-
Andrew Farmer
-
Anthony Cowley
-
Bardur Arantsson
-
Brandon Allbery
-
Carter Schonwald
-
Christopher Done
-
Duncan Coutts
-
Edward Kmett
-
George Colpitts
-
Gershom B
-
Herbert Valerio Riedel
-
Howard B. Golden
-
Joachim Breitner
-
M Farkas-Dyck
-
Manuel M T Chakravarty
-
Mark Lentczner
-
Michael Snoyman
-
Miëtek Bak
-
Nathan Bouscal
-
Richard Eisenberg
-
Roman Cheplyaka
-
Simon Peyton Jones
-
Thomas Miedema
-
Yitzchak Gale