I can’t even count how many times I’ve heard people say, “why do I need Reactive Programming? I can do the same thing with …” No one is claiming that Reactive Programming is a new discovery or requires a special language or library. Reactive Programming is simply a concept to raise the abstraction level so you don’t have to re-implement a reactive system every time.
I have been programming long enough to remember when OOP was new. It’s funny how similar the arguments against OOP and Reactive Programming are. Object oriented concepts where used long before anyone gave a name to it. While it is possible to build your own OO library in C (or any other procedural language) why would you? Now OOP is taken for granted and assumed that all languages should be able to produce objects.
Reactive Programming is not simply a fad but a method to help you build concurrent/parallel code. In years to come, new languages will include Reactive Programming methods as part of the core language. In fact, the change has already started. Go has “channels” built into the language.
In my analysis, multicore processors are the only method we currently have to make our programs go faster. Callbacks and shared-state concurrency are just a path to premature gray hair. Reactive Programming is currently the best method we have to manage the complexity.
So look past all the buzzword laden marketing touting Reactive Programming as the “silver bullet.” It doesn’t solve all of our problems but it certainly helps with some of them.