
As we sit here riding the Haskell wave: http://www.cse.unsw.edu.au/~dons/tmp/cafe.png with nearly 2000 (!) people reading haskell-cafe@, perhaps its time to think some more about how to build and maintain this lovely Haskell community we have. Just yesterday I received an email: "I posted it to Haskell-Cafe and received loads of brilliant responses. Wow, those guys are awesome. I'm definitely going to learn Haskell now." Which is *exactly* the kind of (view of the) community we want to build and encourage, so we can keep the Haskell project growing into the future. I think the main thing we need to remember is to help train new experts in the community, to be fluent in the culture, ensuring that expertise and a knowledge of the culture diffuses through the new people arriving. That is, to help people progress from newbie, to intermediate, to expert, and thus ensure the culture is maintained (avoiding `Eternal September'). This graphic[1] sums the main issue up nicely, in my view: http://headrush.typepad.com/photos/uncategorized/buildingausercommunity.jpg And the steps to follow (people can think about how best they apply to them) (also from [1]): * Encourage newer users--especially those who've been active askers--to start trying to answer questions We're pretty good with this, but we can be *explicit* about it. If you're taking a lot from the community, please put a lot back in (in terms of writing about it, contributing answers, new libraries, and so on). I note this is also exactly what the Summer of Code helps do too -- we've had several people paid to progress from newbie to expert, thanks to the SoC. * Give tips on how to answer questions Answering politely, and in detail, explaining common misunderstandings is better than one word replies. * Adopt a near-zero-tolerance "Be Nice" policy when people answer questions We are very good here already, both on email and IRC. * Teach and encourage the more advanced users (including moderators) how to correct a wrong answer while maintaining the original answerer's dignity. This is hard, perhaps people can think some more about this. * Re-examine your reward/levels strategy for your community This is also important: on the IRC channel we actually use participation data (http://www.cse.unsw.edu.au/~dons/irc/haskell-07.html) to determine who gets moderator privledges. For the community in general, rewards are along the lines of "going to the hackathon", "becoming the domain expert for some library". Cheers and happy hacking, Don [1]. http://headrush.typepad.com/creating_passionate_users/2006/12/how_to_build_a...

dons@cse.unsw.edu.au (Donald Bruce Stewart) writes:
As we sit here riding the Haskell wave:
http://www.cse.unsw.edu.au/~dons/tmp/cafe.png
with nearly 2000 (!) people reading haskell-cafe@, perhaps its time to think some more about how to build and maintain this lovely Haskell community we have.
Yes, the sheer volume of posts is definitely becoming a problem (for me, at least). All your suggestions for keeping the community polite and helpful are good. But I wonder if there are also any useful technical tips for users like myself, who would like to be able to keep up, but feel they are gradually drowning? Regards, Malcolm

On Fri, Jul 13, 2007 at 09:35:09 +0100, Malcolm Wallace wrote:
dons@cse.unsw.edu.au (Donald Bruce Stewart) writes:
As we sit here riding the Haskell wave:
http://www.cse.unsw.edu.au/~dons/tmp/cafe.png
with nearly 2000 (!) people reading haskell-cafe@, perhaps its time to think some more about how to build and maintain this lovely Haskell community we have.
Yes, the sheer volume of posts is definitely becoming a problem (for me, at least). All your suggestions for keeping the community polite and helpful are good. But I wonder if there are also any useful technical tips for users like myself, who would like to be able to keep up, but feel they are gradually drowning?
One obvious solution is to split the list into several, more specialised lists. It's far from obvious, at least to me, how to do that with this list though. Personally I try to read the first post in every conversation thread. If it doesn't grab be then I delete the whole thread. Not an ideal strategy, but it helps me keeping my day job ;-) /M -- Magnus Therning (OpenPGP: 0xAB4DFBA4) magnus@therning.org Jabber: magnus.therning@gmail.com http://therning.org/magnus

Lutz Donnerhacke
Switch to Usenet. The new haskell group will die, if the traffic will not increase.
If anything, Usenet is even worse than mailing lists for volume, especially of spam. Also, very few sites maintain their nntp servers adequately these days - e.g. comp.lang.haskell has never made it to where I work. Regards, Malcolm

* Malcolm Wallace wrote:
If anything, Usenet is even worse than mailing lists for volume, especially of spam. Also, very few sites maintain their nntp servers adequately these days - e.g. comp.lang.haskell has never made it to where I work.
I beg to differ. Of course, I'm an Usenet admin and involved in Usenet administration since years. Saing "no Usenet" is usually a sign of the famous "not invented here" syndrom. I'd sugest to keep the 30+ years experience with large volume distributed mass communication, instead of throwing good and infrastructure and user interfaces away. Wikis, Webformus and a lot of other Web 2.0 hypes are doomed to redo every mistake which is solved since 20+ years. MMDV.

Malcolm Wallace said that Usenet is pretty bad these days. Lutz Donnerhacke disagreed. Living as near the Antarctic as I do, I find that the Internet works fine, e-mail is just great, but NNTP is effectively dead. I stopped reading net news (with sadness and reluctance) about eight years ago when I found that I couldn't rely on getting comp.arch any more. It was also sad to say goodbye to comp.lang.functional, but that hadn't been heard from for some time either. I was very happy to discover Haskell-Café and would be sorry to lose it, as I would if it went over to NNTP.

ok
I was very happy to discover Haskell-Café and would be sorry to lose it, as I would if it went over to NNTP.
Well, it doesn't have to "go over" anywhere. I'm reading and posting just fine with NNTP right now. It works great. I found out I could do so by reading this thread. Until then, I'd avoided haskell-cafe, hanging out mostly on IRC for the last few months because I didn't want the high volume of email. -- Chris Smith

Chris Smith wrote:
Well, it doesn't have to "go over" anywhere. I'm reading and posting just fine with NNTP right now. It works great.
How'd you manage that?
I found out I could do so by reading this thread. Until then, I'd avoided haskell-cafe, hanging out mostly on IRC for the last few months because I didn't want the high volume of email.
I've been avoiding it for over a year for the same reason. (And because I didn't want people to have my real email address, but never mind...) Actually, since this is the first time I've tried to seriously use Thundrebird for email, I'm surprised at how buggy it is...

Andrew Coppin
Chris Smith wrote:
Well, it doesn't have to "go over" anywhere. I'm reading and posting just fine with NNTP right now. It works great.
How'd you manage that?
Andrew, sorry for the delay. Just point a news reader at news.gmane.org. -- Chris Smith

Malcolm Wallace
Yes, the sheer volume of posts is definitely becoming a problem (for me, at least).
As a newcomer I was stunned that this otherwise very sophisticated community was using an email list rather than a bulletin board. The shear torrent of email was impacting my mail program performance. Then I chased somes repies leading to earlier threads, and found bulletin-board stye access to our list at http://thread.gmane.org/gmane.comp.lang.haskell.cafe/ I much prefer this access, even if I wish the window spit vertically rather than horizontally. A bulletin board has the capabibility to evolve, e.g. into multiple entry points. Are there statistics on who reads which way? Posting stats should be obvious with a little script, for anyone who still has a hoard of messagess at homne.

Dave Bayer wrote:
Malcolm Wallace
writes: Yes, the sheer volume of posts is definitely becoming a problem (for me, at least).
As a newcomer I was stunned that this otherwise very sophisticated community was using an email list rather than a bulletin board. The shear torrent of email was impacting my mail program performance.
I find it incredibly surprising whenever I discover than an otherwise sophisticated community has adopted a bulletin board rather than email ;)
Then I chased somes repies leading to earlier threads, and found bulletin-board stye access to our list at
http://thread.gmane.org/gmane.comp.lang.haskell.cafe/
I much prefer this access, even if I wish the window spit vertically rather than horizontally.
A bulletin board has the capabibility to evolve, e.g. into multiple entry points.
Conversely, a bulletin board cannot be read offline, traps users into a single UI (in every case I've used, slow, ugly, and lacking in functionality) over which they have no control. Modern email programs have sophisticated sorting, filtering, scoring, processes (not just the MUA, but other programs during the delivery chain of my emails score them and sort them); and they allow me to read messages while offline, search them locally, etc etc. They have customisable key bindings, they allow me to read all of my mailing lists in one place, they are scriptable, may support plugins... all of this under full user control. Of course, having a bulletin board interface available for those who prefer it is a very nice thing. Jules

Jules Bean wrote:
I find it incredibly surprising whenever I discover than an otherwise sophisticated community has adopted a bulletin board rather than email ;)
Erm... why?
Conversely, a bulletin board cannot be read offline, traps users into a single UI (in every case I've used, slow, ugly, and lacking in functionality) over which they have no control.
Oh... I suppose. Still, a newsreader doesn't appear to have those limitations.
Modern email programs have sophisticated sorting, filtering, scoring, processes and they allow me to read messages while offline, search them locally, etc etc. They have customisable key bindings, they allow me to read all of my mailing lists in one place, they are scriptable, may support plugins... all of this under full user control.
I'd just prefer not to have to wait through 100 emails a day to find the few that interest me. With a newsreader, I can simply mark "ignore" on the threads that don't interest me, and I'm done. (Also, either my ISP or Thunderbird itself keeps magically "loosing" certain emails, which is rather irritating...)

On Fri, Jul 13, 2007 at 08:13:31PM +0100, Andrew Coppin wrote:
Jules Bean wrote:
I find it incredibly surprising whenever I discover than an otherwise sophisticated community has adopted a bulletin board rather than email ;)
Erm... why?
Conversely, a bulletin board cannot be read offline, traps users into a single UI (in every case I've used, slow, ugly, and lacking in functionality) over which they have no control.
Oh... I suppose.
Still, a newsreader doesn't appear to have those limitations.
I'd like to add that I simply don't have a powerful enough computer to run the bloatware browsers that most web-apps seem to require. So if you move to a pure web forum system, you lose me as well as Aaron.
Modern email programs have sophisticated sorting, filtering, scoring, processes and they allow me to read messages while offline, search them locally, etc etc. They have customisable key bindings, they allow me to read all of my mailing lists in one place, they are scriptable, may support plugins... all of this under full user control.
I'd just prefer not to have to wait through 100 emails a day to find the few that interest me. With a newsreader, I can simply mark "ignore" on the threads that don't interest me, and I'm done.
Why don't you just subscribe to one of the NNTP groups that is 2-way gatewayed with haskell-cafe? I can't imagine it being that hard, and it would fix all of your problems. Stefan

On Fri, 13 Jul 2007, Dave Bayer wrote:
As a newcomer I was stunned that this otherwise very sophisticated community was using an email list rather than a bulletin board. The shear torrent of email was impacting my mail program performance.
This is a cultural thing, and assuming that it's a lack of sophistication on our part is a bad idea - on the contrary, some of the better reasons to avoid a web-based board are entirely about enabling sophistication. Boards need polling. Boards force a single user interface on everyone. Boards don't enable local archives. Etc etc etc. With mail, you can pick a client to suit your needs.
A bulletin board has the capabibility to evolve, e.g. into multiple entry points.
So does a mailing list when you own the domain it's hosted on. -- flippa@flippac.org Sometimes you gotta fight fire with fire. Most of the time you just get burnt worse though.

Philippa Cowderoy wrote:
On Fri, 13 Jul 2007, Dave Bayer wrote:
As a newcomer I was stunned that this otherwise very sophisticated community was using an email list rather than a bulletin board. The shear torrent of email was impacting my mail program performance.
This is a cultural thing, and assuming that it's a lack of sophistication on our part is a bad idea - on the contrary, some of the better reasons to avoid a web-based board are entirely about enabling sophistication.
Boards need polling. Boards force a single user interface on everyone. Boards don't enable local archives. Etc etc etc. With mail, you can pick a client to suit your needs.
Indeed, and if you prefer newsgroups, you can even get a newsgroup
interface with gmane.org.
Incidentally, I've generally found gmane.org to be one of best ways to
manage volume -- like someone said: Usenet/NNTP has already solved many
of the issues with high volume.
--
Bardur Arantsson

On 7/13/07, Philippa Cowderoy
This is a cultural thing, and assuming that it's a lack of sophistication on our part is a bad idea - on the contrary, some of the better reasons to avoid a web-based board are entirely about enabling sophistication.
There's a very simple argument for using a bulletin-board: bulletin boards
are the lazy solution.

Dave Bayer wrote:
Malcolm Wallace
writes: Yes, the sheer volume of posts is definitely becoming a problem (for me, at least).
As a newcomer I was stunned that this otherwise very sophisticated community was using an email list rather than a bulletin board. The shear torrent of email was impacting my mail program performance.
Seconded. (I also commented on it at the time, and was told "use IRC or SMTP". Personally I'd prefer NNTP, but apparently I'm a minority here...)

Andrew Coppin wrote:
Dave Bayer wrote:
Malcolm Wallace
writes: Yes, the sheer volume of posts is definitely becoming a problem (for me, at least).
As a newcomer I was stunned that this otherwise very sophisticated community was using an email list rather than a bulletin board. The shear torrent of email was impacting my mail program performance.
Seconded. (I also commented on it at the time, and was told "use IRC or SMTP". Personally I'd prefer NNTP, but apparently I'm a minority here...)
What are you on about? Use gmane.org...
--
Bardur Arantsson

Malcolm Wallace wrote:
Yes, the sheer volume of posts is definitely becoming a problem (for me, at least). All your suggestions for keeping the community polite and helpful are good. But I wonder if there are also any useful technical tips for users like myself, who would like to be able to keep up, but feel they are gradually drowning?
Non-specific, I'm afraid, but technical advice: Get a decent mailreader, and learn how to use it well. Spending two hours or so learning the keybindings/advanced features of your mail reader will pay itself back 100 times over. Some people find that news readers are better than mail readers (really this is a feature of the programs, not the protocols; but they the programs tend to have different emphases). I believe the folks at gmane have setup a working two-way mail to news gateways for the haskell lists. Most people find it good to have a threading feature. (A few people have broken email clients which break threads when they reply, fortunately not too many on this list. If you're one of them, please fix it!). Couple this with the ability to either 'really delete', or just 'hide' a thread from view if it's not interesting to you and you start to work through the volume. It's stupid, but the the single feature that helps mail reading for me most of all is simply the fact that SPACE doubles up as 'page down in this email' and 'advance to next email in thread'. You can get through messages very fast this way. I use thunderbird, FWIW. And I don't think it's a panacea, but it works for me. In the past I've used mutt with some success. The emacs-based mailreaders are very powerful, but you will need to spend some time learning the keys. There are plenty of other mail readers out there. (Mind you, some of them are truly dire). Jules

On Fri, Jul 13, 2007 at 09:35:09AM +0100, Malcolm Wallace wrote:
Yes, the sheer volume of posts is definitely becoming a problem (for me, at least).
The Haskell lists are quite peculiarly named; the haskell@ list is pretty much what would be haskell-announce@ anywhere else, and haskell-cafe@ what would be haskell@ elsewhere. A haskell-cafe@ list elsewhere would probably be where the haskell@ people discuss things which aren't actually related to Haskell (like e.g. the demon.local newsgroup). I think the number of posts in the wrong place would be lower if these were more conventionally named (although there aren't a lot of them anyway). I think it would make sense to: * Rename haskell@ to haskell-announce@, and redirect mails from haskell@ to haskell-announce@ for some period. * After that, rename haskell-cafe@ to haskell@ in a similar manner. * At any point, create haskell-new-users@. This would have the advantage that people might not be so intimidated at making their first post here, and posts wouldn't be answered with category theory or scary type extensions. The disadvantages are that it makes an artificial barrier (when is someone ready to post to haskell@ instead?) and it doesn't split the discussion up by topic (if you want to see all the discussion about X, you need to follow both lists so you have the same amount of mail to read). I'm not sure if this is a good idea. * At any point, create topic-specific lists, e.g. a list for discussion type system extensions (not sure if that's a good one, as often an extension is the /answer/ to a question "how do I do foo?"). This needs people to work out which lists would allow us to make a significant dent to the haskell-cafe traffic. Thanks Ian, also drowning

Hello, On Friday 13 July 2007 16:45, Ian Lynagh wrote:
... * At any point, create haskell-new-users@. This would have the advantage that people might not be so intimidated at making their first post here, and posts wouldn't be answered with category theory or scary type extensions. The disadvantages are that it makes an artificial barrier (when is someone ready to post to haskell@ instead?)
Just an idea: How about haskell-first-post@ to encourage the second post to go to haskell@? Or is that too dictator-like?
... I'm not sure if this is a good idea.
I'm not sure either ...
...
Best regards Thorkil

Hi
* At any point, create haskell-new-users@. This would have the advantage that people might not be so intimidated at making their first post here, and posts wouldn't be answered with category theory or scary type extensions. The disadvantages are that it makes an artificial barrier (when is someone ready to post to haskell@ instead?)
Just an idea: How about haskell-first-post@ to encourage the second post to go to haskell@? Or is that too dictator-like?
Why not learning@haskell.org, for people who aren't using Haskell to do things, but are working through tutorials. A number of questions relate directly to books such as SOE, and these could be easily answered there. Thanks Neil

Hello, On Friday 13 July 2007 17:08, Neil Mitchell wrote:
Hi
* At any point, create haskell-new-users@. This would have the advantage that people might not be so intimidated at making their first post here, and posts wouldn't be answered with category theory or scary type extensions. The disadvantages are that it makes an artificial barrier (when is someone ready to post to haskell@ instead?)
Just an idea: How about haskell-first-post@ to encourage the second post to go to haskell@? Or is that too dictator-like?
Why not learning@haskell.org, for people who aren't using Haskell to do things, but are working through tutorials.
The idea with haskell-first-post@ would be to make it extremely easy for people to select which list to post to. For example, with a "learning" list, I would be uncertain myself. Whether it would also be easy for "answerers" to figure out how to behave, I don't know. In any case, it is important (as others have also said) not to lose the situation that mixes new-comers with experts.
A number of questions relate directly to books such as SOE, and these could be easily answered there.
Thanks
Neil
Best regards Thorkil

Ian Lynagh
I think the number of posts in the wrong place would be lower if these were more conventionally named (although there aren't a lot of them anyway).
There are very few inappropriate posts to the haskell@ list. I very much doubt that the list names are a problem.
* At any point, create haskell-new-users@.
This would pretty-much guarantee that no-one with the necessary expertise to answer questions was actually listening to them. :-( Regards, Malcolm

On Fri, 2007-13-07 at 09:35 +0100, Malcolm Wallace wrote:
But I wonder if there are also any useful technical tips for users like myself, who would like to be able to keep up, but feel they are gradually drowning?
I have a couple of simple heuristics that are almost universally
applicable to the mailing lists I read or participate in.
1) The longer the thread, the less likely it is that anything useful
can be found in it. I tend to read the first, say, five messages in a
thread and then move on unless there's something compelling in what I've
read in the first five messages or it's a topic I'm actively interested
in.
2) Develop a mental list of people who are "noise generators" for you.
Some people in haskell-cafe, for example, tend to speak miles and miles
over my head. As I identify them, I tend to just pass over their
messages because they really do just add confusion and noise to my
experience. There are other kinds of noise-generators too (albeit
thankfully few in this community!). Same treatment.
--
Michael T. Richter

Donald Bruce Stewart wrote:
As we sit here riding the Haskell wave:
[...]
* Give tips on how to answer questions
Answering politely, and in detail, explaining common misunderstandings is better than one word replies.
* Adopt a near-zero-tolerance "Be Nice" policy when people answer questions
We are very good here already, both on email and IRC.
Very timely! It's sad that haskell-cafe has so much noise now. I haven't been around very long at all but it has gone downhill dramatically even in the last 6 months (I think I could put a date on it but lets not get into that). As well as being nice, can't you sometimes tell people to RTFM? Or, You've asked that before, or That's an FAQ, search the archive? One way of protecting the community is to protect this list from drowning in noise and being a bit rough with newbies who don't do any research at all before asking is perfectly acceptable in my view. It goes without saying that everything you say about the quality of the help here is true but I don't think you should treat us with kid gloves. -- View this message in context: http://www.nabble.com/Maintaining-the-community-tf4071917.html#a11576127 Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

On 13/07/07, Jim Burton
As well as being nice, can't you sometimes tell people to RTFM? Or, You've asked that before, or That's an FAQ, search the archive?
I suppose you could, but speaking as someone who doesn't know much but tries to answer questions when he does know - I would feel put off from answering questions in that case. If the "easy questions" become second-class citizens, I would be less likely to answer them. I don't want to give the impression that *I* am encouraging the degeneration of the list. So I would vote for only saying read the manual/FAQ/etc after the question has been answered. (That being said, I can never find what I'm looking for on the Haskell wiki; and as mentioned in other threads Google doesn't index it. So finding the relevant answers can be tricky.) Cheers, Dougal

Jim Burton wrote:
Very timely! It's sad that haskell-cafe has so much noise now.
I disagree with that characterisation. I don't mean to be pedantic, but I don't think haskell-cafe has lots of noise. I think it has lots of signal! Quite different. We don't have a problem (in my perception, at least) with the quality of either posts of responses. Not a general one, anyway. The only problem is that the volume is increasing; which is a problem if that makes it hard for valuable contributors to keep contributing.
As well as being nice, can't you sometimes tell people to RTFM?
The problems people have with haskell are often conceptual, and the manual doesn't help them, because they don't (yet) understand the language well enough to understand the manual. I very, very rarely see a question here about 'how to use a library funciton' or similar which could, in fact, be easily looked up in a manual. People do quite often respond to posts with links to the online library documentation, which is great.
Or, You've asked that before,
That's certainly a fair thing to say, if it's true. I don't see that happening very often.
One way of protecting the community is to protect this list from drowning in noise and being a bit rough with newbies who don't do any research at all before asking is perfectly acceptable in my view.
I disagree with that on two separate levels: (a) I don't think being rough with newbies is the right response. (b) I also don't think it would achieve the goal you state. Being rough with one newbie will not, in my experience, particularly prevent the next question asked by the next newbie :) All IMHO, obviously. Jules

Jules Bean wrote:
Jim Burton wrote:
Very timely! It's sad that haskell-cafe has so much noise now.
I disagree with that characterisation. I don't mean to be pedantic, but I don't think haskell-cafe has lots of noise. I think it has lots of signal! Quite different.
I think you're right actually. I was exaggerating the problem due to having woken up as a bad tempered spartan.
[...]
One way of protecting the community is to protect this list from drowning in noise and being a bit rough with newbies who don't do any research at all before asking is perfectly acceptable in my view.
I disagree with that on two separate levels:
(a) I don't think being rough with newbies is the right response. (b) I also don't think it would achieve the goal you state. Being rough with one newbie will not, in my experience, particularly prevent the next question asked by the next newbie :)
All IMHO, obviously.
Jules
You notice I said "people who do no research at all"? It might be unfriendly and counter to the way things happen here, but I think the most helpful response is to tell them to do some research. -- View this message in context: http://www.nabble.com/Maintaining-the-community-tf4071917.html#a11577694 Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

| > Very timely! It's sad that haskell-cafe has so much noise now. | | I disagree with that characterisation. I don't mean to be pedantic, but | I don't think haskell-cafe has lots of noise. I think it has lots of | signal! Quite different. | | We don't have a problem (in my perception, at least) with the quality of | either posts of responses. Not a general one, anyway. The only problem | is that the volume is increasing; which is a problem if that makes it | hard for valuable contributors to keep contributing FWIW I agree with Jules's response here. Yes, the traffic is increasing, but much of it is in long threads with multiple response, and email readers are good at letting you skip that if you don't want to read it. Furthermore, we have the much-lower-bandwidth 'haskell@haskell.org' list, for those who want to see announcements and discussion starters, but don't want the full haskell-cafe experience. We need at least one forum in which it's acceptable to ask anything, no matter how naive, and get polite replies. (RTFM isn't polite; but "The answer is supposed to be documented here (\url); let us know if that doesn't answer your qn" is fine.) I'd be sorry to lose that. Simon

Simon Peyton-Jones wrote:
[...] We need at least one forum in which it's acceptable to ask anything, no matter how naive, and get polite replies. (RTFM isn't polite; but "The answer is supposed to be documented here (\url); let us know if that doesn't answer your qn" is fine.) I'd be sorry to lose that.
I fully agree and I don't mean RTFM literally. "The answer is supposed to be documented here (\url)..." is a very acceptable form of it...one can be brisk without being rude and I'm always grateful when someone points me in the direction of the right "manual" - if it's currently beyond my ken and I need to read something else first then that's my problem. I'm not going to waste your time by expecting you to read it for me and give quick answers to deep questions. -- View this message in context: http://www.nabble.com/Maintaining-the-community-tf4071917.html#a11577502 Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

On Fri, 13 Jul 2007, Simon Peyton-Jones wrote:
We need at least one forum in which it's acceptable to ask anything, no matter how naive, and get polite replies. (RTFM isn't polite; but "The answer is supposed to be documented here (\url); let us know if that doesn't answer your qn" is fine.) I'd be sorry to lose that.
Agreed. That said, it might be worth developing a "scary maths FAQ" that's an explanation largely of why all the maths and why it may irritate a lot of people to get in a flap about it all. It seems to come up increasingly often, and... well, it's not just the community being elitist or shutting people out! -- flippa@flippac.org The task of the academic is not to scale great intellectual mountains, but to flatten them.

On Fri, Jul 13, 2007 at 02:30:49AM -0700, Jim Burton wrote:
Very timely! It's sad that haskell-cafe has so much noise now. I haven't been around very long at all but it has gone downhill dramatically even in the last 6 months
just look for the date of my first post... to improve the list, might i suggest - push chatter to IRC - take this service off of email entirely. try a web forum system (you may have to slum it and use php). i don't recommend nntp, that just forces us to use gmane since very few isps provide nntp now. a web forum would allow you to segment interest sections while retaining a global search etc. if you use code like slash, you can just moderate noise makers off the page. you can set up a yahoo group in ten minutes. - just get used to noise if indeed you want haskell to grow in popularity. use digest-mode, read on gmane, or use client email filters to remove individual noise generators - please don't split the lists, people will still just email cafe anyway, and it causes tension when a moderator-type continually asks them to take the issue to haskell-* - in the worst case, get volunteer moderators to filter submissions to the list. this will reduce traffic dramatically but also remove the immediacy of direct email. a web forum would probably be easier.

On Fri, 13 Jul 2007, brad clawsie wrote:
to improve the list, might i suggest
- push chatter to IRC
This is problematic for some kinds of techie chatter, where email makes it easier to get all the maths down.
- take this service off of email entirely. try a web forum system (you may have to slum it and use php). i don't recommend nntp, that just forces us to use gmane since very few isps provide nntp now. a web forum would allow you to segment interest sections while retaining a global search etc. if you use code like slash, you can just moderate noise makers off the page. you can set up a yahoo group in ten minutes.
A global search might be an idea to add to our existing archives, otherwise I'm still not convinced. -- flippa@flippac.org Society does not owe people jobs. Society owes it to itself to find people jobs.

Perhaps an information retrieval pipedream, but what if we attempted
an automated FAQ answerer? I'm sure some keywords pop-up often enough
in certain chunks of first posts (heterogenous lists, existential
error messages, SOE and graphics, category functor monad, etc). It
could respond with the standard links to the Wiki pages and research
papers.
Of course we would want to keep it on a leash for a while during
training and taming.
If we integrate it with the list, it might even belay the list
message, giving the user a chance to read its response before
selecting:
* not quite helpful, send to list anyway
* never send me this rubbish again
Or we could avoid such invasive methods all together and just
auto-post a rather comprehensive answer.
Just a neat thought -- and another potentially nifty and well-sought
tool written in Haskell.
On 7/13/07, Philippa Cowderoy
On Fri, 13 Jul 2007, brad clawsie wrote:
to improve the list, might i suggest
- push chatter to IRC
This is problematic for some kinds of techie chatter, where email makes it easier to get all the maths down.
- take this service off of email entirely. try a web forum system (you may have to slum it and use php). i don't recommend nntp, that just forces us to use gmane since very few isps provide nntp now. a web forum would allow you to segment interest sections while retaining a global search etc. if you use code like slash, you can just moderate noise makers off the page. you can set up a yahoo group in ten minutes.
A global search might be an idea to add to our existing archives, otherwise I'm still not convinced.
-- flippa@flippac.org
Society does not owe people jobs. Society owes it to itself to find people jobs. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

FYI, Gmail *can* kill threads, the Geniuses just deemed it unworthy of
a UI presence. This is news to me and related to earlier comments in
this thread. HTH
http://mail.google.com/support/bin/answer.py?hl=en&answer=47787
On 7/13/07, Nicolas Frisby
Perhaps an information retrieval pipedream, but what if we attempted an automated FAQ answerer? I'm sure some keywords pop-up often enough in certain chunks of first posts (heterogenous lists, existential error messages, SOE and graphics, category functor monad, etc). It could respond with the standard links to the Wiki pages and research papers.
Of course we would want to keep it on a leash for a while during training and taming.
If we integrate it with the list, it might even belay the list message, giving the user a chance to read its response before selecting: * not quite helpful, send to list anyway * never send me this rubbish again Or we could avoid such invasive methods all together and just auto-post a rather comprehensive answer.
Just a neat thought -- and another potentially nifty and well-sought tool written in Haskell.
On 7/13/07, Philippa Cowderoy
wrote: On Fri, 13 Jul 2007, brad clawsie wrote:
to improve the list, might i suggest
- push chatter to IRC
This is problematic for some kinds of techie chatter, where email makes it easier to get all the maths down.
- take this service off of email entirely. try a web forum system (you may have to slum it and use php). i don't recommend nntp, that just forces us to use gmane since very few isps provide nntp now. a web forum would allow you to segment interest sections while retaining a global search etc. if you use code like slash, you can just moderate noise makers off the page. you can set up a yahoo group in ten minutes.
A global search might be an idea to add to our existing archives, otherwise I'm still not convinced.
-- flippa@flippac.org
Society does not owe people jobs. Society owes it to itself to find people jobs. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On 2007-07-13, brad clawsie
- take this service off of email entirely. try a web forum system (you may have to slum it and use php). i don't recommend nntp, that just forces us to use gmane since very few isps provide nntp now. a web forum would allow you to segment interest sections while retaining a global search etc. if you use code like slash, you can just moderate noise makers off the page. you can set up a yahoo group in ten minutes.
Switching to a web forum system will kill any interest I have in following this community. I suspect I'm not alone. It's usenet done /wrong/. E-mail, the gmane web interface, and the gmane nntp interface combine into a very serviceable system, where I can choose my client, and on two of those paths, my client keeps track of what I read, rather than pushing that onto an overloaded server. The one thing that I can suggest is putting a note about "other ways of access" on the mailing list pages, and heck, on "community introduction" pages. -- Aaron Denney -><-

brad clawsie wrote:
to improve the list, might i suggest
- push chatter to IRC
- take this service off of email entirely. try a web forum system (you may have to slum it and use php). i don't recommend nntp, that just forces us to use gmane since very few isps provide nntp now.
Just curiose, but... what does NNTP have to do with your ISP?

Andrew Coppin
Just curiose, but... what does NNTP have to do with your ISP?
Someone has to provide an NNTP server for your client to connect to. Many ISPs don't. Things like gmane can be used, of course. Some of the free ones can be okay. I like http://news.individual.net/ who, while not free, are pretty cheap, and they carry comp.lang.haskell. -- Mark

Mark T.B. Carroll wrote:
Andrew Coppin
writes: Just curiose, but... what does NNTP have to do with your ISP?
Someone has to provide an NNTP server for your client to connect to. Many ISPs don't. Things like gmane can be used, of course. Some of the free ones can be okay. I like http://news.individual.net/ who, while not free, are pretty cheap, and they carry comp.lang.haskell.
...and when you view a web page, your web browser has to connect to a web server somewhere. I don't see your point...

Andrew Coppin
Mark T.B. Carroll wrote:
Andrew Coppin
writes: Just curiose, but... what does NNTP have to do with your ISP?
Someone has to provide an NNTP server for your client to connect to. Many ISPs don't. Things like gmane can be used, of course. Some of the free ones can be okay. I like http://news.individual.net/ who, while not free, are pretty cheap, and they carry comp.lang.haskell.
...and when you view a web page, your web browser has to connect to a web server somewhere.
I don't see your point...
Very many news servers will only serve news to people on the network of whoever's running the server: i.e. a rather restricted 'customer' base. If your ISP doesn't provide a decent NNTP server, you have to find one of the less discriminating servers, and there aren't many good ones around that will serve news to just anyone. Mark

Mark T.B. Carroll wrote:
Andrew Coppin
writes: ...and when you view a web page, your web browser has to connect to a web server somewhere.
I don't see your point...
Very many news servers will only serve news to people on the network of whoever's running the server: i.e. a rather restricted 'customer' base.
Really? Most web servers will accept a connection from anybody. (Unless it's *intended* to be an Intranet.) I'm not quite sure why somebody would configure their NNTP server differently...

On Fri, 13 Jul 2007, Andrew Coppin wrote:
Mark T.B. Carroll wrote:
Andrew Coppin
writes: ...and when you view a web page, your web browser has to connect to a web server somewhere.
I don't see your point...
Very many news servers will only serve news to people on the network of whoever's running the server: i.e. a rather restricted 'customer' base.
Really? Most web servers will accept a connection from anybody. (Unless it's *intended* to be an Intranet.) I'm not quite sure why somebody would configure their NNTP server differently...
That's probably because someone has to pay for maintenance. Most of the time, this will be the one who is running the server. So, if *you* were running a NNTP server and had to pay monthly fees and other recurring costs, whom would you grant access to your NNTP server? With web servers, you, as the reader or consumer, don't have to pay for the access, because the owner of the web server takes care of these costs, because he/she probably gains some sort of benefit from this. Regards, Jens

From: Andrew Coppin
Really? Most web servers will accept a connection from anybody. (Unless it's *intended* to be an Intranet.) I'm not quite sure why somebody would configure their NNTP server differently...
The scale of an NNTP server is simply a *lot* bigger than most web servers, where you only need as much storage capacity and bandwidth as you have content to offer. Daily traffic on the whole of the Usenet takes up a few terabytes, and you presumably want to store more than one day worth of Usenet traffic. You also need to keep in sync with the other Usenet servers, as you are not the sole provider of content. So, NNTP servers need to be powerhouses if they hope to serve even part of the Usenet, and they're closer to search engines than to HTTP servers in terms of the resources required. (For what it's worth, my ISP uses a high-end, dedicated NNTP provider for their Usenet service. For a regular user, it actually costs more to subscribe to that NTTP server alone than to my ISP. Unsurprisingly, my ISP only authorizes its own users to access that particular service.) Anthony Chaumas-Pellet

On Jul 13, 2007, at 17:41 , Anthony Chaumas-Pellet wrote:
From: Andrew Coppin
Really? Most web servers will accept a connection from anybody. (Unless it's *intended* to be an Intranet.) I'm not quite sure why somebody would configure their NNTP server differently...
The scale of an NNTP server is simply a *lot* bigger than most web servers, where you only need as much storage capacity and bandwidth as you have content to offer.
Also, expiring old articles is a very expensive operation. (Yes, I used to run a news server, and monitor CMU ECE's internal server.) -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH

Anthony Chaumas-Pellet wrote:
From: Andrew Coppin
Really? Most web servers will accept a connection from anybody. (Unless it's *intended* to be an Intranet.) I'm not quite sure why somebody would configure their NNTP server differently...
The scale of an NNTP server is simply a *lot* bigger than most web servers, where you only need as much storage capacity and bandwidth as you have content to offer.
Daily traffic on the whole of the Usenet takes up a few terabytes, and you presumably want to store more than one day worth of Usenet traffic. You also need to keep in sync with the other Usenet servers, as you are not the sole provider of content.
So, NNTP servers need to be powerhouses if they hope to serve even part of the Usenet, and they're closer to search engines than to HTTP servers in terms of the resources required.
(For what it's worth, my ISP uses a high-end, dedicated NNTP provider for their Usenet service. For a regular user, it actually costs more to subscribe to that NTTP server alone than to my ISP. Unsurprisingly, my ISP only authorizes its own users to access that particular service.)
What is this "Usenet" thing people keen mentioning? When I want to visit the POV-Ray website, I point my HTTP client at www.povray.org and it displays the page. When I want to use the POV-Ray NNTP forums, I point my NNTP client at news.povray.org and it displays the forums. It works the same way. I don't see how this involves "a few terabytes"...

On Saturday 14 July 2007, Andrew Coppin wrote:
Anthony Chaumas-Pellet wrote:
From: Andrew Coppin
Really? Most web servers will accept a connection from anybody. (Unless it's *intended* to be an Intranet.) I'm not quite sure why somebody would configure their NNTP server differently...
The scale of an NNTP server is simply a *lot* bigger than most web servers, where you only need as much storage capacity and bandwidth as you have content to offer.
Daily traffic on the whole of the Usenet takes up a few terabytes, and you presumably want to store more than one day worth of Usenet traffic. You also need to keep in sync with the other Usenet servers, as you are not the sole provider of content.
So, NNTP servers need to be powerhouses if they hope to serve even part of the Usenet, and they're closer to search engines than to HTTP servers in terms of the resources required.
(For what it's worth, my ISP uses a high-end, dedicated NNTP provider for their Usenet service. For a regular user, it actually costs more to subscribe to that NTTP server alone than to my ISP. Unsurprisingly, my ISP only authorizes its own users to access that particular service.)
What is this "Usenet" thing people keen mentioning?
When I want to visit the POV-Ray website, I point my HTTP client at www.povray.org and it displays the page. When I want to use the POV-Ray NNTP forums, I point my NNTP client at news.povray.org and it displays the forums. It works the same way. I don't see how this involves "a few terabytes"...
Usenet is a giant network of NNTP servers (and UUCP servers before that...) that ISPs (and various Unix sites before that) maintained at one time (most seem to have given up on it now), with thousands of general-purpose newsgroups that at one time were the premier online community. *goes back into a corner to await the inevitable flames from the rest of the 0.01% of humanity that finds Usenet interesting... Jonathan Cast http://sourceforge.net/projects/fid-core http://sourceforge.net/projects/fid-emacs

On Jul 15, 2007, at 0:47 , Jonathan Cast wrote:
Usenet is a giant network of NNTP servers (and UUCP servers before that...) that ISPs (and various Unix sites before that) maintained at one time (most seem to have given up on it now), with thousands of general-purpose newsgroups that at one time were the premier online community.
I'll just point out that NNTP is a *terrible* protocol for news *readers*; it was originally designed to facilitate linking individual news servers. (The various modern NNTP implementations tend to detect readers and switch to a lower overhead NNTP implementation which also restricts some things to keep readers from taking up too much overhead.) Somewhat ironically given the origin of this thread, CMU's solution was to gateway NNTP to IMAP and require readers to use IMAP clients to read the resulting "bboards". -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH

ACP> Daily traffic on the whole of the Usenet takes up a few ACP> terabytes, and you presumably want to store more than one day ACP> worth of Usenet traffic. You also need to keep in sync with the ACP> other Usenet servers, as you are not the sole provider of ACP> content. NNTP server are not requiered to mirror all of USENET, you know. In particular, imaginary nntp.haskell.org NNTP server wouldn't be required to mirror ANY part of USENET except for (imaginary also) haskell-related groups. In fact, NNTP is about the same as HTTP - but without all that Web20 mess. Of course, if you are an ISP, you would probably want to mirror USENET to make your users happy; but if you're not, you don't need it. ACP> Unsurprisingly, my ISP only authorizes its own users to access ACP> that particular service.) But it doesn't block their access to OTHER NNTP servers, I guess. And if it does, it's a pretty good reason to change ISP. Actually, it was a good reason for me, since I needed access to ddt.demos.su server, which seems to be one of the few, hosting fido7.ru.* newsgroups.

Perhaps I haven't found the amazing treasure trove of open NNTP servers you appear to have, but in my experience I've yet to find a single good (read: access to most groups and quick about it) and free NNTP server (read: not from my ISP, employer, or university - which, if provided at all, have always been quite limited in which groups they serve), so I can completely understand where the others are coming from in this regard. Perhaps those of you who have found good, free NNTP servers would care to share these well kept secrets? -----Original Message----- From: haskell-cafe-bounces@haskell.org [mailto:haskell-cafe-bounces@haskell.org] On Behalf Of Andrew Coppin Sent: Friday, July 13, 2007 5:04 PM To: haskell-cafe@haskell.org Subject: Re: [Haskell-cafe] Maintaining the community Mark T.B. Carroll wrote:
Andrew Coppin
writes: ...and when you view a web page, your web browser has to connect to a
web server somewhere.
I don't see your point...
Very many news servers will only serve news to people on the network of whoever's running the server: i.e. a rather restricted 'customer' base.
Really? Most web servers will accept a connection from anybody. (Unless it's *intended* to be an Intranet.) I'm not quite sure why somebody would configure their NNTP server differently... _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -------------------------------------------------------- NOTICE: If received in error, please destroy and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error.

Perhaps those of you who have found good, free NNTP servers would care to share these well kept secrets?
have you tried gmane.org? http://gmane.org/about.php http://news.gmane.org/search.php?match=haskell (there's nntp://news.gmane.org/ and http://news.gmane.org/ among others) claus

As we sit here riding the Haskell wave:
http://www.cse.unsw.edu.au/~dons/tmp/cafe.png
with nearly 2000 (!) people reading haskell-cafe@, perhaps its time to think some more about how to build and maintain this lovely Haskell community we have.
my replies to some of the issues raised in this thread: - gmane.org is great. i still read my main mailing lists via a mail reader, but i read some lists i follow less thoroughly via gmane's news interface, and people often refer to gmane's web interface if they want to refer to whole threads rather than individual messages. no need to change the haskell.org setup - you can already choose! - haskell-cafe is meant to be the general forum, that shouldn't change. but i think there is potential to spin off one or two more specialist lists (not too many, or they'll dry out, and not too specific, or they won't attract the haskell-cafe style of membership and content; we also do not want to start cross-postings to keep the synergies of a multitopic forum). the most obvious one being 'haskell-performance' for shootout entries, 'how do i improve this?', 'what is wrong here?', and 'why isn't haskell slow?' style of questions, profiling, space&time leaks, compiler benchmarks, optimizations, transformations, representations, libs, tools, papers, etc. another possible candidate, judging from mails and blog postings, might be 'haskell-math', for numeric and algebra libs, apps, tools, classes, theory, and math-related algorithms and data structures, and general discussions. - with higher volume, the style of messages sometimes reminds me more of newsgroup postings than of a mailinglist. but there are several hard-earned lessons from newsgroup experience: - don't try to police threads, unless you're willing to go to a fully moderated forum (which is exactly what -cafe isn't). it tends to be ineffective, and often counterproductive wrt to the general feel of the forum and the number of messages - you cannot manage volume by adding messages. there are only two things you can do with a thread you don't like: do not add to it, and ignore it - there are lots of faq, and it sometimes feels as if a question has just been answered when a newcomer asks it again!-) but unless you have a faq you can point to that comes very close to providing the answer, there is nothing you can do about that. the wiki is evolving, and i hope that the search engine fixes that have ben applied to robots.txt will ultimately make its contents easier to find. but if you want to avoid answering questions again and again on the list, you need to improve the cache of answers. personally, i tend to be more willing to answer questions on the list than to fiddle with wiki markup and conventions, but there is no reason why people who are happier with wiki editing cannot extract content from list answers to the wiki, especially if its a faq answer rather than a research result. memoization, organization and generation of answers do not all have to be done by the same set of persons. once there is a useful collection of faq answers, it should be made easier to find: the default signature of -cafe mails should be augmented to include pointers to: http://www.haskell.org/haskellwiki/Category:FAQ http://www.haskell.org/haskellwiki/Category:Glossary doing so should soon lead to useful results when googling for 'haskell faq', as well. note how one of these is rather less exhaustive than one would expect, given the number of faqs.. faq should include pointers to the list of mailing lists, the lists and repos of libraries, the language spec, list of tutorials, papers, tools, and implementations, and to the guide about homework questions, among the obvious technical answers. there is also the registration message, which could point to a wiki page dedicated to mailinglist newcomers and their most likely information needs. which should be crosslinked with the faq answers. well, enough additional traffic for now..:-) claus

claus.reinke:
personally, i tend to be more willing to answer questions on the list than to fiddle with wiki markup and conventions, but there is no reason why people who are happier with wiki editing cannot extract content from list answers to the wiki, especially if its a faq answer rather than a research result.
I've got a few tools that make wiki editing easier (shortcuts to open up a new wiki page for editing in vim, syntax highlighting, console access). These make wiki editing roughly as cheap as composing an email. I tried an experiment this week of just taking someone's post (Conor's idiom brackets), and putting directly on the wiki first, then letting the author know that's happened. How do people feel about allowing posts in -cafe to be placed on the wiki, without extensive prior negotiation? What copyright do -cafe@ posts have? If there was a rough consensus that this is ok, we could probably get a lot more material directly on the wiki, since I for one would act first, putting some interesting Clause Reinke posts there semi-verbatim, rather than pondering whether to write an email to the author to seek permission, or cojole them into doing it. Should we feel free to put mailing list material onto the wiki? -- Don

Hi
I tried an experiment this week of just taking someone's post (Conor's idiom brackets), and putting directly on the wiki first, then letting the author know that's happened.
How do people feel about allowing posts in -cafe to be placed on the wiki, without extensive prior negotiation? What copyright do -cafe@ posts have?
If you email to a public mailing list, you clearly don't have a problem with verbatim copying, since you already know its going to appear in loads of different archives. You also don't have a problem with selected copying, because quoting is how mailing lists work. I'd just assume that all posts to haskell-cafe are "for the good of mankind", and then let them be reused at will.
Should we feel free to put mailing list material onto the wiki?
Yes! Some people do email this list with disclaimers such as "if this email was not specifically addressed to you, and you accidentally remember something from it, we reserve the right to lobotomise you at a future date" - but I think usually those are company policy rather than personal choice. Thanks Neil

On Fri, 13 Jul 2007, Donald Bruce Stewart wrote:
How do people feel about allowing posts in -cafe to be placed on the wiki, without extensive prior negotiation? What copyright do -cafe@ posts have?
Currently, snagging the whole post for non-archive purposes isn't necessarily legit.
If there was a rough consensus that this is ok, we could probably get a lot more material directly on the wiki, since I for one would act first, putting some interesting Clause Reinke posts there semi-verbatim, rather than pondering whether to write an email to the author to seek permission, or cojole them into doing it.
General "is it okay if I put your interesting stuff up?" permission works. So does linking to existing archives. -- flippa@flippac.org There is no magic bullet. There are, however, plenty of bullets that magically home in on feet when not used in exactly the right circumstances.

On Friday 13 July 2007, Donald Bruce Stewart wrote:
claus.reinke:
personally, i tend to be more willing to answer questions on the list than to fiddle with wiki markup and conventions, but there is no reason why people who are happier with wiki editing cannot extract content from list answers to the wiki, especially if its a faq answer rather than a research result.
I've got a few tools that make wiki editing easier (shortcuts to open up a new wiki page for editing in vim, syntax highlighting, console access). These make wiki editing roughly as cheap as composing an email.
I tried an experiment this week of just taking someone's post (Conor's idiom brackets), and putting directly on the wiki first, then letting the author know that's happened.
How do people feel about allowing posts in -cafe to be placed on the wiki, without extensive prior negotiation?
Well, anything /I/ write is OK. . .
What copyright do -cafe@ posts have?
Legally? I'd imagine it's pretty restrictive; morally, I think we should encourage people to wave whatever rights they have (like with the wiki).
If there was a rough consensus that this is ok, we could probably get a lot more material directly on the wiki, since I for one would act first, putting some interesting Clause Reinke posts there semi-verbatim, rather than pondering whether to write an email to the author to seek permission, or cojole them into doing it.
Should we feel free to put mailing list material onto the wiki?
We should. We may not, yet, but that should change. Jonathan Cast http://sourceforge.net/projects/fid-core http://sourceforge.net/projects/fid-emacs

Hi Don On 13 Jul 2007, at 14:47, Donald Bruce Stewart wrote:
I tried an experiment this week of just taking someone's post (Conor's idiom brackets), and putting directly on the wiki first, then letting the author know that's happened.
Seemed entirely reasonable to me. If I have a spare moment, I might even finally get around to registering so I can add the other thing I usually bundle (for inserting effectful computations which don't contribute an argument to the main function).
data Ig = Ig
instance Idiomatic i f g => Idiomatic i f (Ig -> i x -> g) where idiomatic fi Ig xi = idiomatic (fi <* xi)
so that iI f a Ig (putStrLn "Boo!") b Ii is do {a' <- a; putStrLn "Boo!"; b' <- b; return (f a b)} If I'm writing for a mailing list, I'm certainly willing (if surprised) to be exploited in this way. If there is any legalistic need for explicit permission, then we should have a permanent permission system on an opt-in basis, perhaps recorded in some suitable central and accessible place (like, erm, ...). I'm in. Cheers Conor

ctm:
On 13 Jul 2007, at 14:47, Donald Bruce Stewart wrote:
I tried an experiment this week of just taking someone's post (Conor's idiom brackets), and putting directly on the wiki first, then letting the author know that's happened.
Seemed entirely reasonable to me. If I have a spare moment, I might even finally get around to registering so I can add the other thing I usually bundle (for inserting effectful computations which don't contribute an argument to the main function).
If I'm writing for a mailing list, I'm certainly willing (if surprised) to be exploited in this way.
If there is any legalistic need for explicit permission, then we should have a permanent permission system on an opt-in basis, perhaps recorded in some suitable central and accessible place (like, erm, ...). I'm in.
I've created a page to track contributors who are happy to have their work moved to the Haskell wiki, and thus explicitly licensed under the `simple permissive license'. http://haskell.org/haskellwiki/Haskell_Cafe_migration Just add your names, so your code and text can escape the haskell-cafe copyright monad :) -- Don

dons:
ctm:
On 13 Jul 2007, at 14:47, Donald Bruce Stewart wrote:
I tried an experiment this week of just taking someone's post (Conor's idiom brackets), and putting directly on the wiki first, then letting the author know that's happened.
Seemed entirely reasonable to me. If I have a spare moment, I might even finally get around to registering so I can add the other thing I usually bundle (for inserting effectful computations which don't contribute an argument to the main function).
If I'm writing for a mailing list, I'm certainly willing (if surprised) to be exploited in this way.
If there is any legalistic need for explicit permission, then we should have a permanent permission system on an opt-in basis, perhaps recorded in some suitable central and accessible place (like, erm, ...). I'm in.
I've created a page to track contributors who are happy to have their work moved to the Haskell wiki, and thus explicitly licensed under the `simple permissive license'.
http://haskell.org/haskellwiki/Haskell_Cafe_migration
Just add your names, so your code and text can escape the haskell-cafe copyright monad :)
After some discussion, it was decided to expand the scope of the permission slightly while we're here, to include any media covered by haskell.org: * mailing lists * old wiki * hpaste.org * irc channel Since specifically on hpaste.org there's often good solutions that don't appear elsewhere. If you've already added your name, perhaps check that you agree to your original contributions to any haskell.org media being treated under the `simple permissive license'. -- Don

I've created a page to track contributors who are happy to have their work moved to the Haskell wiki, and thus explicitly licensed under the `simple permissive license'.
Hi Don, i'm all for using mailinglist postings to improve the wiki, using the wiki as a cache to memoize answers to frequently asked questions, but i have to admit to feeling rather uncomfortable with a general copyright waiver like that. would it mean i'd have to be more careful about what i write on the list (if Oleg wanted to add his name, would he still post those serialized essays)? or would i have to think for each mail whether or not to add a more specific license to disable the default waiver (if you post material you may later want to use in your book, or interim results from your research projects; remember, anything on the wiki is free for all, so anyone could "republish" it if it ends up there..)? if you hadn't told Conor about wikifying his idiom bracket examples, he would not have thought about adding more stuff. nor would he have known that you liked them or that there's now another place where people can find out about, discuss and edit that idea. will everyone start to use those standard disclaimers as signatures by default, in case some code/idea they post might otherwise fall under their copyright waiver (which they signed on to because they thought it was generally a good idea)? why should we have to think about licensing at all? it is nice to see so many of you willing to go that far, but i have been burned before, not on a haskell list, and such a waiver would have left me completely out of the loop. none of the scenarios i can think of would even need such a copyright waiver: 1) someone notices a faq, and decides to add an entry to the faq category on the wiki; they list the most common forms of the question, look through the mailing list archive for some typical good answers, write a little intro and add links to the archived answers. no problem. 2) similar to (1), but none of the existing emails is directly useful without a lot of context from their threads; so, instead of just linking to the emails, someone writes a little text of their own, inserting quotes from some of the archived emails where useful, and adding links to the original emails at the end. or someone takes ideas and quotes from several emails to form a coherent summary of a thread. or someone takes ideas from their specific threads to present a generalized answer, again providing links to the original emails. the only problem i can see here would be misrepresentation by quoting out of context, or editing quotes, but those are standard wiki issues. no new problem. 3) someone writes an entirely new text to answer a faq more directly. no need to reference other texts, unless they were used as the sources of non-standard ideas. no problem. 4) someone writes a text that mixes original contributions with extensive excerpts from other texts, possibly modified; either the plan or the result should be discussed with the original authors, so that they can have a say in how their work is used. in as much as someone else's work is used or modified for the final result, it should be acknowledged, with modifications and permissions made clear. no problem. i am happy for my contributions to this list to be referenced, or quoted with reference, and in most other cases, i'd expect simply to say "go ahead, thanks for doing this" if someone wanted to put in the work to improve the wiki partly based on something i wrote; but unless the parts taken from my emails are trivial, or folklore, or explicitly referenced as separate from the new text, i would expect to be asked, so that i have the chance to say "no" or "not in this way". once i've said "yes", the general wiki license applies, of course. does that sound unreasonable? claus

On Sat, Jul 14, 2007 at 05:26:27PM +0100, Claus Reinke wrote:
(if you post material you may later want to use in your book, or interim results from your research projects; remember, anything on the wiki is free for all, so anyone could "republish" it if it ends up there..)?
(sorry if you already know this, just want to clarify. All AIUI, IANAL, etc) If you publish something under licence A, you still remain the copyright holder, and can later also publish it under licence B. You can also publish it combined with other material under licence B. For example, if you were to write a couple of pages on type systems to the haskell-cafe list, publish it under the "Simple Permissive License", you could still publish a book on Haskell, including your text on type systems, under a more traditional proprietary licence. People would still be able to copy (etc) your type systems text, but would not be able to copy (etc) the other material in your book. The same is true even if you published the text under one of the so-called viral licences (e.g. GPL).
why should we have to think about licensing at all?
If you want code you write to be distributed by Debian, for example, then you need to license it appropriately. Thanks Ian

(sorry if you already know this, just want to clarify. All AIUI, IANAL, etc)
neither am i!-)
If you publish something under licence A, you still remain the copyright holder, and can later also publish it under licence B. You can also publish it combined with other material under licence B.
yes, and nobody is forced to sign on to that waiver list, either. but some of those who do might find it hampering rather than encouraging their own contributions. knowing as they do that someone else might publish their results for and before them, and that they have given full permission for that to happen. i would not like to see list contributions from those active community members falter because of such possible side-effects. most uses do not even seem to require that waiver. and those who do not sign on might still be perfectly happy to respond to most requests with a simple "ok, go ahead".
why should we have to think about licensing at all?
If you want code you write to be distributed by Debian, for example, then you need to license it appropriately.
yes, and for the wiki it makes sense, and for open-source projects it makes sense, and i prefer the least limiting licenses whenever possible. i was just pointing out that the default copyright might make more sense for the mailing list, imho. a simple email informing the original authors shouldn't be that hard, should it? jao (just another opinion;-) claus

claus.reinke:
(sorry if you already know this, just want to clarify. All AIUI, IANAL, etc)
neither am i!-)
If you publish something under licence A, you still remain the copyright holder, and can later also publish it under licence B. You can also publish it combined with other material under licence B.
yes, and nobody is forced to sign on to that waiver list, either. but some of those who do might find it hampering rather than encouraging their own contributions. knowing as they do that someone else might publish their results for and before them, and that they have given full permission for that to happen. i would not like to see list contributions from those active community members falter because of such possible side-effects.
most uses do not even seem to require that waiver. and those who do not sign on might still be perfectly happy to respond to most requests with a simple "ok, go ahead".
I agree, most uses don't requrie the waiver. I mostly see it as useful for when we don't just want to link to a dry mailing list, but instead use a post as the intial text for a page, which is then further edited.
why should we have to think about licensing at all?
If you want code you write to be distributed by Debian, for example, then you need to license it appropriately.
yes, and for the wiki it makes sense, and for open-source projects it makes sense, and i prefer the least limiting licenses whenever possible. i was just pointing out that the default copyright might make more sense for the mailing list, imho. a simple email informing the original authors shouldn't be that hard, should it?
I agree: it would be basic courtesy to point out that a wiki page has been created. I expect that to continue to occur anyway. This also means we don't lose material written by those who might later levae the community, which is useful. -- Don

Ian Lynagh wrote:
If you publish something under licence A, you still remain the copyright holder, and can later also publish it under licence B. You can also publish it combined with other material under licence B.
For example, if you were to write a couple of pages on type systems to the haskell-cafe list, publish it under the "Simple Permissive License", you could still publish a book on Haskell, including your text on type systems, under a more traditional proprietary licence. People would still be able to copy (etc) your type systems text, but would not be able to copy (etc) the other material in your book.
It appears that most publishers want an exclusive license to the published work, i.e. you have to transfer them your copyright. In other words, the publishers won't accept your work if you already published it somewhere else. A Simple Permissive License will most likely disable possible negotiations with the publisher to make them publish anyway in that case. Eric Weisstein's Mathworld has been bitten quite painfully by such copyright transfer, although in the other direction http://mathworld.wolfram.com/about/erics_commentary.html In the end, copyright and laws in general aren't for the case when everybody behaves nicely, but for the case when things go awfully wrong. Regards, apfelmus

Donald Bruce Stewart wrote:
What copyright do -cafe@ posts have?
I'm not a lawyer but everything you write down is automatically copyrighted in most countries assuming that it meets some low requirement of "skill, originality and work". Which is likely to be the case for posts that are eligible to make it into the wiki. For mailing lists, archiving and quoting are considered fair use. Explicit permission from the author is required to put posts on the wiki since that means to license them under the Simple Permissive License. Regards, apfelmus

Claus Reinke
will ultimately make its contents easier to find. but if you want to avoid answering questions again and again on the list, you need to improve the cache of answers.
Bingo. On less technical forums, e.g. FlyerTalk, the "do a search" equivalent to "RTFM" is rampant and people goal-tend without actually doing a test search to find out if that search might not be coming up for some reason. Others say "do a search" but demonstrate an effective keyword combination and the resulting useful resource. Here, the Wiki is fantastic but extraordinarily spotty (any healthy wiki will always have much new growth, but the current gaps are surprising), and newcomers like myself can and have been contributing to it. If somehow the surge in Haskell Cafe interest could be harnessed to feed Wiki content, that would be great. Something like "I noticed the Wiki entry for list comprehensions is just a stub, so I edited it to answer your question. Is the answer clear? Your beginner perspective is invaluable; how can it be improved?" The only way to establish such a tradition is by example. I'll start giving it a try.

Dave Bayer wrote:
Claus Reinke
writes: will ultimately make its contents easier to find. but if you want to avoid answering questions again and again on the list, you need to improve the cache of answers.
Bingo.
Here, the Wiki is fantastic but extraordinarily spotty (any healthy wiki will always have much new growth, but the current gaps are surprising), and newcomers like myself can and have been contributing to it.
Whenever I find that something isn't on the Wiki, I try to add it. (E.g., the articles on alpha/beta/eta reduction.) On the other hand, when I find something isn't there, it's usually because I'm trying to look it up because I don't understand it. ;-) To some extend, incorrect information can be worse than no information... :-(

On Fri, Jul 13, 2007 at 08:23:41PM +0100, Andrew Coppin wrote:
Dave Bayer wrote:
Here, the Wiki is fantastic but extraordinarily spotty (any healthy wiki will always have much new growth, but the current gaps are surprising), and newcomers like myself can and have been contributing to it.
Whenever I find that something isn't on the Wiki, I try to add it. (E.g., the articles on alpha/beta/eta reduction.)
On the other hand, when I find something isn't there, it's usually because I'm trying to look it up because I don't understand it. ;-) To some extend, incorrect information can be worse than no information... :-(
Conversely, it's generally easier for us to fix an incorrect page than to write a new one from scratch. Stefan

Stefan O'Rear wrote:
On Fri, Jul 13, 2007 at 08:23:41PM +0100, Andrew Coppin wrote:
Whenever I find that something isn't on the Wiki, I try to add it. (E.g., the articles on alpha/beta/eta reduction.)
On the other hand, when I find something isn't there, it's usually because I'm trying to look it up because I don't understand it. ;-) To some extend, incorrect information can be worse than no information... :-(
Conversely, it's generally easier for us to fix an incorrect page than to write a new one from scratch.
...hence my usual tacktic of adding the page and putting in the comments "somebody should probably check this..." Sometimes it works. ;-) (It worked for the beta and eta articles - somebody quickly pointed out that I actually got the names the wrong way round! Oops... On the other hand, I updated the Existential Type article, and apparently nobody noticed that one of my examples don't actually compile due to gratuetusly invalid syntax.)

On Fri, 2007-07-13 at 14:33 +0100, Claus Reinke wrote:
As we sit here riding the Haskell wave:
http://www.cse.unsw.edu.au/~dons/tmp/cafe.png
with nearly 2000 (!) people reading haskell-cafe@, perhaps its time to think some more about how to build and maintain this lovely Haskell community we have.
- haskell-cafe is meant to be the general forum, that shouldn't change. but i think there is potential to spin off one or two more specialist lists (not too many, or they'll dry out, and not too specific, or they won't attract the haskell-cafe style of membership and content; we also do not want to start cross-postings to keep the synergies of a multitopic forum).
the most obvious one being 'haskell-performance' for shootout entries, 'how do i improve this?', 'what is wrong here?', and 'why isn't haskell slow?' style of questions, profiling, space&time leaks, compiler benchmarks, optimizations, transformations, representations, libs, tools, papers, etc.
I really like this. ^
another possible candidate, judging from mails and blog postings, might be 'haskell-math', for numeric and algebra libs, apps, tools, classes, theory, and math-related algorithms and data structures, and general discussions.
This I'm much much less certain or keen about. Most such questions start as legitimate Haskell questions. Furthermore, I think the replies are often helpful to people who probably wouldn't subscribe to a 'haskell-math' list. (Still it would be nice to have such a venue to just talk about the relation between Haskell and math.) I don't think almost anyone has a problem with such discussions and it seems that many "non-theoretical" readers enjoy them.

Besides traffic, which is something I'm quite used to (try to read the
Python mailing list), I think dons made a quite good point.
On 7/12/07, Donald Bruce Stewart
That is, to help people progress from newbie, to intermediate, to expert, and thus ensure the culture is maintained (avoiding `Eternal September'). This graphic[1] sums the main issue up nicely, in my view:
http://headrush.typepad.com/photos/uncategorized/buildingausercommunity.jpg
I consider myself an intermediate-going-to-advanced Haskeller. I mean, I can go on with my own legs most of time, even if that means to read a couple of times some good papers on the subject, so I don't need to ask lots of questions on the list. OTOH, I also rarely feel confident to give some answer that I know. Mostly because I only *feel* that I know -- however I'm not certain of that -- and sometimes because I think that I can't give the complete answer -- so I leave it to someone else. So from now on I'll try to answer more times. But, anyway, that's a big problem. I'm not the only one on this situation. And probably there'll always be someone. Dons' tips are really nice (i.e. necessary), but I wonder if they are sufficient. Cheers, -- Felipe.

Donald Bruce Stewart wrote:
As we sit here riding the Haskell wave:
http://www.cse.unsw.edu.au/~dons/tmp/cafe.png
with nearly 2000 (!) people reading haskell-cafe@, perhaps its time to think some more about how to build and maintain this lovely Haskell community we have. Just yesterday I received an email:
"I posted it to Haskell-Cafe and received loads of brilliant responses. Wow, those guys are awesome. I'm definitely going to learn Haskell now."
Which is *exactly* the kind of (view of the) community we want to build and encourage, so we can keep the Haskell project growing into the future.
Hear, hear. I'm a Haskell newbie. I've not posted much, but my copy of The Haskell School of Expression just arrived from Amazon, and I'm stoked.
I think the main thing we need to remember is to help train new experts in the community, to be fluent in the culture, ensuring that expertise and a knowledge of the culture diffuses through the new people arriving.
All important. I've spent a fair amount of time in the Ruby community. I got started on Ruby around 2001, and found the community welcoming and helpful, even when I was asking what were likely many dopey questions. The general climate was sufficient to make me want to be more involved; I went and started ruby-doc.org to do my share to help the community grow, and tried to stay active on Ruby lists to help others as I had been helped. This was quite different from my experiences when learning other languages. To be fair, I don't really recall to what extent I was using Usenet and discussion groups when learning Perl, PHP, or Java, but I don't think there was the same emphasis on niceness and the promotion of an explicit community culture. I think Haskell has a reputation for being "hard", of being a dense, academic, egghead language. In short, it's scary. The more people who try it who can report good responses from the community and code success stories the more people there will be who can help each batch of newcomers. Thanks, James Britt

On Fri, Jul 13, 2007 at 12:11:58PM +1000, Donald Bruce Stewart wrote:
As we sit here riding the Haskell wave:
[..]
That is, to help people progress from newbie, to intermediate, to expert, and thus ensure the culture is maintained (avoiding `Eternal September'). This graphic[1] sums the main issue up nicely, in my view:
http://headrush.typepad.com/photos/uncategorized/buildingausercommunity.jpg
I feel somehow in the Nothing area and I feel somehow ashamed for that: I used to ask a lot when I was a newbie, but now I'm not answering very much. I ask some questions sometimes, and that's it. At first, when I was learning, I tried to help others who seemed even more novice then I was, but usually the experts used to jump in, and show, with their wonderfully conceived examples, how basically ridiculous my code was and how many better ways there are to do things. I did not want to sound clever, and, moreover, I was just trying to make my code as simple as clear as I, newbie, I would have wanted to see. Nevertheless it's not very rewarding to publicly face your ignorance at ever single message you dare to send. So you just quit. Now, I'm telling this because I believe that the expert ones are in part responsible for the gap the picture shows. But only when I'll be an expert I'll be able to prove that. In the meanwhile I'd better shut up! ;-) Just my 2 cents. all the best, andrea

On Fri, 2007-13-07 at 20:39 +0200, Andrea Rossato wrote:
http://headrush.typepad.com/photos/uncategorized/buildingausercommunity.jpg
Now, I'm telling this because I believe that the expert ones are in part responsible for the gap the picture shows.
In many ways the experts in any such community (not just the Haskell
one!) are, in fact, to blame for that gap, yes. The problem is that
they, being the experts, can most quickly and effectively answer the
questions. And for a while they do (at least subconsciously, but
sometimes overtly) bask in the attention they get as the "go-to guy".
The problem with this is twofold:
1. As you so ably pointed out, they do a disservice to the
intermediates who are sharpening their skills both technical and
pedagogical. The intermediates shut up and wait for the experts
to answer thus leaving observers of the community thinking
there's really only two or three who "really understand" the
topic in question.
2. The experts wear out. Eventually the attention isn't something
to bask in. It's to be avoided. The result is the experts
avoiding places where they're likely to be prevailed upon to
answer questions and, because of the training from #1, nobody is
left behind to fill the resulting gap.
I've seen this pattern so often in communities. I've also seen it in
management (the supervisor/manager who can do the job better than his
underlings -- so he does) or in teaching (the popular teacher gets a
heavier courseload, in effect being punished for being good) or in a
myriad of other social enterprises.
--
Michael T. Richter

On Sat, Jul 14, 2007 at 11:24:36AM +0800, Michael T. Richter wrote:
I've seen this pattern so often in communities. I've also seen it in management (the supervisor/manager who can do the job better than his underlings -- so he does) or in teaching (the popular teacher gets a heavier courseload, in effect being punished for being good) or in a myriad of other social enterprises.
I may be wrong, but I think you do not get the specificity of the Haskell community, that is quite peculiar, I'd say. When I first met Haskell, about a year ago, I started asking to the mailing list but, since I wanted to contribute back, I started also answering, with the results I told you about. I then decided to start using the wiki, possibly a more friendly place: I wrote a(nother) tutorial about monads, intended for beginners. I also wrote something that I hope could be funny and yet give some ideas on monads (it is called Meet Bob The Monadic Lover). The only reaction I received was a couple of Haskell Top Gurus making fun of me in the #haskell IRC channel (they did not know I was reading, probably). As a reaction I just wanted to erase my wiki pages and quit the community. I did only the later, but the tutorial remains unfinished (I was thinking to finish it, but read on). I came back a year later - some weeks ago - because of a renewed interest for Haskell and for some compiling projects I wanted to get involved to. So I started sending patches and writing support code (not to be included in the project I was collaborating too). Another Top Haskeller, instead of reading my code and telling me if it was good or not, started investigating if my using of a given compiler flags was due to library function abuse or not. Probably something a Top Hakseller is supposed to ask to a supposed novice. Now, that reminds me of a typical academic community, where people, just because they have a higher rank than yours, are supposed to check if you are doing things right or wrong. Now, not because they know more, they studied more the topic you are dealing with. No, it's just a matter of ranking. Every member of a faculty or a department knows what I'm talking about. And even I'm doing my academic career in Italy, known to have a very corrupted academic system - I've been abroad and I still have to find an academic system that is not suffering the very same problems of the Italian one: rank and not knowledge matters. Now, I understand why this is affecting the Haskell community: most of the Top Haskell Gurus here are Ph.D students, with very low academic ranks, and it is not a surprise they are sort of taking their sort of "revenge" here. Or just importing here that kind of academic attitude they live in. This is human, far too human. The problem is that, by doing so, they hurt their community and keep the outsiders outside, like me. Indeed, the fact that I should be used to this kind of shit, it's my job after all, does not mean I'm going to stand it even in a community I may decide not to join. I don't like speaking bad about a community I'm not part of. Still I really wanted to be part of this community. All the best Andrea

On Sun, 2007-15-07 at 10:56 +0200, Andrea Rossato wrote:
I've seen this pattern so often in communities.
I may be wrong, but I think you do not get the specificity of the Haskell community, that is quite peculiar, I'd say.
I think you're wrong. ;) The specifics of motivation and style will vary from community to community, but the net result is alarmingly (and sometimes depressingly) the same: newcomers are driven away just at the point where they're transitioning from beginners who take from the community to intermediates who could (in theory) contribute. The specifics in the Haskell community are more academic in their nature because, as you pointed out, most of the grognards are people who live and breathe academia. The Python community has a different engine for the dynamic but very similar results (right down to the mockery when people think they're not being listened in on). The Linux kernel team is infamous for its hostility to outsider input and has driven off a lot of talent that could have contributed greatly to fixing up its internal nightmares. The FSF is a personality cult with all the negatives that entails, again with people leaving just at the point where they could become useful contributors. The list goes on and on. One of the frustrating things about seeing this happen over and over again is the insistence of people that "this community is somehow different". It isn't. People are people and politics is politics. It's all the same manure on a different pile.
The only reaction I received was a couple of Haskell Top Gurus making fun of me in the #haskell IRC channel (they did not know I was reading, probably). As a reaction I just wanted to erase my wiki pages and quit the community. I did only the later, but the tutorial remains unfinished (I was thinking to finish it, but read on).
I was always wondering what happened to your tutorial. Now I know. The mockery on a public forum? Was not cool. Hell, mockery with other tops over private channels would be a childish and unhelpful reaction, but making it open like that is outright destructive. I'm quite frankly disappointed to hear that it happened.
And even I'm doing my academic career in Italy, known to have a very corrupted academic system [...]
I'll pit China against Italy for corruption any day. ;)
I don't like speaking bad about a community I'm not part of.
On the one hand I want to say "please speak as badly as you can as often
as you can" because the only way that problems that are driving off
potentially productive members of the community can be fixed is if
they're stared at in the face and hit with the rolled-up newspaper of
decency. "Bad dog!"
On the other hand, there's this:
http://www.shirky.com/writings/group_enemy.html It makes me wonder if
there's any hope at all for online communities.
--
Michael T. Richter

On Sun, Jul 15, 2007 at 09:56:46PM +0800, Michael T. Richter wrote:
One of the frustrating things about seeing this happen over and over again is the insistence of people that "this community is somehow different". It isn't. People are people and politics is politics. It's all the same manure on a different pile.
You are right. Still, I noted that usually newcomers tend to form perturbing coalitions led by some intermediate users who are trying their way up. That may not succeed but usually creates the conditions for some change. Or just a continuous noise. Or even the collapse of the community. My personal perception, and I could be factually wrong for the second time, is that here something like that is not happening at all. And I think this is related to the nature of the Haskell programming and the perception of its being difficult and intellectually demanding. That is to say, there seems to be a surplus of deference that is hurting the leadership, even more than the newcomers. This resembles me the _style_, as you noted, of the academia, where the problem is far from being brute power. Once I was sitting in front of this great Yale super professor (I'm a lawyer), together with my two mentors ("maestri" as we call them - the guys that, you know, should bring you to the tenure..;-). Now, the Yale guy, after some glasses of red wine, started talking about the concept of time in Nietzsche's philosophy. He was just talking bullshit about something he didn't know, and I was a young ph.d student who happened to have read almost all Nietzsche's works, a passion of mine at the time. My mentors knew it too, still they were just nodding ... and drinking, and dreaming. I sat there listening silently. All the best. Andrea (Now I have a new mentor and still no tenure (so many years have elapsed). So I must confess I have this tendency to being wrong.)

Andrea Rossato wrote:
I may be wrong, but I think you do not get the specificity of the Haskell community, that is quite peculiar, I'd say.
Interesting. I've just read your message three times, and you argue eloquently, and coherently. But I feel a bit of a disconnection. I don't recognise the community you're describing! I've found the haskell community to be one of the very friendliest I've ever come across on the internet. Not just friendly to me, but friendly to everyone who comes along. Every time I go on IRC, I see people (complete beginners, or less so) receiving a standard of free help and tuition which would put many of the world's leading computer training courses and degree courses to shame. (I also don't recognise your description of the academic community; anecdote vs anecdote but your experience was clearly quite different from mine) Jules

This is a bit tangental, but... One problem I sometimes have is not knowing the status of things. E.g., you read about Associated Types, and then you go "hey, is this implemented now? is it being implemented soon? etc." (Don't all rush in and tell me about ATs - I'm only picking it as an example. Others include, say, the GHC debugger, stream fusion, parallel arrays, etc etc etc.) Maybe I'm looking wrong, but it often isn't obvious to me how to figure out the answer to the question "does all this cool stuff work yet?" I'm not really sure what we could change to fix that though...

This is a bit tangental, but... One problem I sometimes have is not knowing the status of things. E.g., you read about Associated Types, and then you go "hey, is this implemented now? is it being implemented soon? etc."
(Don't all rush in and tell me about ATs - I'm only picking it as an example. Others include, say, the GHC debugger, stream fusion, parallel arrays, etc etc etc.)
Maybe I'm looking wrong, but it often isn't obvious to me how to figure out the answer to the question "does all this cool stuff work yet?" I'm not really sure what we could change to fix that though...
the Haskell Community & Activity Reports were created in part to answer that kind of question. within the limitations of 6-monthly editions (too frequent for some projects, too infrequent for others), they have tried to do ever since November 2001, the latest dating from May 2007: http://www.haskell.org/communities/ since contributors are encouraged to look ahead in plans, as well as look back on achievements, the interval of not knowing where things stand is actually shorter than 6 months. provided that people remember to write and submit entries about their favourite haskell projects when the editor comes calling before November/May!-) claus

Claus Reinke wrote:
Maybe I'm looking wrong, but it often isn't obvious to me how to figure out the answer to the question "does all this cool stuff work yet?" I'm not really sure what we could change to fix that though...
the Haskell Community & Activity Reports were created in part to answer that kind of question. within the limitations of 6-monthly editions (too frequent for some projects, too infrequent for others), they have tried to do ever since November 2001, the latest dating from May 2007:
http://www.haskell.org/communities/
since contributors are encouraged to look ahead in plans, as well as look back on achievements, the interval of not knowing where things stand is actually shorter than 6 months. provided that people remember to write and submit entries about their favourite haskell projects when the editor comes calling before November/May!-)
Thanks - I'll take a look...

On Sun, 2007-07-15 at 17:49 +0100, Andrew Coppin wrote:
This is a bit tangental, but... One problem I sometimes have is not knowing the status of things. E.g., you read about Associated Types, and then you go "hey, is this implemented now? is it being implemented soon? etc."
(Don't all rush in and tell me about ATs - I'm only picking it as an example. Others include, say, the GHC debugger, stream fusion, parallel arrays, etc etc etc.)
Maybe I'm looking wrong, but it often isn't obvious to me how to figure out the answer to the question "does all this cool stuff work yet?" I'm not really sure what we could change to fix that though...
Ah, a question that can be answered with RTFM (http://haskell.org/haskellwiki/GHC)

Derek Elkins wrote:
On Sun, 2007-07-15 at 17:49 +0100, Andrew Coppin wrote:
This is a bit tangental, but... One problem I sometimes have is not knowing the status of things. E.g., you read about Associated Types, and then you go "hey, is this implemented now? is it being implemented soon? etc."
(Don't all rush in and tell me about ATs - I'm only picking it as an example. Others include, say, the GHC debugger, stream fusion, parallel arrays, etc etc etc.)
Maybe I'm looking wrong, but it often isn't obvious to me how to figure out the answer to the question "does all this cool stuff work yet?" I'm not really sure what we could change to fix that though...
Ah, a question that can be answered with RTFM (http://haskell.org/haskellwiki/GHC)
I could have sworn I heard somewhere that the debugger would be in GHC 6.6.1... but, apparently, I am mistaken. I have no idea which version it *is* going to be in... (Presumably the next one.) Still, the document in question still doesn't tell me, for example, "does the version of ByteString I'm using have all that stream fusion goodness I read about?" I also don't see anything about the status of parallel arrays...

On Sun, 2007-07-15 at 18:47 +0100, Andrew Coppin wrote:
Derek Elkins wrote:
On Sun, 2007-07-15 at 17:49 +0100, Andrew Coppin wrote:
This is a bit tangental, but... One problem I sometimes have is not knowing the status of things. E.g., you read about Associated Types, and then you go "hey, is this implemented now? is it being implemented soon? etc."
(Don't all rush in and tell me about ATs - I'm only picking it as an example. Others include, say, the GHC debugger, stream fusion, parallel arrays, etc etc etc.)
Maybe I'm looking wrong, but it often isn't obvious to me how to figure out the answer to the question "does all this cool stuff work yet?" I'm not really sure what we could change to fix that though...
Ah, a question that can be answered with RTFM (http://haskell.org/haskellwiki/GHC)
I could have sworn I heard somewhere that the debugger would be in GHC 6.6.1... but, apparently, I am mistaken. I have no idea which version it *is* going to be in... (Presumably the next one.)
On the very page I linked is a link labelled "The GHCi Debugger". Clicking on it you get "The debugger is currently available in GHC 6.7" Similarly for parallel arrays There is no version of bytestrings without stream fusion and there never was. Bytestrings have no compiler support, it is just a library.

Derek Elkins wrote:
On Sun, 2007-07-15 at 18:47 +0100, Andrew Coppin wrote:
I could have sworn I heard somewhere that the debugger would be in GHC 6.6.1... but, apparently, I am mistaken. I have no idea which version it *is* going to be in... (Presumably the next one.)
On the very page I linked is a link labelled "The GHCi Debugger". Clicking on it you get "The debugger is currently available in GHC 6.7"
Similarly for parallel arrays
Doh! I didn't scroll all the way down. :-( (I guess it's habit. I go to the Haskell home page, nagivate to the page you linked, and click the user manual. It's how I get to the user manual when I want to look up obscure GHC flags...)
There is no version of bytestrings without stream fusion and there never was. Bytestrings have no compiler support, it is just a library.
I realise it's a library - but it would be possible to implement it without adding the RULE section at the bottom. And indeed, the way the paper compares performance with and without rules turned on made me wonder whether the guys implemented this thing, saw "hey, that's much faster than [Char]", and then later came back and said "hey, we could use RULES to make this faster still!" Apparently that's not the case, but I didn't know that...

On 7/15/07, Derek Elkins
There is no version of bytestrings without stream fusion and there never was. Bytestrings have no compiler support, it is just a library.
I'm not sure that's correct. Stream fusion is a particular fusion technique that wasn't introduced until fairly recently.
From what I can tell, none of the versions available from http://www.cse.unsw.edu.au/~dons/fps.html include it. You have to go to http://www.cse.unsw.edu.au/~dons/papers/CSL06.html and get the code from the fps-unstable branch.

zednenem:
On 7/15/07, Derek Elkins
wrote: There is no version of bytestrings without stream fusion and there never was. Bytestrings have no compiler support, it is just a library.
I'm not sure that's correct. Stream fusion is a particular fusion technique that wasn't introduced until fairly recently.
From what I can tell, none of the versions available from http://www.cse.unsw.edu.au/~dons/fps.html include it. You have to go to http://www.cse.unsw.edu.au/~dons/papers/CSL06.html and get the code from the fps-unstable branch.
That's right. Both stream fusion for lists and bytestrings are currently only in darcs, http://www.cse.unsw.edu.au/~dons/code/fps-unstable/ http://www.cse.unsw.edu.au/~dons/code/streams/list/ Bytestrings will be streamed by the next release. -- Don

Donald Bruce Stewart wrote:
zednenem:
On 7/15/07, Derek Elkins
wrote: There is no version of bytestrings without stream fusion and there never was. Bytestrings have no compiler support, it is just a library.
I'm not sure that's correct. Stream fusion is a particular fusion technique that wasn't introduced until fairly recently.
From what I can tell, none of the versions available from http://www.cse.unsw.edu.au/~dons/fps.html include it. You have to go to http://www.cse.unsw.edu.au/~dons/papers/CSL06.html and get the code from the fps-unstable branch.
That's right. Both stream fusion for lists and bytestrings are currently only in darcs,
http://www.cse.unsw.edu.au/~dons/code/fps-unstable/ http://www.cse.unsw.edu.au/~dons/code/streams/list/
Bytestrings will be streamed by the next release.
...which brings me back to my original "how do I know if it's there?" question. ;-) My copy of GHC sitting here certainly *has* support for lists and byte strings in it - but I have no clue what version...

The following recent reply from Dave Bayer is IMHO nearly optimal for "Maintaining the Community", and I applaud him for it: Dave Bayer wrote:
[someone] writes:
So what the hell is the difference between them? Int and Integer. They aren't synonyms clearly. What's going on?
http://www.haskell.org/haskellwiki/Learn_Haskell_in_10_minutes
is a good starting point for answering this and similar questions.
0) The question that was actually asked was answered, saving follow-on frustration, discouragement, and noise. The experience level of the answer matches the (inferred) experience level of the question. 1) The provocative word "hell" is appropriately ignored without comment, allowing leeway for occasional frustration, especially from newbies. 2) No assumption was made that the person who posed the question was being lazy, stupid, or acting in bad faith. 3) A useful link was provided to enable the questioner to answer his own question without excess frustration, and without the useless "that was already answered in a previous e-mail" (but who knew? I just joined the list...) was not deployed. 4) The last line pleasantly (read: effectively) encouraged optimal future interaction. The inevitably irritating phrase "Next time," was wonderfully avoided. 5) Phrases like "of course", "wild guess", why don't you", "if you just", "next time", "before you do ...", that provide only heat without light were not deployed in arrogance or anger. Dan Weston

On Fri, 2007-13-07 at 12:11 +1000, Donald Bruce Stewart wrote:
* Give tips on how to answer questions
Answering politely, and in detail, explaining common misunderstandings is better than one word replies.
I can give one added tip, though, that is an opposing force which has to
be balanced against this "in detail" meme. A pattern I see a lot in
computing, but especially in esoteric computing (which Haskell is,
still) is a newcomer asking a question and getting a response from the
community, as the result of continued conversation within it (and not
with said newcomer!), that looks astonishingly like this:
http://www.willamette.edu/~fruehr/haskell/evolution.html
While it is understandable, given the intense interest most grognards of
any language have in playing with the language, for people to enjoy
conversations that go into the ever-more-esoteric, it is decidedly not
helpful to the newcomer striving to understand things. So yes: Answer
politely. Explain your answer in detail suited to the perceived level
of the asker. Clear common misunderstandings. But do not use this as a
launchpad into the geek equivalent of language knowledge oneupmanship.
It confuses far more than it helps. If you really need to enter into
the game, branch out. Don't even reply to the thread but start a new
thread with your reply. Leave the newcomer to the comprehensible side,
even if it is perhaps somehow less than "perfect" by whatever standards
you choose to measure perfection in.
--
Michael T. Richter

Hallo,
On 7/14/07, Michael T. Richter
While it is understandable, given the intense interest most grognards of any language have in playing with the language, for people to enjoy conversations that go into the ever-more-esoteric, it is decidedly not helpful to the newcomer striving to understand things. So yes: Answer politely. Explain your answer in detail suited to the perceived level of the asker. Clear common misunderstandings. But do not use this as a launchpad into the geek equivalent of language knowledge oneupmanship. It confuses far more than it helps. If you really need to enter into the game, branch out. Don't even reply to the thread but start a new thread with your reply. Leave the newcomer to the comprehensible side, even if it is perhaps somehow less than "perfect" by whatever standards you choose to measure perfection in.
This is so much true. It has the effect of disguising Haskell as a PhD-only language. Cheers, -- -alex http://www.ventonegro.org/

"Alex Queiroz"
This is so much true. It has the effect of disguising Haskell as a PhD-only language.
And what would be wrong with Haskell being a PhD-only language, if it were true? OK, so I'm not genuinely suggesting that you must possess or be studying for a PhD, to grok Haskell. But I find nothing alarming about the suggestion that one needs a fairly high level of intelligence, and some training, in order to be able to use Haskell effectively. After all, we would expect the same attributes (intelligence and training) from a neurosurgeon, a nuclear scientist, or someone who calculates how to land a person on the moon. Programming computers may not seem very skilled to most people, but maybe that is simply because we are so familiar with it being done so badly. I'm all for improving the quality of software, and the corollary is that that means improving the quality of programmers (by stretching our brains!). Regards, Malcolm

Hallo,
On 7/16/07, Malcolm Wallace
OK, so I'm not genuinely suggesting that you must possess or be studying for a PhD, to grok Haskell. But I find nothing alarming about the suggestion that one needs a fairly high level of intelligence, and some training, in order to be able to use Haskell effectively.
If I say I'm not stupid, would you believe me? I'm not saying that Visual Basic-level programmers should be able to understand haskell without a lot more studying and practice. What I'm saying is that almost every topic in Haskell Café evolves into a very high level discussion that may frighten some beginners, as it seems that without a PhD in programming languages and category theory, the language is not for you. Cheers, -- -alex http://www.ventonegro.org/

Alex Queiroz wrote:
On 7/16/07, Malcolm Wallace
wrote: OK, so I'm not genuinely suggesting that you must possess or be studying for a PhD, to grok Haskell. But I find nothing alarming about the suggestion that one needs a fairly high level of intelligence, and some training, in order to be able to use Haskell effectively.
What I'm saying is that almost every topic in Haskell Café evolves into a very high level discussion that may frighten some beginners, as it seems that without a PhD in programming languages and category theory, the language is not for you.
read . takeWhile (not . frightening) ;) Personally, I perceive Haskell as being easier than every other programming language. In other words, if Haskell requires a PhD, Visual Basic requires a Nobel Prize. How the heck do imperative programmers produce working code and how are they able to read the resulting mess afterwards? I just don't get it :) To be serious, those frightening things are often very simple concepts but will remain frightening if not explained well. My experience is that wikis, blog posts and online tutorials can't replace a textbook-quality, well, textbook. Unless the online materials are textbook-quality as well, of course. Really, the best way to learn Haskell (and most other things) is to read/buy/borrow a textbook. This also applies to the mailing list and the "cache of answers" for optimization volume. One example is the "hGetContents - hClose" question. I think that most people encountering this problem won't realize on the first try that hGetContents is the culprit. But how to formulate a good search query then? In the end, I think that the best way to avoid trouble with hGetContents is to be introduced to it in a textbook chapter "IO and Files". Regards, apfelmus PS: hGetContents-hClose is particularly strange since you need operational semantics of lazy evaluation to understand it.

Hello Malcolm, Monday, July 16, 2007, 4:52:01 PM, you wrote:
After all, we would expect the same attributes (intelligence and training) from a neurosurgeon, a nuclear scientist, or someone who calculates how to land a person on the moon. Programming computers may not seem very skilled to most people, but maybe that is simply because we are so familiar with it being done so badly.
are you ever tried, for example, programming GUI applications using WinAPI directly? it required serious skills but i don't think that we lose too much with all the modern RAD tools otoh, i don't think that Haskell by itself is too complex. i seen the same complaints in the early GUI era, early OOP era. Haskell and functional programming in whole just need to have larger teaching base: courses, books and so on. and PhDs will always find some tricky ideas just to prove that they are smarter than other people ;) -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

On 7/16/07, Malcolm Wallace
After all, we would expect the same attributes (intelligence and training) from a neurosurgeon, a nuclear scientist, or someone who calculates how to land a person on the moon. Programming computers may not seem very skilled to most people, but maybe that is simply because we are so familiar with it being done so badly. I'm all for improving the quality of software, and the corollary is that that means improving the quality of programmers (by stretching our brains!).
You want people doing difficult expensive high-risk tasks to be intelligent and well trained, but you want their task to be as easy as possible. Would you rather a nuclear reactor needs to be controlled by feeding in punch cards, or by having a big round dial labelled "power", that you can move from 0 to 200 MegaWatts? Of course, you'd like the guy moving that dial to be well trained and intelligent. Welcome to why flying airlines is well-paid and boring.

On Monday 16 July 2007, Hugh Perkins wrote:
On 7/16/07, Malcolm Wallace
wrote: After all, we would expect the same attributes (intelligence and training) from a neurosurgeon, a nuclear scientist, or someone who calculates how to land a person on the moon. Programming computers may not seem very skilled to most people, but maybe that is simply because we are so familiar with it being done so badly. I'm all for improving the quality of software, and the corollary is that that means improving the quality of programmers (by stretching our brains!).
You want people doing difficult expensive high-risk tasks to be intelligent and well trained, but you want their task to be as easy as possible.
Would you rather a nuclear reactor needs to be controlled by feeding in punch cards, or by having a big round dial labelled "power", that you can move from 0 to 200 MegaWatts? Of course, you'd like the guy moving that dial to be well trained and intelligent. Welcome to why flying airlines is well-paid and boring.
*For airline pilots.* For most people, flying airliners is poorly-paid and quite exciting (at least up until the inevitable crash). Haskell may be a PhD language, but (that is, it isn't, but even if it were) it's quite easy to work in for PhDs. Which isn't at all the same thing as being easy to work in for VB programmers. Jonathan Cast http://sourceforge.net/projects/fid-core http://sourceforge.net/projects/fid-emacs

On 7/16/07, Malcolm Wallace
OK, so I'm not genuinely suggesting that you must possess or be studying for a PhD, to grok Haskell. But I find nothing alarming about the suggestion that one needs a fairly high level of intelligence, and some training, in order to be able to use Haskell effectively.
When I was a teenager I thought people with PhDs were minor deities. Having done one, and knowing lots of people with them, I can tell you, the vast majority of people with a PhD (including me) have merely above average intelligence. A PhD is not a mark of intelligence. It's a mark of persistence. (Shall we say obsession?) I think Malcolm's analogy to other professions is quite apt. If we expect to be taken seriously as professionals, it would be unsurprising to find that we need to engage in some strenuous [mental] effort to acquire the skills. And this is where I think Haskell has it all over C++, Java, and the rest. Haskell is easy to learn at a simple level, and hard to learn at the expert level, but once learned is very powerful and has excellent payoffs in terms of productivity. With C++ or Java, the expertise is somewhat easier to acquire, but you never get the payoff. And before you all flame, yes, I do know C++ at an expert level, and that is exactly why, after 7 years of writing server software in C++, I now want to do it in Haskell. cheers, T -- Dr Thomas Conway drtomc@gmail.com Silence is the perfectest herald of joy: I were but little happy, if I could say how much.

And this is where I think Haskell has it all over C++, Java, and the rest. Haskell is easy to learn at a simple level, and hard to learn at the expert level, but once learned is very powerful and has excellent payoffs in terms of productivity. With C++ or Java, the expertise is somewhat easier to acquire, but you never get the payoff.
That may be true of Java, but it's not of C++. C++'s language specification is so big, it's almost too big to fit in one person's brain. It takes many years of studied confusion and a particularly anal frame of mind to work out what it, and what isn't, legal. And to top it off, it has a small pattern-matching pure-functional language with type classes built in that only runs at compile time. And that's before you get started on learning the various modern idioms you need to learn to stop C++ from burning you on the arse.
And before you all flame, yes, I do know C++ at an expert level, and that is exactly why, after 7 years of writing server software in C++, I now want to do it in Haskell.
Me too, which is why I find your statement that expertise in C++ is easy to acquire. Seeing some of my colleagues' code is enough to tell me that this is most definitely not the case. Martin

On 7/17/07, Martin Coxall
Me too, which is why I find your statement that expertise in C++ is easy to acquire. Seeing some of my colleagues' code is enough to tell me that this is most definitely not the case.
You're quite right. That was careless on my part. Though the way C++ is taught at the undergraduate level, and the way it is perceived by the inexperienced is that it isn't so hard. But then again, I've taught Java at the ugrad level, and what do I know about Java, other that it'd be quite a nice place to have a holiday some time.... :) T. -- Dr Thomas Conway drtomc@gmail.com Silence is the perfectest herald of joy: I were but little happy, if I could say how much.

On Tue, Jul 17, 2007 at 19:43:51 +1000, Thomas Conway wrote:
On 7/17/07, Martin Coxall
wrote: Me too, which is why I find your statement that expertise in C++ is easy to acquire. Seeing some of my colleagues' code is enough to tell me that this is most definitely not the case.
You're quite right. That was careless on my part. Though the way C++ is taught at the undergraduate level, and the way it is perceived by the inexperienced is that it isn't so hard.
But then again, I've taught Java at the ugrad level, and what do I know about Java, other that it'd be quite a nice place to have a holiday some time.... :)
My wife is from Java so if you need some advice on good vacation spots I'd be happy to ask her advice ;-) /M -- Magnus Therning (OpenPGP: 0xAB4DFBA4) magnus@therning.org Jabber: magnus.therning@gmail.com http://therning.org/magnus

On 7/17/07, Magnus Therning
On Tue, Jul 17, 2007 at 19:43:51 +1000, Thomas Conway wrote:
On 7/17/07, Martin Coxall
wrote: Me too, which is why I find your statement that expertise in C++ is easy to acquire. Seeing some of my colleagues' code is enough to tell me that this is most definitely not the case.
You're quite right. That was careless on my part. Though the way C++ is taught at the undergraduate level, and the way it is perceived by the inexperienced is that it isn't so hard.
But then again, I've taught Java at the ugrad level, and what do I know about Java, other that it'd be quite a nice place to have a holiday some time.... :)
My wife is from Java so if you need some advice on good vacation spots I'd be happy to ask her advice ;-)
import java.wife.advice.CheapHotels;

On 7/17/07, Thomas Conway
And this is where I think Haskell has it all over C++, Java, and the rest. Haskell is easy to learn at a simple level, and hard to learn at the expert level, but once learned is very powerful and has excellent payoffs in terms of productivity. With C++ or Java, the expertise is somewhat easier to acquire, but you never get the payoff. And before you all flame, yes, I do know C++ at an expert level, and that is exactly why, after 7 years of writing server software in C++, I now want to do it in Haskell.
You know, it just occurred to me: I get the feeling that many Haskell programmers are ex-C++ programmers, which makes a certain amount of sense because C++ is insanely hard to debug and maintain, because of stack/heap corruption, and lack of a GC. Am I the only person who finds it interesting/worrying that there are few to no people in the group who are ex-C# programmers. I mean, you could argue that C# programmers are simply too stupid to do Haskell, but ... you know, there is another explanation ;-)

On 7/18/07, Hugh Perkins
Am I the only person who finds it interesting/worrying that there are few to no people in the group who are ex-C# programmers. I mean, you could argue that C# programmers are simply too stupid to do Haskell, but ... you know, there is another explanation ;-)
I wouldn't say too stupid, but it may be a cultural thing. People working in C++ are more likely to be doing what I would call "technical" programming, and correspondingly more likely to be interested in Haskell, and to appreciate what it has to offer from painful personal experience. From what I know of the marketplace, people working in C# are more likely to be doing client/integration work where technical finesse is less important, and are therefore less likely to see the point. cheers, T. -- Dr Thomas Conway drtomc@gmail.com Silence is the perfectest herald of joy: I were but little happy, if I could say how much.

On 7/17/07, Thomas Conway
On 7/18/07, Hugh Perkins
wrote: Am I the only person who finds it interesting/worrying that there are few to no people in the group who are ex-C# programmers. I mean, you could argue that C# programmers are simply too stupid to do Haskell, but ... you know, there is another explanation ;-)
I wouldn't say too stupid, but it may be a cultural thing. People working in C++ are more likely to be doing what I would call "technical" programming, and correspondingly more likely to be interested in Haskell, and to appreciate what it has to offer from painful personal experience. From what I know of the marketplace, people working in C# are more likely to be doing client/integration work where technical finesse is less important, and are therefore less likely to see the point.
Quite. Any C++ developer who has spent any time with Boost knows and has experienced the horror of Boost::Lambda. C++ template metaprogramming *is* a pattern-matching pure functional language with type classes (template classes), but it's syntatically ugly and far too minimal. The Boost community are doing a valiant job of trying to add higher order capabilities to C++, but the langauge is just not set up for it. Maybe when C++0x matures, and C++ has concepts, variadic template parameters etc., things will be more civilized. Or we can use Haskell, which has them now. FWIW, C# is slowly gaining higher order concepts too. C# 2.0: Ad hoc polymorphism, closures (anonymous delegates). C# 3.0: Lambda expressions, higher-order functions over collections, LINQ, etc. Martin

On Tuesday 17 July 2007 23:26:08 Hugh Perkins wrote:
Am I the only person who finds it interesting/worrying that there are few to no people in the group who are ex-C# programmers. I mean, you could argue that C# programmers are simply too stupid to do Haskell, but ... you know, there is another explanation ;-)
To understand this, I think you must look at the number of technical users for each language. There are a huge number of technical C++ and Java programmers but a tiny number of technical C# programmers in comparison. The few technical C# programmers are migrating to F# because it is next door and F# programmers are better looking. You can find evidence of this simply by searching for mundane numerical libraries like Fast Fourier Transform (FFT) implementations. If you do this for C++ or Java you find hundreds of implementations, some of which will work. For OCaml, you find a handful of libraries all bundled with automated proofs of their correctness. When I did this for all .NET languages a couple of months ago, there was nothing worth having (even among expensive commercial solutions). So I wrote my own and productized it. Our FFT library in C# is an order of magnitude less popular than our technical libraries for OCaml but this is offset by the fact that people using C# have an order of magnitude more money. So I would say that the Haskell community can expect immigrants who are technical (or they wouldn't consider a fringe language) and that means they will be migrating primarily from C++ and Java. If you want to attract the maximum number of users then target your educational material at those people. The C++ programmers will know that coding to the metal is always essential and will demand proof that Haskell is as fast as C. They will also need to know how to unravel low-dimensional vector and matrix routines at compile time. The Java programmers will know that performance (particularly startup time) is completely irrelevant but being cross-platform and having extreme interoperability is pivotal. They will be particularly impressed by Haskell's brevity and the disappearance of some of Java's keywords like public, static, void and Factory. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. OCaml for Scientists http://www.ffconsultancy.com/products/ocaml_for_scientists/?e

On 7/18/07, Jon Harrop
On Tuesday 17 July 2007 23:26:08 Hugh Perkins wrote:
Am I the only person who finds it interesting/worrying that there are few to no people in the group who are ex-C# programmers. I mean, you could argue that C# programmers are simply too stupid to do Haskell, but ... you know, there is another explanation ;-)
To understand this, I think you must look at the number of technical users for each language. There are a huge number of technical C++ and Java programmers but a tiny number of technical C# programmers in comparison. The few technical C# programmers are migrating to F# because it is next door and F# programmers are better looking.
Most C# programmers are (a) GUI programmers and (b) former VB programmers. This means they are *guaranteed* to be less attractive that the average C++ developer. I have proof. But it's too big to be contained in this margin. Martin

On 7/18/07, Martin Coxall
On 7/18/07, Jon Harrop
wrote: On Tuesday 17 July 2007 23:26:08 Hugh Perkins wrote:
Am I the only person who finds it interesting/worrying that there are few to no people in the group who are ex-C# programmers. I mean, you could argue that C# programmers are simply too stupid to do Haskell, but ... you know, there is another explanation ;-)
To understand this, I think you must look at the number of technical users for each language. There are a huge number of technical C++ and Java programmers but a tiny number of technical C# programmers in comparison. The few technical C# programmers are migrating to F# because it is next door and F# programmers are better looking.
Most C# programmers are (a) GUI programmers and (b) former VB programmers. This means they are *guaranteed* to be less attractive that the average C++ developer. I have proof. But it's too big to be contained in this margin.
Martin
I heard that Fermat didn't even actually have a proof. You wouldn't be trying to hoodwink us in the same way, would you? :) I haven't been paying attention to the subject, but I suppose I should pipe in now. I really enjoy Haskell. I'm probably like most people here in that I like learning new languages: I've given Scheme a fair shot; F# captured my interest for a while, and right now I'm toying with Erlang. I've tried Python, used Perl for a job, determined after an hour that PHP wasn't for me, and even looked at Ruby. The list goes on. (Always, of course, I keep GHC on my computer.) But for work, I use C#. And I, for one, am looking forward to C#3.0, because it will be easier to apply my FP experience to problems when FP is the better way to solve a problem. (You've heard the maxim that when all you have is a hammer, everything looks like a nail; the flip side of it is that when you've got a whole tool set including a screwdriver and you see a screw, but your company only lets you use your hammer, it can be frustrating to beat on the screw with the hammer.) And since I'm fresh out of college with no experience, I'm neither in a position to even suggest a language change in my company, nor do I have the experience to move to the occassional Scheme or Erlang job opening I see (I don't know if I've ever seen a Haskell job opening, and I'm guessing if I did it would get snatched up by a more qualified programmer quite quickly). I guess the point being made is that there are a smaller percentage of attractive programmers in C#; but it looked to me that people were implying that there are /no/ knowledgeable programmers in C#; and I'd just like to assert that maybe there are some that don't really have a choice right now. :) Bryan

Bryan Burgers wrote:
I heard that Fermat didn't even actually have a proof.
That's unsubstantiated conjecture! :-P Oh, sure, it took over 300 years to arrive at the modern-day proof, which runs to over 400 pages of cutting-edge mathematics spanning multiple very modern disiplins, and is so dense that reputedly only 6 people in the world actually understand it... but... um... what was I saying again?
I haven't been paying attention to the subject, but I suppose I should pipe in now. I really enjoy Haskell. I'm probably like most people here in that I like learning new languages:
I was told that Lisp is "the language to end all languages". Personally, I tried learning it, and concluded that it sucks. I did learn PostScript in my lunchbreak at work one time because I was bored though... And Tcl on another day... and I read "The Poiniant Guide to Ruby" (which was just the most bizzare thing EVER!) Haskell is a language that has lit up my world. All of the programs I write are heavily math-based, and Haskell seems to be just *perfect* for the job. (Aside from it being so hard to make it go any faster...) To quote somebody else, "Haskell has given a joy to programming that I didn't even know was missing!" Anyway, enough raphsody for now. ;-) I'm surprised at the Java comments... I always thought Java was a language for throwing together Tic-Tac-Toe demos?

Just found this in a gmail adtext link, it's quite interesting (and convincing): http://www.janestcapital.com/yaron_minsky-cufp_2006.pdf

On Wed, 2007-07-18 at 00:26 +0200, Hugh Perkins wrote:
On 7/17/07, Thomas Conway
wrote: And this is where I think Haskell has it all over C++, Java, and the rest. Haskell is easy to learn at a simple level, and hard to learn at the expert level, but once learned is very powerful and has excellent payoffs in terms of productivity. With C++ or Java, the expertise is somewhat easier to acquire, but you never get the payoff. And before you all flame, yes, I do know C++ at an expert level, and that is exactly why, after 7 years of writing server software in C++, I now want to do it in Haskell. You know, it just occurred to me: I get the feeling that many Haskell programmers are ex-C++ programmers, which makes a certain amount of sense because C++ is insanely hard to debug and maintain, because of stack/heap corruption, and lack of a GC.
Am I the only person who finds it interesting/worrying that there are few to no people in the group who are ex-C# programmers. I mean, you could argue that C# programmers are simply too stupid to do Haskell, but ... you know, there is another explanation ;-)
Don't you think it's a little early for people to be abandoning C# en masse? For example, there are plenty of ex/current Java programmers.
participants (45)
-
Aaron Denney
-
Alex Queiroz
-
Andrea Rossato
-
Andrew Coppin
-
Anthony Chaumas-Pellet
-
apfelmus
-
brad clawsie
-
Brandon S. Allbery KF8NH
-
Bryan Burgers
-
Bulat Ziganshin
-
Bárður Árantsson
-
Chris Smith
-
Claus Reinke
-
Conor McBride
-
Dan Weston
-
Dave Bayer
-
David Menendez
-
Derek Elkins
-
dons@cse.unsw.edu.au
-
Dougal Stanton
-
Felipe Almeida Lessa
-
Hugh Perkins
-
Ian Lynagh
-
James Britt
-
Jens Fisseler
-
Jim Burton
-
Jon Harrop
-
Jonathan Cast
-
Jules Bean
-
Lutz Donnerhacke
-
Magnus Therning
-
Malcolm Wallace
-
mark@ixod.org
-
Martin Coxall
-
Michael T. Richter
-
Miguel Mitrofanov
-
Neil Mitchell
-
Nicolas Frisby
-
ok
-
Philippa Cowderoy
-
Re, Joseph (IT)
-
Simon Peyton-Jones
-
Stefan O'Rear
-
Thomas Conway
-
Thorkil Naur