SlideShare a Scribd company logo
Node.js
Presented By,
NEETHU D
Presented On,
20/01/2014
Node.js is a software platform that is used to 
build scalable network (especially server-side) 
applications.
 Node.js utilizes JavaScript as its scripting language, 
and achieves high throughput via non-blocking I/O and 
a single-threaded event loop.
WHAT IS NODEJS?
 created by Ryan Dahl starting in 2009
 Story behind it
 Original goal was to create a
website with push capabali-
ties like gmail.
 V8( java script engine)
 A JavaScript runtime environment running Google
Chrome’s V8 engine
 a server-side solution for JS
 Compiles JS, making it really fast
 Runs over the command line
 Designed for high concurrency
 Without threads or new processes
 Never blocks, not even for I/O
 Uses the Common JS framework
 Making it a little closer to a real OO language
 Node.js is currently used by a number of
large companies including LinkedIn,
Microsoft, Yahoo!, Walmart and Paypal.
 Cloud9 IDE (cloud service)
 JetBrains WebStorm or Intelli IDEA(commercial
products)
 Microsoft WebMatrix(free) or Visual
Studio (commercial product) with Node.js Tools
for Visual Studio (free)
 Nodeclipse(Eclipse-based)
CONCURRENCY: THE EVENT LOOP
 Instead of threads Node uses an event loop
with a stack
 Alleviates overhead of context switching
EVENT LOOP EXAMPLE
 Request for “index.html” comes in
 Stack unwinds and ev_loop goes to sleep
 File loads from disk and is sent to the client
NON-BLOCKING I/O
 Servers do nothing but I/O
 Scripts waiting on I/O requests degrades
performance
 To avoid blocking, Node makes use of the event
driven nature of JS by attaching callbacks to
I/O requests
 Scripts waiting on I/O waste no space because
they get popped off the stack when their non-
I/O related code finishes executing
I/O EXAMPLE
DRAWBACKS
 Use of JS on both the client and server-side
should remove need to “context switch”
 Client-side JS makes no access to files/databases
 Server-side JS deals mostly in files/databases
 JSDom project for Node works for simple tasks, but not
much else
 It lets a developer to create a server with few
lines of code..
 It is 90% faster than php – awesome way of
computing..
 Performance is the main advantage ..
 Allocates small heap…
 thread creation and heap allocation
CONCLUSION
 Still in beta
 Node.js shines in real time web applications
employing push technologies
 Non-blocking nature takes some getting used
to
 Interesting API
 It is still on developing stage
REFERENCES
 http://nodejs.org/
 http://nodejs.org/cinco_de_node.pdf
 http://ajaxian.com/archives/google-chrome-
chromium-and-v8
 http://blog.chromium.org/2010/12/new-
crankshaft-for-v8.html
 http://news.softpedia.com/news/IE9-RC-vs-
Chrome-10-9-vs-Opera-11-vs-Firefox-11-
Performance-Comparison-183973.shtml
Node.js

More Related Content

Node.js