Node.js: JavaScript on the Server

Google TechTalks · 135K views · 2010 · 59:59

Open on YouTube

Web developmentSoftware architecture & designSoftware performance & optimizationtalkdated

Why Stack Overflow recommends it

Stack Overflow users link it as the primary source for Node.js's design and motivations, citing it in answers about event loops vs threads, performance, multi-core scaling and learning resources.

Recommended by 7 people across 7 different months, 2010 to 2012.

What it is

A one-hour Google Tech Talk from July 2010 in which Ryan Dahl, the creator of Node.js, explains why event loops beat threads for high-performance servers and how Node ties V8, an event loop, a thread pool and an HTTP parser together. It also covers how to get started and how to scale across cores.

What people said

Recommends Tor Valamo · 2010-07 · Stack Overflow · on “How does Node.js perform compared to Apache?”

There is a recent (July 28th, published 30th) Google Tech Talk about Node.js [this video] where there are a few performance numbers and where he also talks about scaling.

Recommends root-aj · 2010-10 · Stack Overflow · on “Looking for some good CS videos”

Google, Yahoo, and O'Reilly all have great Tech Talks on YouTube and their dev blogs. I highly recommend Crockford on JavaScript [LINK] . He gives a wonderful overview of the history of programming languages in the first lecture. If you're interested in current technology I'd also highly recommend the Google lecture series on MapReduce [LINK] the Tech Talk on CouchDB [LINK] as well as the Yahoo talk on Node.js [this video]

Recommends Ivo Wetzel · 2010-12 · Stack Overflow · on “Help with getting to grips with node.js”

There are no real - like in actual wood - books out yet, Yahoo! Press has one in the works [LINK] though, title will be "Up and Running With Node.js" . Right now there's a community driven e-Book [LINK] from the makers of the express.js framework, its source code is also available on GitHub [LINK] . If you like videos, then should check out a couple of talks by Node's creator Ryan Dahl: Introducion to Node.js - YUI Theater (May 2010) [LINK] GoogleTeckTalk - JavaScript on the Server (July 2010) [this video] Techniques for a single stack world - JSConf.eu (Sep 2010) [LINK] You can find even more links on our tag wiki [LINK] . PS: Best thing IMO is to start a little side project and use that to expl

Recommends yojimbo87 · 2011-04 · Stack Overflow · on “How do I get started with Node.js”

You can follow these tutorials to get started: Tutorials NodeSchool.io interactive lessons [LINK] The Art of Node (an introduction to Node.js) [LINK] Hello World [LINK] Hello World Web Server [LINK] (paid) Node.js guide [LINK] Build a blog with Node.js, express and MongoDB [LINK] Node.js for Beginners [LINK] Learn Node.js Completely and with Confidence [LINK] Node JS Processing Model – Single Threaded Model with Event Loop Architecture [LINK] RisingStack's Node Hero Series [LINK] Great Node.js tutorials voted by the programming community [LINK] Node.js Tutorial [LINK] 30 days of Node [LINK] Developer Sites Joyent's developer site for node [LINK] Tutorials Teacher [LINK] Videos Node Tuts [LIN

Recommends Anil Shanbhag · 2011-09 · Stack Overflow · on “what's advantages on using node.js+ node http server over php/ruby/etc + nginx?”

Depends on your application : A brief video on node js : link [this video] Somethings which make it better : It uses javascript , makes for better code reuse between server side and client side . Node Js in itself is non blocking .

Recommends bryanmac · 2012-03 · Stack Overflow · on “Methods of modern web development”

Take a look @ node.js [LINK] . It allows you to code JavaScript on the browser and the server. JavaScript is becoming the defacto web language so it allows you to extend your skills their and share code (very powerful for the browser form and server REST service to share validation and other logic). Also, many cloud services (Azure, CloudFoundry, Joyent etc...) are hosting it. Alot of folks are onto this web technology (including Microsoft [LINK] - disclaimer: I work for them). Besides it being new, it also encourages an async non-blocking I/O method of creating network servers which is a good pattern to get your head around. Some videos to watch: [LINK] [this video] [LINK] Start @ nodebeginner.o

Recommends Brad · 2012-07 · Stack Overflow · on “"Everything runs in parallel except your code".. wait what?”

Node.js uses a single thread any time it is running the JavaScript in your application. Tasks that are asynchronous (network, filesystem, etc.) are all handled on separate threads automatically for you. This means that you get much of the usefulness of a multithreaded application without having to worry about all of the trouble that comes with locking resources and what not. Node is not a tool for every job. It is ideal for applications that are IO bound. For example, if your application required a ton of work to process templates and what not, Node probably isn't for you. If instead you're just shuffling data around, Node can be very effective. The reason Node is often quoted as being faste

Cites Simon Marlow · 2010-10 · Stack Overflow · on “What is the Haskell response to Node.js?”

Ok, so having watched a little of the node.js presentation [this video] that @gawi pointed me at, I can say a bit more about how Haskell compares to node.js. In the presentation, Ryan describes some of the benefits of Green Threads, but then goes on to say that he doesn't find the lack of a thread abstraction to be a disadvantage. I'd disagree with his position, particularly in the context of Haskell: I think the abstractions that threads provide are essential for making server code easier to get right, and more robust. In particular: using one thread per connection lets you write code that expresses the communication with a single client, rather that writing code that deals with all the clients

Cites HoLyVieR · 2010-10 · Stack Overflow · on “Real time Protocol for a web-app in PHP”

If you are willing to write this in PHP, I'd say you are looking at the wrong technology. There is 2 major problem with PHP and real-time. When you run a PHP application, it is not persistant like Servlet with Java. It is hard and not really adapted to do communication between each connection. You have to use database storage, stream or file to send data between each instance. All of these methods are not very efficient. It is using blocking I/O and this is where it hurts in term of performance and scalability. You should look at non-blocking I/O technology for web server. They are all event-driven server which is something different from the PHP approach. Here are few example : JBoss + Nett

Cites gawi · 2010-10 · Stack Overflow · on “What is the Haskell response to Node.js?”

@Simon I haven't tries Node.js for the real-life test, so I remain skeptical about the ease of programming promises. Regarding threads, I should have said "OS thread". Node.js does not bring green/interpreter threads to Javascript but rather works on top of libev [LINK] which is an event loop and run every user-provided callbacks exclusively in a single thread. See the first minutes of this presentation for a more detailed explanation of the motivations of Node.js [this video]