Doug McIlroy | 11 Nov 17:59 2012

size of Haskell Platform

This note is an offshoot of "curl package broken in Windows",
where this item appeared:

> Did you know that Strawberry Perl includes a cygwin gcc?
> ...
> Maybe Haskell Platform could do the same.

The suggestion brought to mind a true-life parable: the pump
station at Tok.  (Tok is the third corner--after Anchorage
and Fairbanks--of Alaska's triangular core of long-distance
highways.) When I visited Tok long ago, it was a village of
several hundred souls, almost all of whom were employed by one
government agency or another, principal among which were the
highway department, the Alaska Communication Service and the
pump station, which kept fuel flowing to Eielson Air Force Base.

The mission of the station was to keep one pump running 24 hours
a day. Most of the time, of course, the pump hummed along by
itself. To assure that, there had to be a standby machine,
an operator to watch over both, and a mechanic who could fix
them if need be.  For such a lonely job it was deemed well to
have two operators. And there had to be two operators for each
of several shifts. A little redundancy on the mechanical side
seemed wise, too.  The crew and their families, say nothing of
the pumps themselves, needed to be housed, and the installation
needed to be supplied with the necessities of life. (The nearest
supermarket was in Fairbanks, 300 miles away.)  These needs
demanded a motor pool and property maintenance cadre, whose
very presence reinforced the need.

(Continue reading)

Don Stewart | 11 Nov 18:26 2012
Picon

Re: size of Haskell Platform

Hey Doug,

The process for adding new packages is specified here:

http://trac.haskell.org/haskell-platform/wiki/AddingPackages

The HP aims for comprehensive, general functionality. Things like databases, graphics libraries and web servers are well in scope for inclusion. It should grow.

Cheers,
  Don

On Nov 11, 2012 12:00 PM, "Doug McIlroy" <doug <at> cs.dartmouth.edu> wrote:
This note is an offshoot of "curl package broken in Windows",
where this item appeared:

> Did you know that Strawberry Perl includes a cygwin gcc?
> ...
> Maybe Haskell Platform could do the same.

The suggestion brought to mind a true-life parable: the pump
station at Tok.  (Tok is the third corner--after Anchorage
and Fairbanks--of Alaska's triangular core of long-distance
highways.) When I visited Tok long ago, it was a village of
several hundred souls, almost all of whom were employed by one
government agency or another, principal among which were the
highway department, the Alaska Communication Service and the
pump station, which kept fuel flowing to Eielson Air Force Base.

The mission of the station was to keep one pump running 24 hours
a day. Most of the time, of course, the pump hummed along by
itself. To assure that, there had to be a standby machine,
an operator to watch over both, and a mechanic who could fix
them if need be.  For such a lonely job it was deemed well to
have two operators. And there had to be two operators for each
of several shifts. A little redundancy on the mechanical side
seemed wise, too.  The crew and their families, say nothing of
the pumps themselves, needed to be housed, and the installation
needed to be supplied with the necessities of life. (The nearest
supermarket was in Fairbanks, 300 miles away.)  These needs
demanded a motor pool and property maintenance cadre, whose
very presence reinforced the need.

Thus the support team to keep one pump going ballooned to about
100 people--a chain reaction that barely avoided criticality.

So it seems to be with Haskell Platform, which aims to include
"all you need to get up and running"--"an extensive set of
standard libraries and utilities with full documentation." I
get the impression that the Platform is bedeviled by the
same prospect of almost unfettered growth.

[One ominous sign: the description of the Haskell Platform
at lambda.haskell.org/platform/doc/current/start.html suggests
that one must join some mysterious Cabal, whose nature is
hidden by a link to nowhere, simply to get started.]

What principles guide the selection of components for "all
you need to get up and running"?

Doug McIlroy

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Gwern Branwen | 11 Nov 19:09 2012
Picon

Re: size of Haskell Platform

On Sun, Nov 11, 2012 at 11:59 AM, Doug McIlroy <doug <at> cs.dartmouth.edu> wrote:
> So it seems to be with Haskell Platform, which aims to include
> "all you need to get up and running"--"an extensive set of
> standard libraries and utilities with full documentation." I
> get the impression that the Platform is bedeviled by the
> same prospect of almost unfettered growth.

That's an interesting story, but I think the analogy is fundamentally broken.

So the pump needed someone to watch it, needed spares, needed multiple
people for multiple shifts, then they needed mechanics and motor pools
and all their families came along etc until finally it was a little
town? Well, OK.

But there's no such effect in software libraries - if I add in a
bytestring library to the HP, I don't wind up needing a MS Excel shim
library to service it! When I added in some popular core library like
bytestring, there's no expansionary loop - I don't find myself needing
to add in a dozen libraries just to make bytestring run better.
Bytestring already runs fine. Its dependencies are all already in the
HP; the additional complexity for adding Bytestring is just...
Bytestring. The arrow of dependency points the other way than in your
story - if I need a MS Excel shim library, maybe I'll need the
bytestring library. It's a pyramid, not a repeatedly cycling positive
feedback loop.

(Incidentally, Geoffrey West's city research suggests that cities
benefit from sublinear scaling of most infrastructure; so "barely
missing criticality" is not at all surprising.)

--

-- 
gwern
http://www.gwern.net
Blake Rain | 11 Nov 22:51 2012
Picon

Re: size of Haskell Platform

I love it when people explain things or make a point using a relevant story (or parable) :)

It reminds me of when Michael Abrash would start his articles with the same. Ah, the memories...

Cheers Doug.

On 11 Nov 2012 17:00, "Doug McIlroy" <doug <at> cs.dartmouth.edu> wrote:
This note is an offshoot of "curl package broken in Windows",
where this item appeared:

> Did you know that Strawberry Perl includes a cygwin gcc?
> ...
> Maybe Haskell Platform could do the same.

The suggestion brought to mind a true-life parable: the pump
station at Tok.  (Tok is the third corner--after Anchorage
and Fairbanks--of Alaska's triangular core of long-distance
highways.) When I visited Tok long ago, it was a village of
several hundred souls, almost all of whom were employed by one
government agency or another, principal among which were the
highway department, the Alaska Communication Service and the
pump station, which kept fuel flowing to Eielson Air Force Base.

The mission of the station was to keep one pump running 24 hours
a day. Most of the time, of course, the pump hummed along by
itself. To assure that, there had to be a standby machine,
an operator to watch over both, and a mechanic who could fix
them if need be.  For such a lonely job it was deemed well to
have two operators. And there had to be two operators for each
of several shifts. A little redundancy on the mechanical side
seemed wise, too.  The crew and their families, say nothing of
the pumps themselves, needed to be housed, and the installation
needed to be supplied with the necessities of life. (The nearest
supermarket was in Fairbanks, 300 miles away.)  These needs
demanded a motor pool and property maintenance cadre, whose
very presence reinforced the need.

Thus the support team to keep one pump going ballooned to about
100 people--a chain reaction that barely avoided criticality.

So it seems to be with Haskell Platform, which aims to include
"all you need to get up and running"--"an extensive set of
standard libraries and utilities with full documentation." I
get the impression that the Platform is bedeviled by the
same prospect of almost unfettered growth.

[One ominous sign: the description of the Haskell Platform
at lambda.haskell.org/platform/doc/current/start.html suggests
that one must join some mysterious Cabal, whose nature is
hidden by a link to nowhere, simply to get started.]

What principles guide the selection of components for "all
you need to get up and running"?

Doug McIlroy

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Gmane