Go deep in NodeJS - Part 1
Welcome to the journey of learning Node.js! No matter whether you are a first-timer or a ninja-level developer, this sequence will walk you from the beginnings to true professional skills with Node.js. We don't want to code here but we go deep into some concepts that vanished for us during the development and deep knowledge that will take your skills to new levels. What concepts? subjects like, what is V8? what is Event Loop? What are Blocking and Non-Blocking calls in Node.js?
Let's embark on this amazing adventure!
What is Node.js?
While every other development has been overshadowed by Node.js in this fast-moving landscape of web development, the question remains: what precisely is Node.js? In essence, Node.js is an open-source, cross-platform runtime environment that provides runtime for running JavaScript in a server-side environment. Traditionally, JavaScript was restricted to client-side programs; it runs in a browser. Node.js breaks this rule by letting developers use JavaScript for backend development, eventually creating a uniform language environment across both the client and the server sides.
A Node.js application runs in a single process without creating new threads for every request. Node.js relies on asynchronous I/O operations to avoid blocking JavaScript code. All libraries of Node.js are made with the same thought of a non-blocking, event-driven I/O model. (Don't worry, I will explain all of them later). For example, Node.js will not waste cycles waiting on network I/O or database queries. It moves on, and when the response is ready, it continues. This makes Node.js efficient and capable of handling thousands of concurrent connections without the complexity of managing threads.
领英推荐
The Story
If you don't like history, pass this paragraph, but I believe everyone should know about history!
Ryan Dahl did the designing of Node.js in 2009. Dahl envisioned creating scalable network applications that were capable of handling large numbers of concurrent connections with high throughput. He took advantage of the V8 JavaScript engine that was developed by Google. He came out with a runtime environment that was able to handle non-blocking, event-driven I/O operations, hence quite appropriate for building real-time applications. Dahl demonstrated the project at the inaugural European JSConf on November 8, 2009. In January 2010, a package manager was introduced for the Node.js environment called npm.
Why Choose Node.js?
What's Next?
Now we know what is Node.js and its usage. In the next article, we give a brief description of the V8 JavaScript Engine, NPM, and ECMA Script.