important news: refocusing discussion

isaac jones ijones at galois.com
Sat Mar 25 20:31:04 EST 2006


On Sat, 2006-03-25 at 13:17 +0300, Bulat Ziganshin wrote:
> Hello Ross,
> 
> Saturday, March 25, 2006, 4:16:01 AM, you wrote:
> 
> > On Fri, Mar 24, 2006 at 02:47:09PM -0000, Simon Marlow wrote:
> >> I think it would be a mistake to relegate concurrency to an addendum; it
> >> is a central feature of the language, and in fact is one area where
> >> Haskell (strictly speaking GHC) is really beginning to demonstrate
> >> significant advantages over other languages.  We should make the most of
> >> it.
> 
> > Essential for many applications, certainly, but central?  How can you
> > say that?
> 
> it becomes central language feature just because it's much easier to
> write concurrent programs in Haskell than in other languages and
> because ghc's implementation of "user-level threads" is blazing fast,
> outperforming closest competitor in hundreds (!) times in the Language
> Shootout concurrency testing

I don't think "central to the language" is a particularly helpful
concept here.  Let's try to frame debates like this in terms of
"interests", not "positions".  That is, an interest is "we should be
able to write thread-safe libraries" and a position is "Haskell' should
have concurrency".  Once we understand each-others' interests, we can
look to find solutions that satisfy a compelling set of interests.

I'll try to frame some interests that various folks seem to have
expressed, and I admit that I may miss some and be wrong, so please add
to or correct the list below (maybe it should go on the wiki):

Possible Interests:
 1. I can write tools like filesystems, web servers, and GUIs in
Haskell'
 2. Libraries that I use are thread-safe
 3. I can compile my code with any Haskell' compiler
 4. Tools such as debuggers and tracers that claim to support Haskell'
actually work on my code.
 5. That there not be "too many Haskell's"
 6. That there be a diversity of Haskell' implementations
 7. That concurrency be reasonable to implement for existing
compilers/interpreters.
 8. That it be reasonable to implement for new compilers/interpreters.
 9. Show off how effective Haskell can be in this area (possibly
attracting new users).

By 5 I mean that it might be nice to have a "core" Haskell and a bunch
of addenda.  But this could cause no two Haskell' implementations to be
the same. (My Haskell' might have concurrency and FFI, but no class
system, or something.)  The more optional addenda we have, the more we
actually fracture the language.  We could be in the same situation we're
in today.

Isaac's Interests
 * 1-6, 9

Simon's Interests:
 * He's mentioned 9, I'm sure that there are others.

Ross and John Meacham I think have both expressed worry about 7 and 8.

I have no idea if it would work, but one solution that Simon didn't
mention in his enumeration (below) is that we could find a group of
people willing to work hard to implement concurrency in Hugs, for
example, under Ross's direction.  That might satisfy interest number 7.

Please help me to build this understanding of various folks' interests,
an solutions to satisfy them.

peace,

  isaac



Simon Marlow Wrote:
> It boils down to a choice between:
> 
>  (1) Haskell' does not include concurrency.  Concurrent programs 
>      are not Haskell'.
> 
>  (2) Haskell' includes concurrency.  Concurrent programs are
>      Haskell', but there are some compilers that do not implement
>      all of Haskell'.
> 
>  (3) There are two variants of Haskell', Haskell' and
>      Haskell'+Concurrency.  Compilers and programs choose which
>      variant of the language they implement/are implemented in.
> 
>  (4) The same as (3), but the two variants are Haskell' and
>      Haskell'-Concurrency  (where -Concurrency is a negative
>      addendum, an addendum that subtracts from the standard).

-- 
isaac jones <ijones at galois.com>



More information about the Haskell-prime mailing list