HackerTubewatch
Surprise me
Frame from Monads and Gonads Plays via YouTube's privacy-enhanced embed

Monads and Gonads

56 videos recommended on HN
YouTube
2 HN users recommended this talk2 months2013–2022 score 3
Years with an HN recommendation, 2007–2026

Often recommended as a demystifying monad talk in plain JavaScript, though some find it light on definitions.

Douglas Crockford's Google Tech Talk explains monads without category theory or Haskell, implementing them in JavaScript and tying them to Ajax and promises. He also touches on odd asides such as coloring code by scope.

“what I thought to be one of DC's greatest talks” (HN, 2016)

2 strong recommendations · 6 citations · 3 critical · Talks · intermediate

11 Hacker News comments

From the HN archive; up to 20 kept per video, favoring different commenters. Recommendations first.

@nnq Sep 2016 Strongly recommends
on HN thread In defence of Douglas Crockford
also, this indirectly reminded me of what I thought to be one of DC's greatest talks: Monads and Gonads ( [this video] )
Considered one of Crockford's greatest talks.
@scotty79 Oct 2019 Strongly recommends
on HN thread Learning Haskell is no harder than learning any other programming language
The one thing that made monads clearer for me was this thing [this video] Monads and Gonads It's probably condescending for haskellers because it shows that monads are not some enshrined primary concept but just a kind of dumb wrapper you can write in any language and you do when it's useful for you.
Demystifies monads as simple wrappers writable in any language.

Citations, criticism and jokes

@nnq Aug 2015 Cites it
on HN thread The Beauty of Clojure
Read more
...that's how chaining method calls end up working in most OO languages (take the Scala example in OP's article). And also in Javascript (I can't remember if there is something like `range` in js right now...): [1,2,3,4,5,6,7,8,9,10] .map(function (x) { return x + 2 }) .reduce(function (a, b) { return a + b }) so the "." in OOP ends up working like "->" or "->>". Heck, you can make the dot in OOP code behave like anything, even like monadic bind (`>>=` or `do` notation in Haskell), if you do OOP-style-monads in JS: [this video] (off-topic: this is also my main problem with OOP... the "." can actually end up meaning anything practically, as program logic is concerned, it's like some kind of "infinite operator overloading" :) )
OOP-style monads in JavaScript.
@fizixer Jan 2016 Cites it
on HN thread The Monad Challenges: Jump start your understanding of monads
Read more
> Do I need to know Haskell? Yes. This is enough for me to reject this blogpost. No you don't need a specific language to implement any functionality that can be implemented by a turing-complete language. I watched Crockford's monad talk [1]. He used javascript. The only problem with that talk is that he spent about 10 seconds or less explaining what a monad is (and the rest of the talk on implementation issues and his own perspective, etc, etc). I'm still waiting for a good monad discussion without CT or Haskell. (this [2] and this [3] look promising, both in python) [1] [this video] [2] [link] [3] [link]
Monad talk in JavaScript, though light on defining monads.
@clusmore Nov 2016 Cites it
on HN thread Using Haskell to Find Unused Spring MVC Code
Read more
>The biggest real problem I’ve found with large “where” clauses is that they tend to have a lot of implicit dependencies on variables from the enclosing scope. For me it's always a toss up. I like to make things local where possible to give some indication that the definitions need not be looked over with a fine-toothed comb -- they aren't used extensively. On the other hand, it does often lead to implicit dependencies. It would be nice to have scope highlighting - color every identifier based on the distance from the scope it's defined in. This idea shamelessly stolen from Doug Crockford in [this video]
Source of the scope-based coloring idea.
@wenc Jun 2018 Cites it
on HN thread Railway-Oriented Programming (2015)
Javascript promises are a kind of monad. Douglas Crockford talks about this in his talk "Monads and Gonads" [1] [1] [this video]
Crockford explains that JavaScript promises are a kind of monad.
@sargstuff Oct 2022 Cites it
on HN thread Ask HN: S/W development text editor have feature colorizing every iteration?
Read more
combobulate (alpha quality as of 10/22): source code outline/cliff notes. from github README.rst "Emacs package that provides a standardized framework for manipulating and navigating your source code using tree sitter's concrete syntax tree " -> [link] [link] with [link] then write a iterator/loop query for language(s) editing per [link] tad less installation heavy (sorta) but also makes use of tree-sitter syntax queries : [link] (neovim with treesitter syntax) blockman usage examples: [link] Alternative examples / takes (per user interface): ### embedding a block of source code in a document: ** carrotsearch.gethub.io/apidocs/code-blocks ** [link] ### 'colorize blocking' (vs space endenting) : ** example code reference coloring: [this video] ### gui block programming : ** [link] ** [link]
@martinced Feb 2013 Pushes back
on HN thread Monads for Normal Programmers
"Monads for JavaScript Programmers" Just as the talk he refers to (I've seen it and it's ok)... It's for JavaScript programmers): [this video] So unless there's a 1-to-1 mapping between "Normal Programmers" and "JavaScript" programmers this title is quite misleading.
@wmonk Nov 2015 Pushes back
on HN thread The impact of syntax colouring on program comprehension [pdf]
In [this talk]( [this video] ) by Douglas Crockford he talks about syntax highlight being for kids - "that's something we put in our text editors for kindergarteners to do programming...I am more sort of a grown up and a professional programmer so I don't need to colours". I found it weird he was so deriding towards syntax highlighting.
@xook Sep 2021 Pushes back
on HN thread A case against syntax highlighting (2007)
I went to find the video where I first heard him say something about syntax highlighting is for kindergartners [this video] It's an unfortunate comment since I struggle with word salad most days. Being able to skim and find certain blocks or aspects of a source file is preferable if I can't remember the name of something right away.

Video list and Hacker News comment labels from HackerTube (prompted by @karpathy), released under ODC-By 1.0, built on the open-index/hacker-news archive. Hacker News data is provided by Y Combinator; comments remain the work of their authors. Video titles, channel names and thumbnails belong to their creators and are shown via YouTube. HackerTube Watch is an unofficial edition. Data export of 2026-10-31.

Keyboard shortcuts

/
Search
j k
Next / previous video
r
Surprise me
l
Like (video page)
w
Watch later (video page)
?
This help
Esc
Close