The Return of Stream I/O
summary
Argues that the old Haskell idea of stream I/O becomes practical for modern UIs once lazy lists are replaced by asynchronous streams and blocking is removed, and demonstrates this with Cycle.js built on RxJS and virtual-dom. Shows code using ES6 generators and a running counter app where DOM event streams map to actions, reducers and state and the DevTools visualize the live message passing. Claims it works well for reactive interfaces, is awkward for question‑and‑answer IO, and can embed monadic tasks (like Elm) for complex requests.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 6:30What is Stream IO
- 13:48Why didnt Stream IO work
- 14:24Reactive vs Transformational Systems
- 16:02History of Stream IO
- 26:28The Problem with Stream IO
- 29:07What is a Task
- 30:58Reactive Programs
- 32:02Stream IO
- 32:31Conclusion
- 34:26The Future
related talks
35mStreams: The data structure we need
31mBelieve in Streams
36mFunctional reactive UI with JavaScript
32mWhat if the user was a function
24mAsync and Streaming JS - Are we doing it wrong?
26mOMG Streams!
44mThe evolution of frontend architectures
40mReactive Programming: A Better Way To Write Frontend Applications
