Slide 1

Slide 1 text

This is Node.js

Slide 2

Slide 2 text

[email protected] http://beletsky.net http://twitter.com/alexbeletsky

Slide 3

Slide 3 text

"I was concerned about the ability to program advanced push features into the website like I had seen in Gmail" Ryan Dahl the creator of Node.js

Slide 4

Slide 4 text

V8 Google's open source JavaScript engine. V8 can run standalone, or can be embedded into any C++ application.

Slide 5

Slide 5 text

LibUV High performance evented I/O Originally based on LibEV switch to LibUV with support of Windows

Slide 6

Slide 6 text

JavaScript Dynamic, prototype-based language Highly popular due to browser programming

Slide 7

Slide 7 text

http://jsconf.eu/2009/speakers.html

Slide 8

Slide 8 text

Why JavaScript? functions as first-class citizen

Slide 9

Slide 9 text

Why JavaScript? function as first-class citizen //closures..

Slide 10

Slide 10 text

JavaScript designed for event-oriented systems There was a natural fit V8 + LibEV + JavaScript

Slide 11

Slide 11 text

“Node.js is a platform for easily building scalable network applications. Node.js uses an event-driven (single threaded), non-blocking I/O model that makes it lightweight and efficient…” http://nodejs.org

Slide 12

Slide 12 text

Non Blocking I/O The concept of accessing I/O without blocking of application

Slide 13

Slide 13 text

https://www.flickr.com/photos/papyrist/ Line to ATM is blocking I/O

Slide 14

Slide 14 text

Mac’s Drive is non-blocking I/O

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

execution started from first line.. Output:

Slide 17

Slide 17 text

async operation started… Output:

Slide 18

Slide 18 text

but execution goes on.. > ping Output:

Slide 19

Slide 19 text

after ~ms file is read… > ping > pong Output:

Slide 20

Slide 20 text

Event Driven Application flow is driven by events

Slide 21

Slide 21 text

http://misclassblog.com/interactive-web-development/node-js/

Slide 22

Slide 22 text

Single Threaded Single-thread programming concepts is more easy to understand. Applications running in single thread are lightweight and efficient

Slide 23

Slide 23 text

“Node.js is designed for building efficient networking applications”

Slide 24

Slide 24 text

Core components: ! • HTTP / HTTPS • TCP / UDP / Sockets • DNS • File System • Crypto / Arch • Events • Streams

Slide 25

Slide 25 text

Efficiency & Scalability Build-in server, high concurrency, horizontal scalability, clustering

Slide 26

Slide 26 text

NPM Node Package Manager - the richest collection of high quality open source modules

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Thanks, @alexbeletsky