
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