JMCT

Professor Paul Hudak

Apr 24, 2015

I just heard, via the Hudak family’s caringbridge journal, that Paul Hudak is in critical condition and unlikely to be with us much longer. My heart goes out to Prof. Hudak’s loved ones in these final moments.

As with many others, Prof. Hudak has had a huge influence on my work and the way I view functional programming. His book “The Haskell School of Expression” (and later “The Haskell School of Music”) introduced artists to functional programming and functional programmers to art. The Haskell School of Music is especially good at being both a programming text and an introduction to computer music (I wish the book had been around when I did my Music Engineering degree).

His influence on programming languages as a discipline is well known. His work was always the right combination of rigorous, interesting, and elegant. He advocated for the use of denotational semantics not only as a tool in specifying the behaviour of programs1 but as a sanity-check on an idea, arguing that if a language feature could not be elegantly expressed in a denotational semantics then the feature should be reconsidered.

He was also unafraid of expressing unpopular opinions. In a Haskell mailing list post he decries the overuse of ‘do’ notation, claiming it obscures, rather than reveals, what’s happening in a program. Having taught hundreds of undergrads Haskell for a compilers course I’ve come to appreciate Hudak’s point. I now start new Haskellers off using explicit (>>=) and lambdas over ‘do’ notation until they understand the underlying structure, then when they graduate to ‘do’ notation there are far fewer students who get thrown when using monads.

On top of Prof. Hudak’s many accomplishments he was known as a very gracious and generous man. I could repeat one of the many stories I’ve been told about him but instead I’ll share the one personal story I have.

I was fortunate enough to meet Prof. Hudak at ICFP last year. I was taking a break during one of the sessions and he was outside relaxing and, in his own words, “dealing with jetlag”. I introducted myself and we had a long chat about functional programming, implicit parallelism, Prof. Colin Runciman (my supervisor), and of course music. One of the interesting things about researching implicit parallelism is that the functional programming community is very split on the idea. Some feel very strongly that it can’t work and is a waste of research effort, while others are excited by the idea and are happy that someone is working on it. When I told Prof. Hudak what I was working on he got excited and was extremely supportive. If he held any doubts about the plausibility of the idea he was gracious enough to put them aside and chat with me about it.

Throughout the rest of the conference he would often come up to me for a quick hello. A few days later he and his PhD student, Dan, invited me to go to the theme park that was near the ICFP venue with them. I turned them down as I ‘had’ to work on a paper2. In those few days of speaking with Prof. Hudak it was clear that he was as gracious and humble as he was brilliant.

My story is not unique, literally every person I have spoken to about Hudak and his work has commented on how nice/generous/humble he was. In a world full of egos and me-firsts, Prof. Hudak embodied what academia should be about: sharing your ideas with others and hearing their ideas, no matter who they are (even star-struck PhD students).

-JMCT


  1. Operational vs. Denotational

  2. Life tip: If one of your heros invites you to a theme park, go. Your research will be there in the morning.