One of the biggest challenges to the otherwise wonderful programming model of JavaScript is handling complex logic that involves lots of async functions and things that emit events. The inversion-of-inversion-of-inversion-of-control often needed is hard to read, write, and just plain understand.
With pre-empetive multi-threading you delegate all control to the operating system and it handles concurrency for you. This comes at a great performance cost. However with JavaScript this simply isn't the model, there is one thread and finite snippets of code executed. There is nothing like being able to tell a computer exactly how much code to run and under what conditions and it just works under extreme load and/or concurrency.
Be prepared to have your mind warped and molded as you are trained to not only accept this fact of life, but embrace it. You'll even be thinking in callbacks by the time this talk is over.
About Tim
Tim is an ardent supporter of open-source software who believes that writing code should be fun. Tim is a core member of the node.js community and loves to help people learn and grow. He runs the howtonode.org website which teaches about JavaScript techniques and node in general.












Leave a comment