Real World Haskell. It's 1994. It's 1994. There's just one - - PowerPoint PPT Presentation

real world haskell
SMART_READER_LITE
LIVE PREVIEW

Real World Haskell. It's 1994. It's 1994. There's just one - - PowerPoint PPT Presentation

Real World Haskell. It's 1994. It's 1994. There's just one There's just one song on the radio. song on the radio. Love is all around, Love is all around, by Wet Wet Wet. by Wet Wet Wet. And I have a And I have a headache.


slide-1
SLIDE 1

Real World Haskell.

slide-2
SLIDE 2

It's 1994. It's 1994.

slide-3
SLIDE 3

There's just one There's just one song on the radio. song on the radio. “ “Love is all around,” Love is all around,” by Wet Wet Wet. by Wet Wet Wet.

slide-4
SLIDE 4

And I have a And I have a headache. headache.

slide-5
SLIDE 5

I'm in Glasgow.

slide-6
SLIDE 6

I'm learning to hack on GHC.

slide-7
SLIDE 7

I'm learning Go. I'm learning Go.

slide-8
SLIDE 8

It's a great It's a great crowd. crowd.

slide-9
SLIDE 9

I make lots of friends. I make lots of friends.

slide-10
SLIDE 10

One is named One is named Jim. Jim.

slide-11
SLIDE 11

So on this particular So on this particular day in 1994... day in 1994... ...why ...why else else do I have do I have a headache? a headache?

slide-12
SLIDE 12

Well, we tend to go out. Well, we tend to go out.

slide-13
SLIDE 13

After a hard night out, Jim goes home.

slide-14
SLIDE 14

He dreams. He dreams.

slide-15
SLIDE 15

Happily, this is no nightmare. Happily, this is no nightmare. In fact... In fact...

slide-16
SLIDE 16

...he meets a ...he meets a beautiful beautiful woman. woman.

slide-17
SLIDE 17

In his dream, In his dream, they hit it off. they hit it off.

slide-18
SLIDE 18

She even gives him her number.

slide-19
SLIDE 19

When he When he wakes... wakes...

slide-20
SLIDE 20

...it's the most. ...it's the most. Amazing. Amazing. Thing. Thing.

slide-21
SLIDE 21

He He remembers remembers her her number number! !

slide-22
SLIDE 22

...so he writes it down...

slide-23
SLIDE 23

...and brings it in... ...and brings it in...

slide-24
SLIDE 24

...and ...and asks asks me: me:

slide-25
SLIDE 25

“ “What What should should I do I do with this with this number?” number?”

slide-26
SLIDE 26

“Wait a sec,” I tell him.

slide-27
SLIDE 27

“I know this number.”

slide-28
SLIDE 28

“ “It's the delivery number... It's the delivery number...

slide-29
SLIDE 29

...for the local pizzeria.” ...for the local pizzeria.”

slide-30
SLIDE 30

Why tell this story?

slide-31
SLIDE 31

Community.

slide-32
SLIDE 32

Most people Most people like to like to belong. belong.

slide-33
SLIDE 33

I loved the Haskell community...

slide-34
SLIDE 34

...but ...but I left I left anyway. anyway.

slide-35
SLIDE 35

Over a decade Over a decade passed. passed.

slide-36
SLIDE 36

When I returned, the When I returned, the community was still community was still beautiful beautiful... ...

slide-37
SLIDE 37

...and serenely inward-facing. ...and serenely inward-facing.

slide-38
SLIDE 38

How did How did you you learn learn Haskell? Haskell?

slide-39
SLIDE 39

Here's what I did: Here's what I did: I read dozens of papers. I read dozens of papers. I studied thousands of I studied thousands of lines of code. lines of code.

slide-40
SLIDE 40

I wrote I wrote lots lots of

  • f

throwaway throwaway code. code.

slide-41
SLIDE 41

But mostly, I Googled... But mostly, I Googled... ...and read... ...and read...

slide-42
SLIDE 42

...and Googled... ...and Googled... ...and read... ...and read...

slide-43
SLIDE 43

...and, well, ...and, well, you get the idea. you get the idea.

slide-44
SLIDE 44

I delighted in the process. I delighted in the process. But it wasn't very efficient. But it wasn't very efficient.

slide-45
SLIDE 45

So I decided to So I decided to write a book. write a book.

“ “Make the job Make the job easier for others,” easier for others,” I told myself. I told myself.

slide-46
SLIDE 46

Oh, and that book? Oh, and that book? It's how I did the bulk of It's how I did the bulk of my learning. my learning.

slide-47
SLIDE 47

It took: It took: 1.5 years. 1.5 years.

slide-48
SLIDE 48

It took: It took: 1.5 years. 1.5 years. 3 writers. 3 writers.

slide-49
SLIDE 49

It took: It took: 1.5 years. 1.5 years. 3 writers. 3 writers. 710 pages. 710 pages.

slide-50
SLIDE 50

It took: It took: 1.5 years. 1.5 years. 3 writers. 3 writers. 710 pages. 710 pages. 800+ reviewers. 800+ reviewers.

slide-51
SLIDE 51

It took: It took: 1.5 years. 1.5 years. 3 writers. 3 writers. 710 pages. 710 pages. 800+ reviewers. 800+ reviewers. 7,500+ comments. 7,500+ comments.

slide-52
SLIDE 52

Now it's your turn. Srsly.

slide-53
SLIDE 53

What is the Haskell What is the Haskell community good at? community good at?

slide-54
SLIDE 54

Research? We've got it! Research? We've got it!

slide-55
SLIDE 55

Outreach? Outreach?

slide-56
SLIDE 56

That's less That's less clear to me. clear to me.

slide-57
SLIDE 57

You don't need to You don't need to write a 700-page tome. write a 700-page tome.

slide-58
SLIDE 58

You don't need to You don't need to describe new research. describe new research.

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

slide-59
SLIDE 59

You need: You need:

Tenacity. Tenacity. An idea. An idea. Tenacity. Tenacity. Explanatory skill. Explanatory skill. Tenacity. Tenacity.

slide-60
SLIDE 60

I even have I even have some ideas some ideas for you. for you. All nice and handy. All nice and handy.

slide-61
SLIDE 61
  • 1. Writing and Tuning Fast
  • 1. Writing and Tuning Fast

Haskell Code. Haskell Code.

slide-62
SLIDE 62
  • 2. Parallel Haskell in 24
  • 2. Parallel Haskell in 24

Hours. Hours.

slide-63
SLIDE 63
  • 3. High-Assurance Haskell.
  • 3. High-Assurance Haskell.
slide-64
SLIDE 64
  • 4. Modeling in Haskell.
  • 4. Modeling in Haskell.
slide-65
SLIDE 65
  • 5. Real World Abstract
  • 5. Real World Abstract

Algebra for Categorical Algebra for Categorical Dummies. Dummies.

slide-66
SLIDE 66
  • 6. Complex Functional
  • 6. Complex Functional

Applications. Applications.

slide-67
SLIDE 67
  • 7. Grow Your Own
  • 7. Grow Your Own

Monads in the Basement, Monads in the Basement, Legally. Legally.

slide-68
SLIDE 68
  • 8. Concurrent
  • 8. Concurrent

Networking Programming. Networking Programming.

slide-69
SLIDE 69
  • 9. Functional Pearls and
  • 9. Functional Pearls and

Design Patterns. Design Patterns.

slide-70
SLIDE 70
  • 10. Secrets of the
  • 10. Secrets of the

QuickCheck Wizards. QuickCheck Wizards.

slide-71
SLIDE 71

Who should you be Who should you be writing for? writing for?

slide-72
SLIDE 72

NOT THE PEOPLE NOT THE PEOPLE IN THIS ROOM. IN THIS ROOM.

slide-73
SLIDE 73

Look to

  • ther programming

communities.

slide-74
SLIDE 74

If we don't talk If we don't talk to them, they to them, they won't simply won't simply come to us. come to us.

slide-75
SLIDE 75

Who is this man? Who is this man?

Anthony Anthony Stafford Stafford Beer. Beer.

slide-76
SLIDE 76

Beer was an influential Beer was an influential cybernetician. cybernetician.

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

slide-77
SLIDE 77

Cybersyn. Cybersyn.

Santiago, Santiago, Chile, Chile, 1970-1972. 1970-1972.

slide-78
SLIDE 78

Cybersyn: Cybersyn: Centralised control of the Centralised control of the Chilean economy. Chilean economy.

slide-79
SLIDE 79

A star network of telex machines running from A star network of telex machines running from factories to a control centre in Santiago. factories to a control centre in Santiago.

slide-80
SLIDE 80

A Beer coinage: A Beer coinage: “ “POSIWID” POSIWID”

slide-81
SLIDE 81

POSIWID: POSIWID: The purpose of a system The purpose of a system is what it does. is what it does.

slide-82
SLIDE 82

Don't try to Don't try to understand a system understand a system from what from what its designers its designers say say it's for. it's for.

slide-83
SLIDE 83

Start from Start from

  • bserving
  • bserving

what it what it actually actually does does. .

slide-84
SLIDE 84

Beer had some... Beer had some...unusual unusual ideas. ideas.

slide-85
SLIDE 85

But he managed to get But he managed to get them implemented. them implemented.

slide-86
SLIDE 86

So, from the So, from the POSIWID POSIWID perspective: perspective: What does functional What does functional programming do? programming do?

slide-87
SLIDE 87

I am not suggesting that we I am not suggesting that we should try to be like this. should try to be like this.

slide-88
SLIDE 88

But our But our rhetoric rhetoric suggests that suggests that most of us do most of us do not want to be not want to be like this, like this, either. either.

slide-89
SLIDE 89

Go write a book. Go write a book. Give a talk. Give a talk. Write a blog post. Write a blog post.

slide-90
SLIDE 90

Oh, and thanks. Oh, and thanks.