I just got home from a great week in Boston, where I attended this year’s ICFP and affiliated events. I presented our first paper on LVars at the FHPC workshop on Monday, and I also managed to catch a bit of the Haskell Symposium on Monday and Tuesday.

At FHPC, my talk went well, and I spoke with various people who are interested in using LVars. One person I spoke with even wants to implement LVars in Erlang! (It’d be amazing if that could happen before I head to RICON next month.) Although I didn’t take a lot of notes during FHPC, I scribbled down a few things during Matthew Fluet’s interesting invited talk on Manticore:

  • “Implicitly-threaded parallelism” just means hints to the compiler or runtime that a computation is a good candidate for parallel execution, as opposed to the explicit “Hey, launch a thread here!” that you see in, for instance, Java.
  • “Not all memory is equally close to a CPU.”
  • If you’re only benchmarking up to twelve or so cores, you’ll be left with a “false sense of scalability”! (We’ve certainly been guilty of this with LVar stuff.)
  • Controlling mutable state is a challenge. In fact, the only way to write stateful programs in Manticore is sequentially! Hmm.

At the Haskell Symposium, “Haskell and GHC: Too Big to Fail?” was a lively and highly quotable panel discussion:

  • “The strength and weakness of Haskell is GHC and its community.” – Bastiaan Heeren
  • “If I’d known then [when we started working on Fortress] what I know now, then instead of trying to drag Fortran one-tenth of the way toward Haskell, I’d try to drag Haskell one-tenth of the way toward Fortran.” – Guy Steele
  • On GHC becoming the de facto standard implementation of Haskell: “I’ve ceased to worry about it. Instead, the new plan is to make the language and compiler as open as possible.” – Simon Peyton Jones
  • “The thing about laboratories is, that’s a place where you test things to destruction.” – SPJ
  • “The thing that I’ve learned from Guy is, cling to a few core principles and be willing to change everything else.” – SPJ
  • In the context of a discussion on how to make Haskell more accessible, Bryan O’Sullivan pointed out that Node.js makes their programming model seem accessible by not talking about how hard it is. “You’re constructing chains of continuations by hand! It’s a programming model that is so difficult that we basically imported monads into Haskell in order to deal with it.”
  • An insightful audience comment from Jonathan Fischoff: There’s a problem with the way we try to sell Haskell. Don’t try to talk about correctness (versus, e.g., PHP) – talk about scalability to multicore (versus, e.g., PHP)!
  • “There are a lot of us here at ICFP who aren’t from the academic world and are generally here for the drinking.” – BOS
  • SPJ: The number of Haskell libraries on Hackage [5.5K] is “an astonishing outpouring of human creativity”.

I also really liked Michał Pałka’s talk illustrating a flaw in Haskell’s standard pseudorandom number generator: Consider a test that chooses two random numbers, each between 0 and 13, and compares them for equality, failing when they’re equal. We’d expect such a test to fail 1 in 14 times, but in 10,000 trials, it always passes QuickCheck! Best quotation from the talk: “As people who have tried to counterfeit Jackson Pollock paintings know, writing a good RNG is hard.”

Update (October 4, 2013): I forgot to mention one important thing that happened at the Haskell Symposium. My friend (and IU faculty member, and member of my dissertation committee) Chung-chieh Shan was the Haskell Symposium program chair this year. After having been awake for about 36 hours while traveling to Boston, preparing for my FHPC talk, and then giving the talk on Monday afternoon, I was exhausted and slept for a solid fourteen hours. It was great! But, regrettably, it meant that I wasn’t there for Ken’s program chair report on Tuesday morning. Thankfully, he’s posted the entirety of it on his blog. Along with the usual program chair report business, Ken takes the opportunity to begin a discussion about sexism, racism, homophobia, and cissexism/transphobia in the Haskell community.

If you’re a part of the Haskell community in any way, whether casually or seriously, I hope you’ll read Ken’s report, and consider participating in the following process:

First, it’s high time we learned from those people who did not find the Haskell community a welcoming place. If you were excluded, or if you know someone who was, please share your stories. Of course you don’t have any obligation to do anything, but out of the goodness of your hearts, please be our teacher. Please contact me, at ccshan@indiana.edu. I’m getting help from some cultural anthropologists at Indiana University. If you know about anthropology at Indiana, you’ll know that these are professionals who really know how to learn from and respect your individual experiences and perspectives. We’re going to conduct interviews and anonymize them. Then, I’m not sure what we’ll do with the interviews – maybe they’ll become a SIGPLAN Notices article, or a theatrical play, or a shared resource if the interviewees are willing. In any case, the goal is to strengthen our empathy for each other, to understand our different perspectives on our shared community, and to open conversations about this important topic.