To most people in JS, functional programmers are perceived as academic hipsters raving about things like applicative functors, semigroup homomorphisms and Yoneda lemmas for no good reason except to make the rest of us feel stupid. And this is fair; there’s no better way to make you feel pitifully mainstream than throwing category theory at you. Conversely, JS programmers tend to believe functional programming, therefore, can have no real world application because nobody in the real world has any idea what a Yoneda lemma is and they seem to be getting by just fine without it.
Except we aren’t. We’ve been living in callback hell for almost two decades now, and no matter how many control flow libraries we submit to npm, things don’t seem to be getting any better. And that’s where functional programming comes in—turns out callbacks are just functions, and those academics in their ivory towers with their Haskell compilers actually encountered and solved these problems long ago. And now we can have their solutions in JS too, because of functional reactive programming. To demonstrate, I’ll attempt to write a browser based game, from scratch, with ponies, using RxJS, everybody’s favourite reactive library, live on stage in 30 minutes with no callback hell in sight. And we’ll be finding out if this reactive stuff is all it’s cracked up to be or not.