CUFP 2009 Keynote - Real World Haskell


Published on

Slides from my keynote talk at the 2009 Commercial Users of Functional Programming workshop in Edinburgh, Scotland.

  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

CUFP 2009 Keynote - Real World Haskell

  1. Real World Haskell.
  2. It's 1994.
  3. There's just one song on the radio. “Love is all around,” by Wet Wet Wet.
  4. And I have a headache.
  5. I'm in Glasgow.
  6. I'm learning to hack on GHC.
  7. I'm learning Go.
  8. It's a great crowd.
  9. I make lots of friends.
  10. One is named Jim.
  11. So on this particular day in 1994... ...why else do I have a headache?
  12. Well, we tend to go out.
  13. After a hard night out, Jim goes home.
  14. He dreams.
  15. Happily, this is no nightmare. In fact...
  16. ...he meets a beautiful woman.
  17. In his dream, they hit it off.
  18. She even gives him her number.
  19. When he wakes...
  20.'s the most. Amazing. Thing.
  21. He remembers her number!
  22. he writes it down...
  23. ...and brings it in...
  24. ...and asks me:
  25. “What should I do with this number?”
  26. “Wait a sec,” I tell him.
  27. “I know this number.”
  28. “It's the delivery number...
  29. ...for the local pizzeria.”
  30. Why tell this story?
  31. Community.
  32. Most people like to belong.
  33. I loved the Haskell community...
  34. ...but I left anyway.
  35. Over a decade passed.
  36. When I returned, the community was still beautiful...
  37. ...and serenely inward-facing.
  38. How did you learn Haskell?
  39. Here's what I did: I read dozens of papers. I studied thousands of lines of code.
  40. I wrote lots of throwaway code.
  41. But mostly, I Googled... ...and read...
  42. ...and Googled... ...and read...
  43. ...and, well, you get the idea.
  44. I delighted in the process. But it wasn't very efficient.
  45. So I decided to write a book. “Make the job easier for others,” I told myself.
  46. Oh, and that book? It's how I did the bulk of my learning.
  47. It took: 1.5 years.
  48. It took: 1.5 years. 3 writers.
  49. It took: 1.5 years. 3 writers. 710 pages.
  50. It took: 1.5 years. 3 writers. 710 pages. 800+ reviewers.
  51. It took: 1.5 years. 3 writers. 710 pages. 800+ reviewers. 7,500+ comments.
  52. Now it's your turn. Srsly.
  53. What is the Haskell community good at?
  54. Research? We've got it!
  55. Outreach?
  56. That's less clear to me.
  57. You don't need to write a 700-page tome.
  58. You don't need to describe new research. (In fact, I think it's best you don't.)
  59. You need: Tenacity. An idea. Tenacity. Explanatory skill. Tenacity.
  60. I even have some ideas for you. All nice and handy.
  61. 1. Writing and Tuning Fast Haskell Code.
  62. 2. Parallel Haskell in 24 Hours.
  63. 3. High-Assurance Haskell.
  64. 4. Modeling in Haskell.
  65. 5. Real World Abstract Algebra for Categorical Dummies.
  66. 6. Complex Functional Applications.
  67. 7. Grow Your Own Monads in the Basement, Legally.
  68. 8. Concurrent Networking Programming.
  69. 9. Functional Pearls and Design Patterns.
  70. 10. Secrets of the QuickCheck Wizards.
  71. Who should you be writing for?
  73. Look to other programming communities.
  74. If we don't talk to them, they won't simply come to us.
  75. Who is this man? Anthony Stafford Beer.
  76. Beer was an influential cybernetician. Cybernetics: “The science of effective organization.”
  77. Cybersyn. Santiago, Chile, 1970-1972.
  78. Cybersyn: Centralised control of the Chilean economy.
  79. A star network of telex machines running from factories to a control centre in Santiago.
  80. A Beer coinage: “POSIWID”
  81. POSIWID: The purpose of a system is what it does.
  82. Don't try to understand a system from what its designers say it's for.
  83. Start from observing what it actually does.
  84. Beer had some...unusual ideas.
  85. But he managed to get them implemented.
  86. So, from the POSIWID perspective: What does functional programming do?
  87. I am not suggesting that we should try to be like this.
  88. But our rhetoric suggests that most of us do not want to be like this, either.
  89. Go write a book. Give a talk. Write a blog post.
  90. Oh, and thanks.