NODE. The story of JS and V8

Source: Internet
Author: User
Tags ruby on rails joyent

To say the history of node. js, we have to talk about V8 history. Before we do that, let's just say something. Node.js:Node.js is a platform based on the Google Chrome V8 JavaScript engine to create lightweight, fast, scalable, event-driven, and nonblocking I/O applications. Now let's talk about node. JS's source--v8 JavaScript engine.

V8 is a Google-led open source project, which is at the heart of the Chrome browser. It was first released on September 2, 2008, and this is the first release of Chrome. It's a leap in browser performance that pushes browser technology to a whole new level. It was written in C + +, and its revolutionary innovation was to precompile the JavaScript source into machine code, rather than translating JavaScript into bytecode as before, and then using JIT to execute code at run time.

2009 years or so, Ryan Dahl is trying to solve a tricky problem-letting the browser know how long it will take to complete the remaining upload progress. Inspired by Ruby's mongrel webserver and just released Chrome and V8, he decided to try JavaScript, and soon the little idea became node. js.

node. JS project Development is joyent funded, which is also the company that Ryan works for. He still works for the company today, but on January 30, 2012 he transferred the Guardian's position to Issac Schlueter.

If you want to learn more about Ryan Dahl and how and why he decided to invent node. js, click to view his own readme video.

All along, JavaScript's browser environment is limited to a single process/single thread, which makes it impossible to update the DOM at the same time and execute other business logic, V8. So why would anyone want to use such limited and low-performance stuff on the server side?

JavaScript may not be the best computing language, but its event-driven nonblocking design makes node. js a lightweight (Raspberrypi-run, stress-prone) web platform that becomes the old Jee Java platform, Direct competitor to PHP and Ruby.

From a developer's point of view, the number of innovations in the node. JS community is amazing, and it's a great contribution to NPM as one of the three tools that node. JS developers must know, but that's another story.

node. JS was developed and developed by Ryan Dahl in 2009, and its development and maintenance was funded by Joyent Corporation. Dahl the idea of developing node. JS when he saw the Flickr upload file progress bar. Because the browser does not know how many files have been uploaded, it has to initiate a request query to the server. Dahl thought of a simpler approach. Ruby's Mongrel Web server is a source of inspiration for Dahl.

node. js is affected by some other patterns, such as the twisted of Ruby on Rails event Machine,python. Based on these patterns, the event loop provided by node. JS makes it no longer just a class library, but a language, as in previous patterns. Unlike the traditional pattern of using blocking calls, node. JS does not have a call to loop events, but instead executes the script itself directly into the loop. This is how JavaScript works.

Initially Dahl experienced several failed projects, which were written by C, Lua, and Haskell, but when Google released the V8 engine, Dahl began to try JavaScript.

Although his initial idea was non-blocking, he did not follow non-blocking in the module system and some other places because non-blocking caused problems when loading external class libraries.


Node. JS was released by Dahl in 2011, but only runs on Linux. NPM is released as a package management tool for node. JS in the same year.

In June 2011, Microsoft partnered with Joyent to help develop the native Windows version of node. js. In July of the same year, the first Windows version of node. JS was released.


January 30, 2012, Dahl the Guardian position to his colleague, also NPM founder Issac Schlueter. Dahl wrote in Google Groups:

"Now that the rewrite work based on LIBUV has been largely completed, I'll put my guardian position to Issac Schlueter. Over the next few months, our energies will shift to the third-party module system experience (which includes a Web site that has access to all third-party modules), a new plug-in build system, and the addition of a binary installation package to NPM. Issac will act as the only role that maintains the relationship between the kernel and external modules and gives them a good experience. After three years of node development, this allowed me to do some research work on the project. I still work for joyent and offer advice from the side, but I don't do bug fixes day after day. Issac has the right to let node publish a new version of the speech. He will be directly responsible for new feature requests, changes, and bug fixes. ”

January 15, 2014, Schlueter announced that he will take NPM as his focus, Timothy J Fontaine will become the project leader. Issac wrote in the node. JS Blog:
"Over the past year, TJ Fontaine has become the absolute core of the node. JS Project. He has been working on building new versions, managing test work, fixing annoying bugs, always focusing on users ' needs and making final decisions. ...... Anyone who has access to the core work of the project knows that he has been in fact responsible for the project for some time, so we decided to turn it into formal. This decision takes effect immediately, and TJ Fontaine becomes the node. JS Project leader. I will still be the core developer of node. JS and look forward to continuing to contribute to the project with this role. Anyway, my focus will be npm. ”

The next day, January 16, 2014, Timothy J Fontaine replies briefly explaining the future development path, as well as bug fixes, performance balance, and the tools to keep up with the V8 engine in sync with the update.

REF:

NODE. JS and V8 History

Wiki node. js

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.