Real World Haskell.
It's 1994.
There's just one
 song on the radio.



“Love is all around,”
 by Wet Wet Wet.
And I have a
 headache.
I'm in
Glasgow.
I'm learning to
hack on GHC.
I'm learning Go.
It's a great
   crowd.
I make lots of friends.
One is named
    Jim.
So on this particular
   day in 1994...


     ...why else
      do I have
    a headache?
Well, we tend to go out.
After a hard night out, Jim goes home.
He dreams.
Happily, this is no nightmare.
           In fact...
...he meets a
     beautiful
      woman.
In his dream,
they hit it off.
She even gives him
her number.
When he
 wakes...
...it's the most.
         Amazing.
           Thing.
He remembers
her number!
...so he writes
      it down...
...and brings it in...
...and
asks
me:
“What
     should
       I do
 with this
number?”
“Wait a sec,”
I tell him.
“I know this
number.”
“It's the delivery number...
...for the local pizzeria.”
Why tell
this
story?
Community.
Most people
     like to
    belong.
I loved
 the Haskell
community...
...but
    I left
anyway.
Over a decade
       passed.
When I returned, the
community was still beautiful...
...and serenely inward-facing.
How did you learn
   Haskell?
Here's what I did:

I read dozens of papers.

I studied thousands of
     lines of code.
I wrote lots of
  throwaway
     code.
But mostly, I Googled...
     ...and read...
...and Googled...
   ...and read...
...and, well,
you get the idea.
I delighted in the process.




But it wasn't very efficient.
So I decided to
 write a book.

  “Make the job
easier for others,”
   I told myself.
Oh, and that book?

It's how I did the bulk of
       my learning.
It took:
1.5 years.
It took:
1.5 years.
3 writers.
It took:
1.5 years.
3 writers.
710 pages.
It took:
   1.5 years.
   3 writers.
  710 pages.
800+ reviewers.
It took:
    1.5 years.
    3 writers.
    710 pages.
 800+ reviewers.
7,500+ comments.
Now it's your turn.



      Srsly.
What is the Haskell
community good at?
Research? We've got it!
Outreach?
That's less
clear to me.
You don't need to
write a 700-page tome.
You don't need to
describe new research.


   (In fact, I think it's best you don't.)
You need:

   Tenacity.
    An idea.
   Tenacity.
Explanatory skill.
   Tenacity.
I even have
   some ideas
     for you.

All nice and handy.
1. Writing and Tuning Fast
     Haskell Code.
2. Parallel Haskell in 24
         Hours.
3. High-Assurance Haskell.
4. Modeling in Haskell.
5. Real World Abstract
Algebra for Categorical
       Dummies.
6. Complex Functional
     Applications.
7. Grow Your Own
Monads in the Basement,
        Legally.
8. Concurrent
Networking Programming.
9. Functional Pearls and
    Design Patterns.
10. Secrets of the
QuickCheck Wizards.
Who should you be
  writing for?
NOT THE PEOPLE
 IN THIS ROOM.
Look to
other programming
communities.
If we don't talk
to them, they
won't simply
come to us.
Who is this man?


           Anthony
           Stafford
           Beer.
Beer was an influential
         cybernetician.


Cybernetics: “The science of effective organization.”
Cybersyn.

              Santiago,
                 Chile,
            1970-1972.
Cybersyn:

Centralised control of the
   Chilean economy.
A star network of telex machines running from
   factories to a control centre in Santiago.
A Beer coinage:

 “POSIWID”
POSIWID:

The purpose of a system
    is what it does.
Don't try to
understand a system
     from what
   its designers
    say it's for.
Start from
observing
  what it
 actually
   does.
Beer had some...unusual
        ideas.
But he managed to get
 them implemented.
So, from the
    POSIWID
   perspective:

What does functional
 programming do?
I am not suggesting that we
  should try to be like this.
But our
rhetoric
suggests that
most of us do
not want to be
like this,
either.
Go write a book.
  Give a talk.
Write a blog post.
Oh, and thanks.
Upcoming SlideShare
Loading in...5
×

CUFP 2009 Keynote - Real World Haskell

6,938
-1

Published on

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

0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,938
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
153
Comments
0
Likes
15
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. ...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. “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?
  72. NOT THE PEOPLE IN 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? 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.
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×