Simon Peyton-Jones: Escape from the ivory tower: the Haskell journey

Churchill College, University of Cambridge · 170K views · 2017 · 1:04:16

Open on YouTube

Functional programmingProgramming language designlecture

Why Hacker News recommends it

Recommended as a funny, accessible history of Haskell that is valuable even for people interested in language design in general.

What it is

Simon Peyton Jones gives Churchill College's annual computer science lecture on Haskell's birth and evolution. He covers the most influential ideas, from laziness to monads and type system evolution, plus current developments and guesses about the future.

Recommended by 5 HN commenters across 5 different months, 2017 to 2024.

What Hacker News said

Strong rec modernerd · 2019-10 · on “Learning Haskell is no harder than learning any other programming language”

Yes, I didn't include the papers below in my parent response because, “just read these dense academic papers to understand what monads are and why Haskell has them” doesn't tend to be good advice for Haskell beginners. But learning why monads came to be included in Haskell is useful if you want to dive deeper into this stuff: Philip Wadler's original paper on Comprehending Monads [PDF]: [LINK] Philip Wadler and Simon Peyton-Jones' paper on Imperative Functional Programming [PDF]: [LINK] Simon Peyton-Jones mentions both papers and talks about why monads came to be part of Haskell in his talk on the history of Haskell here, with examples that are a little more accessible than the above papers:

Recommends arianvanp · 2017-06 · on “Rust as a gateway drug to Haskell”

SPJ also noted that the original success of haskell was due to their pursuit of laziness. Because laziness has no place in a system with side effects, their pursuit of laziness and functional programming is what led them to discover the usefulness of monads for describing it in the first place. If they were pursuing a strict language instead, then they were allowed to take shortcuts, because sneaking in side effects is a lot easier. YEs maybe the next haskell will be strict, but getting to the point to make that decision required laziness. SPJ made a great lecture about this. It is very easy to follow and a fun insight into the academic history of modern functional languages [this video]

Recommends superice · 2018-04 · on “Are unsound type systems wrong?”

Unsound typesystems are not necessarily a problem, but consider the problem the other way around: given a sound typesystem, how do we improve this in such a way that a) the average Joe will understand it b) it decreases the overhead of writing the types c) the type system helps the programmer write better programs Haskells approach to this keeps the constraint of soundness: [this video] The whole video is very interesting even if you know nothing about Haskell, but are just interested in language design in general. To summarize the part of the video I just linked: Their approach so far has been to try and design the type system in such a way that you reduce programmer pain while not sacrificing s

Recommends Tarean · 2018-09 · on “Why I never finish my Haskell programs”

> I'm from Microsoft and when you see Microsoft documentation it often says, you know, x y or z is a rich something, right. In this case Haskell - or ghc's version of haskell is a rich language. What does this mean? Sounds good, doesn't it? But it always means this, right. That it's a large, complex, poorly understood, ill documented thing that nobody understands completely. From a great talk by Simon Peyton Jones [this video]

Recommends ddellacosta · 2024-08 · on “Why does everyone hate Haskell, jazz, and pure math?”

Also, it's worth watching a bit of this talk (link at a particularly relevant time to start) because while Haskell is an "ivory-tower language," it is not _just_ an ivory tower language, and the people working on it are very much not just "a merry bunch of category theorists who had little interest in software engineering." [this video] This talk is seven years old btw. Caring about industry users in Haskell is not new.

Cites pron · 2017-05 · on “Principles of TLA+”

> An example is not being able to prove the termination of executing arbitrary programs The theorem states that you cannot prove a program's termination any faster than running it. You're not violating any theorems. > So, Im wanting it peer reviewed. But it has been peer reviewed. Here is the publication [LINK] in this journal [LINK] > So, such methods should allow us to achieve the same amount of complexity going upward using same abstraction and shortcut techniques. First, I think you're misinterpreting (and exaggerating) what has actually been achieved. Looking at Hyper-V[1], 30KLOC of (preexisting and tested) C code have been verified in a year (out of a total of just 100KLOC), but only

Cites zengid · 2017-08 · on “John Carmack on Functional Programming (2013) [video]”

The thing that's interesting about Haskell is that lazyness had a payoff of leading to the discovery of monad-based IO [1]. [1] [this video]

Cites Ace17 · 2017-08 · on “D as a Better C”

That's not so simple, because large adoption at a too early stage causes the language definition to freeze before it reaches maturity. Simon Peyton-Jones from the Haskell community explaining exactly that: "What happens if [a language] become successful too quickly? You can't change anything!" [this video]