"We cannot solve our problems with the same thinking we used when we created them."
- Albert Einstein
It's beautiful when we give a new dimension to thinking while solving a problem. In programming, our approaches to solving problems may differ from each other. Most of the time, there's an interaction between the user and programs. GUI-based and web applications are a few examples of these applications. We can think of ways in which our application gets notified whenever the user tries to interact with it. It may be possible that our program awaits user's interactions or vice versa. In the opposite case, the user's interaction, at times, notifies the application of some kind of event. Let's say we write our programs to react to a user's interactions. This is the essence of being reactive as an application...