Photo by Marten Newhall on Unsplash

In a dynamic language like Ruby, when your classes are including around 10 to 15 modules, having a countless number of ancestors, monkey patching and metaprogramming, it becomes a challenging task for a programmer to debug a code written by someone else. When you are working on a big project and looking into other people’s codebases, you will often spend too much time figuring out where the hell is this method defined. Specially metaprogramming makes it very complicated to debug code because now and then a new method is being declared dynamically without you even knowing it. …


Coming from the synchronous code execution background like Ruby, I was always confused about how javascript executes code in an asynchronous way by remaining single threaded. This asynchronous code execution is really important and performance oriented way of computation nowadays which is being adopted by many languages. Although some languages still don’t support it, there are third-party libraries like ReactiveX which helps you to implement asynchronous workflows.

Before diving into the javascript asynchronous flow we will see what is the difference between synchronous code execution and asynchronous code execution.

Synchronous code execution.

Here in the above graphical representation, our main…

Nikhil Mohadikar

Ruby, JavaScript developer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store