Functional reactive programming offers a way to once again view our programs as simply input and output. We get to minimize state while also embracing a unified view of what our app is doing. It’s all just inputs and outputs.
If you haven't noticed by now, I'm a big fan of Reactive Cocoa.
In this blog post, Josh Abernathy delivers a pretty good pitch on the benefits of Functional Reactive Programming.
When our only tool is state, every problem looks like a stateful nail.