Skip to content
0:00 / 0:00

#elm#functionalreactiveprogramming#timetraveldebugging

"Controlling Time and Space: understanding the many formulations of FRP" by Evan Czaplicki

Strange Loop Conference

88K subscribers • 106 videos on Hallway • Conference channel

YouTube
  • Recommended by 8 people: 5 on Hacker News, 1 on Lobsters, 1 in engineering communities and 1 curated list.
  • A classic. People kept recommending it from 2014 to 2026.
  • Presented by Evan Czaplicki, creator of Elm
  • May be out of date. Uploaded 12 years ago, in an area where tools change fast.

Intermediate. Assumes working knowledge.

69K views12 years ago8 recommendations

Programming languagesWeb developmentFunctional programmingVue, Svelte, Angular and othersDebugging

Evan Czaplicki surveys the history and formulations of functional reactive programming and shows how Elm implements hot-swapping and debugging.

Functional Reactive Programming (FRP) is becoming an increasingly common way to structure event- driven code, but the term "FRP" actually refers to a large body of increasingly diverse work. This talk will quickly cover the basics of FRP, and then go into a couple different formulations of FRP that people are beginning to use. We will explore how these formulations fit together historically and theoretically. Finally, we will see how the particular variation of FRP used in Elm makes it easy to implement hot- swapping and Elm's Time Traveling Debugger. by Evan Czaplicki (@czaplic) - Prezi I am a functional programmer at heart, and my broad goal is to provide the tools and learning resources to make functional languages common in industry. I develop Elm 's compiler, tools, and community to make it great for projects within Prezi and in industry in general.

Why it's here

8 people recommend this

What people say. Recommended as an excellent overview of functional reactive programming concepts and their practical application in Elm.

u/alexander_bin r/haskell • Recommends

Elm "Controlling Time and Space: understanding the many formulations of FRP" by Evan Czaplicki

dcreon Hacker News • Recommends

On “Elm 0.14 – Simpler Core, Better Tools”

If you're interested in Elm but don't really know what it's about, I highly recommend Evan's Strange Loop talk, "Controlling Time and Space: understanding the many formulations of FRP." It will help to already have a bit of background in functional programming. link to this video

modulovalueon Hacker News • Recommends

On “We've had front end reactivity since 2018 – via Async Iterables”

…om framework derived from my observations back then). If we zoom out a bit, the problem is actually that we are trying to define a computation graph and then need a strategy for evaluation it. I think Elm has actually made the biggest progress on that front (here's THE talk on that topic that shows how complicated working out all the kinks can be: link to this video ) I still think that functional reactive programming solves most of the problems we have in UI-land, but th…

programming-talkscurated list on GitHubRecommends

Under “Elm”

Controlling Time and Space: understanding the many formulations of FRP 00:40:55 by **Evan Czaplicki** (2014)

platzon Hacker News • Recommends

On “Introduction to Reactive Programming”

> "FRP is programming with asynchronous data streams." Maybe, if you drop the F. For clarification on FRP there was a great talk at strangeloop this year: link to this video

michaelsbradleyon Hacker News • Recommends

On “React vs. Angular 2”

It's been around in various forms, and implemented on top of various languages, for quite some time. The earliest full-fledged FRP implementation for JavaScript was Flapjax – work on it dates all the way back to 2006! link The paper Flapjax: A Programming Language for Ajax Applications is worth reading. link The principal designer and maintainer of the Elm Language (a functional reactive lang that compiles to JS) did his Master's Thesis on FRP, and that's a great resource if you want the big picture: link See also Controlling Time and Space: understanding the many formulations of FRP , by the same author: link to this video

ghuntleyon Hacker News • Recommends

On “New Adventures for Elm”

For those just getting started in FRP or whom may have not seen the presentations at StangeLoop: - link to this video - Controlling Time and Space: understanding the many formulations of FRP by Evan Czaplicki (Elm language designer/Prezi) - link - FRP In Practice: Taking a look at ReactiveUI/Cocoa by Paul Betts (Slack/GitHub) - link - ReactiveUI - It's pretty neat by Brendan Forster (GitHub)

robewaldon Lobsters • Recommends

Controlling Time and Space: understanding the many formulations of FRP

u/gilmiin r/haskell • Mentions

FRP Systems discussion Haskell has many FRP libraries, every now and then another pops up. Can we have a discussion about the state of FRP in Haskell? for example: - What are the main differences between different FRP libraries and systems? - Do different systems fit different domains? - Do they make trade-offs to deal with performance problems or something like that? - Which FRP library do you recommend? why? - Do you think FRP is even interesting/important? Opinionated comments are welcomed! Some relevant links: - frp-zoo - [Controlling Time and Space: understanding the many formulations of FRP / Evan Czaplicki] - The Essence of FRP / Conal Elliott

jarpinehon Hacker News • Mentions

On “A simpler web architecture using React, Flux, CSP, and FRP concepts”

…ming, which differentiates from FRP using another term, CES for Compositional Event Systems, and goes to some length into history of these concepts, like higher order FRP, First Order FRP, Arrowized FRP, and of course Observer pattern and Data Flow programming. There is also Elm's creator's presentation at Strange Loop last year of the same topic: link to this video…

ghuntleyon Hacker News • Mentions

On “Ask HN: Why web frameworks are becoming so complex?”

> The web community pioneered UI development paradigms involving > functional programming techniques and immutable data Ugh, No. link and link to this video

goldenkeyon Hacker News • Mentions

On “Ask HN: Why web frameworks are becoming so complex?”

I appreciate your resources, namely the video by the creator of Elm, link to this video . However, I agree with above poster. I remember developing my first windows app by doing a main event loop. It's been that way for a long time. Only recently are we doing more asychronous callback / bound type mechanisms of reaction. And still not as strong as the FLP stuff mentioned in the video. Not as much functional stuff, just functional paradigms. I personally really like the perfection of static input/output transformation graphs. But yeah..it's not been that way for a while and I agree with OP, the web being so event/input/signal based, has spurred the movement for better ways of reactive programming.

nv-vnon Hacker News • Mentions

On “Writing code doesn't mix well with oration”

I think that live coding can serve as a really good tool if you do it right and it applies directly to what you're doing. For example, it works well in this demo link to this video because it's a demo of how Elm can help you think about what's going on and debug your code on the spot. This presentation would have been a lot more boring if it lacked a live demo.

wheatBreadon Hacker News • Mentions

On “A Farewell to FRP”

Definitely not ignoring. I talk about the relation between Elm and that sort of stuff in link to this video Lots of things look similar in this area that are not. I also offer an analysis of "higher order" observables in link , and the big difference is the underlying thread architecture you get using these two. I hope I'll be able to make these sorts of things clearer in time!

baggerson Hacker News • Mentions

On “Purely Functional Retrogames (2008)”

A few notes: - Elm dropped frp 0 - Even in it's older frp incarnation, elm didnt allow changing of the flow graph (sorry I cant remember the correct elm term for this) while the program ran 1, making it hard to say this would be an ideal way to go for true 'interactive coding' for games. To clarify my opinion I would like to add that I am assuming an ideal of 'interactive game coding' where one would start a GL context & repl session at the start of the day and make the game whilst never closing the session or killing the context. The OP limited himself to retrogames which is a wise move for exploring this topic, _one_ of the things that makes writing modern games hard is the extent to w…