SlideShare a Scribd company logo
1 of 90
Download to read offline
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.

More Related Content

Viewers also liked (20)

La carta
La cartaLa carta
La carta
 
Online Reputation Management
Online Reputation ManagementOnline Reputation Management
Online Reputation Management
 
Px09683
Px09683Px09683
Px09683
 
Opac Advanced Search
Opac Advanced SearchOpac Advanced Search
Opac Advanced Search
 
Introducing Myself
Introducing MyselfIntroducing Myself
Introducing Myself
 
Russo Revelation on Mad Men Vol 1.7
Russo Revelation on Mad Men Vol 1.7Russo Revelation on Mad Men Vol 1.7
Russo Revelation on Mad Men Vol 1.7
 
Metropolia Marketing Talks 19.11.2009
Metropolia Marketing Talks 19.11.2009Metropolia Marketing Talks 19.11.2009
Metropolia Marketing Talks 19.11.2009
 
Open Badges an
Open Badges anOpen Badges an
Open Badges an
 
zadacha4
zadacha4zadacha4
zadacha4
 
The Real Groovy Dictionary
The Real Groovy DictionaryThe Real Groovy Dictionary
The Real Groovy Dictionary
 
Song And Dance Man
Song And Dance ManSong And Dance Man
Song And Dance Man
 
Christmas Story
Christmas StoryChristmas Story
Christmas Story
 
My Family 1st year
My Family 1st yearMy Family 1st year
My Family 1st year
 
Presentatie sa mbo it hengelo informatiemanagement
Presentatie sa mbo it hengelo informatiemanagementPresentatie sa mbo it hengelo informatiemanagement
Presentatie sa mbo it hengelo informatiemanagement
 
Pistol Offense
Pistol OffensePistol Offense
Pistol Offense
 
Posar Un Link Amb Imatge Al Lateral Del
Posar Un Link Amb Imatge Al Lateral DelPosar Un Link Amb Imatge Al Lateral Del
Posar Un Link Amb Imatge Al Lateral Del
 
Jan Pawel II
Jan Pawel IIJan Pawel II
Jan Pawel II
 
Concept Aim
Concept AimConcept Aim
Concept Aim
 
Test zagadki zwierzeta
Test zagadki zwierzetaTest zagadki zwierzeta
Test zagadki zwierzeta
 
Social Currency
Social CurrencySocial Currency
Social Currency
 

Similar to CUFP 2009 Keynote - Real World Haskell

Development pro forma(3) (1)
Development pro forma(3) (1)Development pro forma(3) (1)
Development pro forma(3) (1)
ENCRES DUBUIT
 
There Are Fates Worse Than Death: The OPW2013 Keynote
There Are Fates Worse Than Death: The OPW2013 KeynoteThere Are Fates Worse Than Death: The OPW2013 Keynote
There Are Fates Worse Than Death: The OPW2013 Keynote
John Anderson
 
Joe Vitale - Lesson8
Joe Vitale - Lesson8Joe Vitale - Lesson8
Joe Vitale - Lesson8
BarryLee2016
 
W.W. Brands 2 Understanding thenet
W.W. Brands 2 Understanding thenetW.W. Brands 2 Understanding thenet
W.W. Brands 2 Understanding thenet
scafondram
 
Development pro forma
Development pro formaDevelopment pro forma
Development pro forma
Sam Hughes
 
Development pro forma 9th oct
Development pro forma 9th octDevelopment pro forma 9th oct
Development pro forma 9th oct
George West
 
AOMC Book sample pages
AOMC Book sample pagesAOMC Book sample pages
AOMC Book sample pages
Elizabeth Sheehan
 

Similar to CUFP 2009 Keynote - Real World Haskell (20)

Inside the mind of a master procrastinator - Tim Urban
Inside the mind of a master procrastinator - Tim UrbanInside the mind of a master procrastinator - Tim Urban
Inside the mind of a master procrastinator - Tim Urban
 
Development pro forma(3) (1)
Development pro forma(3) (1)Development pro forma(3) (1)
Development pro forma(3) (1)
 
Digital Transformation - Interview
Digital Transformation - InterviewDigital Transformation - Interview
Digital Transformation - Interview
 
MASTERING CREATIVITY
MASTERING CREATIVITYMASTERING CREATIVITY
MASTERING CREATIVITY
 
El sĂ­ndrome de Niggle, la orientaciĂłn a objetos, y la Familia de Juan Carlos I
El sĂ­ndrome de Niggle, la orientaciĂłn a objetos, y la Familia de Juan Carlos IEl sĂ­ndrome de Niggle, la orientaciĂłn a objetos, y la Familia de Juan Carlos I
El sĂ­ndrome de Niggle, la orientaciĂłn a objetos, y la Familia de Juan Carlos I
 
Sindrome de Niggle CAS2015
Sindrome de Niggle CAS2015Sindrome de Niggle CAS2015
Sindrome de Niggle CAS2015
 
What makes us feel good about our work
What makes us feel good about our workWhat makes us feel good about our work
What makes us feel good about our work
 
There Are Fates Worse Than Death: The OPW2013 Keynote
There Are Fates Worse Than Death: The OPW2013 KeynoteThere Are Fates Worse Than Death: The OPW2013 Keynote
There Are Fates Worse Than Death: The OPW2013 Keynote
 
Sample Prospectus Research Paper - Birthdayessay.X.Fc2
Sample Prospectus Research Paper - Birthdayessay.X.Fc2Sample Prospectus Research Paper - Birthdayessay.X.Fc2
Sample Prospectus Research Paper - Birthdayessay.X.Fc2
 
Joe Vitale - Lesson8
Joe Vitale - Lesson8Joe Vitale - Lesson8
Joe Vitale - Lesson8
 
W.W. Brands 2 Understanding thenet
W.W. Brands 2 Understanding thenetW.W. Brands 2 Understanding thenet
W.W. Brands 2 Understanding thenet
 
Development pro forma
Development pro formaDevelopment pro forma
Development pro forma
 
Development pro forma 9th oct
Development pro forma 9th octDevelopment pro forma 9th oct
Development pro forma 9th oct
 
AOMC Book sample pages
AOMC Book sample pagesAOMC Book sample pages
AOMC Book sample pages
 
Disrupt 2 Grow - Devoxx 2013
Disrupt 2 Grow - Devoxx 2013Disrupt 2 Grow - Devoxx 2013
Disrupt 2 Grow - Devoxx 2013
 
Development pro forma
Development pro formaDevelopment pro forma
Development pro forma
 
Money online myks!
Money online myks!Money online myks!
Money online myks!
 
Planning Booklet
Planning BookletPlanning Booklet
Planning Booklet
 
Planning booklet
Planning bookletPlanning booklet
Planning booklet
 
Webstock 2010 - Stack Overflow: Building Social Software for the Anti-Social
Webstock 2010 - Stack Overflow: Building Social Software for the Anti-SocialWebstock 2010 - Stack Overflow: Building Social Software for the Anti-Social
Webstock 2010 - Stack Overflow: Building Social Software for the Anti-Social
 

More from Bryan O'Sullivan

Real World Haskell: Lecture 7
Real World Haskell: Lecture 7Real World Haskell: Lecture 7
Real World Haskell: Lecture 7
Bryan O'Sullivan
 
Real World Haskell: Lecture 6
Real World Haskell: Lecture 6Real World Haskell: Lecture 6
Real World Haskell: Lecture 6
Bryan O'Sullivan
 
Real World Haskell: Lecture 5
Real World Haskell: Lecture 5Real World Haskell: Lecture 5
Real World Haskell: Lecture 5
Bryan O'Sullivan
 
Real World Haskell: Lecture 4
Real World Haskell: Lecture 4Real World Haskell: Lecture 4
Real World Haskell: Lecture 4
Bryan O'Sullivan
 
Real World Haskell: Lecture 3
Real World Haskell: Lecture 3Real World Haskell: Lecture 3
Real World Haskell: Lecture 3
Bryan O'Sullivan
 
Real World Haskell: Lecture 2
Real World Haskell: Lecture 2Real World Haskell: Lecture 2
Real World Haskell: Lecture 2
Bryan O'Sullivan
 
Real World Haskell: Lecture 1
Real World Haskell: Lecture 1Real World Haskell: Lecture 1
Real World Haskell: Lecture 1
Bryan O'Sullivan
 

More from Bryan O'Sullivan (12)

Pronk like you mean it
Pronk like you mean itPronk like you mean it
Pronk like you mean it
 
Real World Haskell: Lecture 7
Real World Haskell: Lecture 7Real World Haskell: Lecture 7
Real World Haskell: Lecture 7
 
Real World Haskell: Lecture 6
Real World Haskell: Lecture 6Real World Haskell: Lecture 6
Real World Haskell: Lecture 6
 
Real World Haskell: Lecture 5
Real World Haskell: Lecture 5Real World Haskell: Lecture 5
Real World Haskell: Lecture 5
 
Real World Haskell: Lecture 4
Real World Haskell: Lecture 4Real World Haskell: Lecture 4
Real World Haskell: Lecture 4
 
Real World Haskell: Lecture 3
Real World Haskell: Lecture 3Real World Haskell: Lecture 3
Real World Haskell: Lecture 3
 
Real World Haskell: Lecture 2
Real World Haskell: Lecture 2Real World Haskell: Lecture 2
Real World Haskell: Lecture 2
 
Real World Haskell: Lecture 1
Real World Haskell: Lecture 1Real World Haskell: Lecture 1
Real World Haskell: Lecture 1
 
The other side of functional programming: Haskell for Erlang people
The other side of functional programming: Haskell for Erlang peopleThe other side of functional programming: Haskell for Erlang people
The other side of functional programming: Haskell for Erlang people
 
DEFUN 2008 - Real World Haskell
DEFUN 2008 - Real World HaskellDEFUN 2008 - Real World Haskell
DEFUN 2008 - Real World Haskell
 
Haskell for the Real World
Haskell for the Real WorldHaskell for the Real World
Haskell for the Real World
 
BayFP: Concurrent and Multicore Haskell
BayFP: Concurrent and Multicore HaskellBayFP: Concurrent and Multicore Haskell
BayFP: Concurrent and Multicore Haskell
 

Recently uploaded

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

CUFP 2009 Keynote - Real World Haskell