Node.js Everything

ME

Christoph Walcher

@saintedlama

http://www.meetup.com/nodejs-vienna/

Evented Javascript on the Server

Asynchronous

Single Process

Small footprint memory file system

Linux, OS X, Windows raspberry pi, tessel.io, espruino, tinkerforge red brick aws, heroku, open shift, ...


var http = require('http');

var server = http.createServer(function(req, res) {
    res.write('Hello World');
    res.end();
});

server.listen(8080, function() {
    console.log('listening for requests on port 8080');
});
            

You’re probably using Node.js

Grunt Gulp Bower WebPack Atom Slack VS Code Yeoman Game Dev Tycoon Popcorn Time Azure Mobile Services

My story about node.js

I was doing strong typed languages for 15 years

Hated weak typing

But had the feeling that JavaScript is eating the world

Bought a book: JavaScript: The good parts in 2011

Installed node.js Version 0.4.12 (stable), released 2011.09.15

It was awful!

I did not test anything

Every change broke everything.

Everytime

I was doing OOP at it's best and hated JavaScript for it's prototype chains

It was a mess.

Node.js did not like me. I did not like node.js

4 years later

I'm doing a super secret startup with node.js

What happened?

What makes node.js awesome?

Scalability

Thread safe by design

Graceful under load

NPM

Dependencies done right

Less version hell than ever

One language

Awesome applications are not written by a frontend team or a backend team but by a developer team!

Breaking silos

Rapid Development

No need to deploy to application servers

Start a server in milliseconds

Develop REST APIs without spending 4 days with infrastructure stuff

Integration tests run within milliseconds

Vibrant community

Late 2012

15k modules, 10m downloads/month

Late 2014

100k+ modules, > 500m downloads/month

Module philosophy Do one thing

But do it well!

What still sucks

Error handling is a mess with callbacks

JavaScript is a bit meh

But not as meh as JavaScript haters believe

Asynchronous nature can be cumbersome

Node.js is no silver bullet

It does not solve the hard parts of software development

Understanding the problem domain

Building the right software

Teamwork and Cooperation

Thanks!

https://github.com/saintedlama/everything-nodejs