~/talk

Thirteen ways of looking at a Turtle

Talkat NDC London 2017 · 2017-01-16..01-20· [functional-programming]
slides:none on file

Thirteen concrete implementations of a simple turtle API show actual tradeoffs: mutable OOP and opaque ADT versions, an immutable functional chain, State monad and computation expressions that hide threaded state, result/Either-style Success/Failure error types, async to remove callback pyramids, batch and actor runners, event sourcing and stream processors for replayable history, partial-application functional dependency injection, an interpreter pattern (free monad) that decouples program from runtime, and capability-based APIs. Demos draw a triangle and measure total distance (300), and each technique runs and exposes where it helps or hurts.

AI-written summary · about

  1. 0:00Intro
  2. 1:56Turtle API
  3. 6:03Advantages and disadvantages
  4. 13:17Transforming the function #1
  5. 16:49How to return errors?
  6. 18:05Implementation usine Result
  7. 22:06What if the Turtle calls were async?
  8. 22:58Async usage example
  9. 23:46Review: Common patterns
  10. 25:28How to convert a function into data?
  11. 26:56"execute" implementation
  12. 27:27"run" implementation
  13. 29:40Pulling commands off a queue
  14. 33:25Command vs. Event
  15. 39:10Turtle stream processing example
  16. 44:44Same for the Turtle client
  17. 46:31Overview
  18. 48:31Partial application in practice
  19. 50:36APls create coupling
  20. 53:02Create a "Program" type
  21. 56:05Turtle Interpreter
  22. 56:53Distance Interpreter
  23. 59:45Capability-based API
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.