Skip to content
0:00 / 0:00

#monads#javascript#douglas-crockford

Monads and Gonads

Google TechTalks

349K subscribers • 62 videos on Hallway

YouTube
  • Recommended by 5 people: 2 on Hacker News, 2 in engineering communities and 1 curated list.
  • A classic. People kept recommending it from 2013 to 2019.
  • Presented by Douglas Crockford, author of JavaScript: The Good Parts
  • May be out of date. Uploaded 13 years ago, in an area where tools change fast.
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

148K views13 years ago5 recommendations

Programming languagesWeb developmentJavaScriptFunctional programming

Douglas Crockford explains monads using JavaScript instead of Haskell or category theory, demonstrating their utility in managing complexity.

Google Tech Talk January 15, 2013 (more info below) Presented by Douglas Crockford ABSTRACT The wonders of monads are finally revealed without resorting to Category Theory or Haskell. It turns out that monads are trivially expressed in JavaScript, and are one of the key enablers of Ajax. Monads are amazing. They are simple things, almost trivially implemented, with enormous power to manage complexity. But understanding them is surprisingly difficult, and most people, once they have that ah-ha moment, seem to lose the ability to explain them to others.

Why it's here

5 people recommend this, 3 dispute it

What people say. Highly recommended as an accessible explanation of monads for JavaScript developers, though some criticize its brief definition.

Moments people linked to

nnqon Hacker News • Recommends

On “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 ( link to this video )

scotty79on Hacker News • Recommends

On “Learning Haskell is no harder than learning any other programming language”

The one thing that made monads clearer for me was this thing link to 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.

programming-talkscurated list on GitHubRecommends

Under “JavaScript”

Monads and Gonads 00:49:48 by **Douglas Crockford** (2013)

u/davorbin r/haskell • Recommends

Monads and Gonads - YouTube

u/clgonsalin r/haskell • Recommends

Monads and Gonads: Talk by Douglas Crockford (author of JavaScript: The Good Parts) about monads

martincedon Hacker News • Disputes

On “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): link to this video So unless there's a 1-to-1 mapping between "Normal Programmers" and "JavaScript" programmers this title is quite misleading.

wmonkon Hacker News • Disputes

On “The impact of syntax colouring on program comprehension [pdf]”

In this talk( link to 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.

xookon Hacker News • Disputes

On “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 link to 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.

u/link23in r/ProgrammingLanguages • Mentions

On “Beyond Opinionated: Announcing The First Actually Bigoted Language”

Douglass Crockford is on record saying syntax highlighting is useless to him because he isn't a child. So your language could provide an LSP server that belittles the user if they turn on syntax highlighting.
14View on Reddit

u/Drezilin r/haskell • Mentions

On “General purpose libraries”

…h get used inside the other given libraries. edit: i learned it best when looking at examples of stuff (esp. RWST, attoparsec, yesod) and then read the "abstract nonsens" on typeclassopedia for a more general view. i "understood" lenses after https://skillsmatter.com/skillscasts/4251-lenses-compositional-data-access-and-manipulation monads after link to this video and stm after link to this video .. but thats just my opinion. YMMV.…

u/stragerin r/haskell • Mentions

On “Monads and Gonads - YouTube”

…more useful before explaining something as complicated as a promise monad. The fact that none of the questions asked were about monads (except the `do` notation question, which I think Crockford thinks is only relevant to promises) shows that Crockford did not explain monads well enough to develop any understanding in his viewers. interstate: link to this video adsafe: link to this video arguments-in-bind: link to this video unit-method: link to this video unit-lift: link to this video unit-lift-alert: link to this video…
4View on Reddit

pandleron Hacker News • Mentions

On “Show HN: Glow – Syntax highlighting for Clojure source code”

I'm unfamiliar with Clojure, but I rather liked Douglas Crockfords comment on code coloring (Lisp) based on scope rather than syntax. link to this video

nnqon Hacker News • Mentions

On “The Beauty of Clojure”

…thing 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: link to 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" :) )…

fizixeron Hacker News • Mentions

On “The Monad Challenges: Jump start your understanding of monads”

> 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 link to this video 2 link 3 link

clusmoreon Hacker News • Mentions

On “Using Haskell to Find Unused Spring MVC Code”

>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 link to this video

wencon Hacker News • Mentions

On “Railway-Oriented Programming (2015)”

Javascript promises are a kind of monad. Douglas Crockford talks about this in his talk "Monads and Gonads" 1 1 link to this video