Space, Time and State
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.