CUFP 2009 Keynote - Real World Haskell

download CUFP 2009 Keynote - Real World Haskell

of 90

  • date post

    12-May-2015
  • Category

    Technology

  • view

    5.630
  • download

    0

Embed Size (px)

description

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

Transcript of CUFP 2009 Keynote - Real World Haskell

  • 1.Real World Haskell.

2. It's 1994. 3. There's just onesong on the radio.Love is all around,by Wet Wet Wet. 4. And I have aheadache. 5. I'm in Glasgow. 6. I'm learning to hack on GHC. 7. I'm learning Go. 8. It's a greatcrowd. 9. I make lots of friends. 10. One is named Jim. 11. So on this particularday 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 abeautiful woman. 17. In his dream, they hit it off. 18. She even gives him her number. 19. When hewakes... 20. ...it's the most.Amazing.Thing. 21. He remembers her number! 22. ...so he writes it down... 23. ...and brings it in... 24. ...and asks me: 25. WhatshouldI dowith 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 peoplelike to belong. 33. I lovedthe Haskell community... 34. ...but I left anyway. 35. Over a decadepassed. 36. When I returned, the community was still beautiful... 37. ...and serenely inward-facing. 38. How did you learnHaskell? 39. Here's what I did:I read dozens of papers.I studied thousands oflines of code. 40. I wrote lots of throwawaycode. 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 towrite a book.Make the job easier for others,I told myself. 46. Oh, and that book?It's how I did the bulk ofmy 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 havesome ideasfor you.All nice and handy. 61. 1. Writing and Tuning FastHaskell Code. 62. 2. Parallel Haskell in 24Hours. 63. 3. High-Assurance Haskell. 64. 4. Modeling in Haskell. 65. 5. Real World Abstract Algebra for CategoricalDummies. 66. 6. Complex FunctionalApplications. 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? 72. NOT THE PEOPLEIN THIS ROOM. 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?AnthonyStaffordBeer. 76. Beer was an influentialcybernetician. Cybernetics: The science of effective organization. 77. Cybersyn.Santiago,Chile, 1970-1972. 78. Cybersyn:Centralised control of theChilean economy. 79. A star network of telex machines running fromfactories 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 systemfrom whatits designers say it's for. 83. Start from observing what itactuallydoes. 84. Beer had some...unusual ideas. 85. But he managed to getthem implemented. 86. So, from the POSIWIDperspective:What does functionalprogramming 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.