July 20–24, 2015
Portland, OR

Space, time, and state

Amy Palamountain (GitHub)
1:40pm–2:20pm Wednesday, 07/22/2015
Architecture Portland 256
Average rating: ****.
(4.36, 22 ratings)

Prerequisite Knowledge

Basic familiarity with design patterns used in UI applications, such as MVVM and MVC.


Reactive this, reactive that. Building responsive and predictable GUI applications is what we strive for, and reactive programming is the new trendy way to achieve that. But if you think about it, almost everything we program today can be given the description of reactive programming. We react to user input by changing our application state.

The presence of state, and state that changes over time, has important implications for our application architecture. It complicates things enormously. Writing reactive applications which are easy to reason about is no simple task.

This talk will reveal how reactive programming is only half the story of building responsive, testable, and predictable applications. We will discover how applying a functional style to our code can allow us to clearly reason about, and react to, user input over time.

Using Reactive Extensions, we will explore what it means to mix traditionally imperative design patterns with functional reactive programming. We will discover that, while the two ideas complement each other, managing state can prove to be an annoying wrinkle in your beautifully reactive code. Then we will take a look at some tricks you can use to remove the need for state without sacrificing clarity in your architecture.

Photo of Amy Palamountain

Amy Palamountain


Amy Palamountain is from New Zealand and really likes programming. She works at GitHub building GitHub for Windows, so day to day she writes a ton of C#. Amy has a background in genetics, high performance computing, web API design, and JavaScript client side architectures. These days she finds herself focusing on what it means to build a slick UI using reactive extensions.

Comments on this page are now closed.


Mark Deason
07/22/2015 7:01am PDT

reference to the “boundaries” talk?