4. religion
-noun. a set of beliefs concerning the cause,
nature, and purpose of code, which guide
programmers through the creation of software,
usually involving devotional and ritual
observations and/or gatherings, and often
containing standards governing the style of
development practices
9. It makes you a better programmer
It’s an alternative perspective of how to describe
good software design
10. OOP is bad
Side effects are evil
Immutability is good
Less code means less bugs
11. Not everything can be side effect free
Limitations in languages, tools, OSs…
Bureaucracy keeps things complicated
Not everyone follows the same religion
Businesses aren’t about pretty math
problems
12. Less code
Less buggy code
Happier customers
Cheaper code
Easier maintainability
Quicker development
Once developers know the ropes
27. Use processes!
Easily scale across distributed systems
Much safer than threads
No need to worry about states
Use load balancer to distribute work
HAProxy
nginx
multi-node
28. Simple designs
Efficient applications
High concurrency
Blazingly fast for end users
29.
30. Dynamic, weakly typed multi-paradigm
scripting language
Prototype-based
Functional
Imperative
Lisp in C’s clothing
31. Lots of design errors
Lots of implementation errors
Lots of bad books
Lots of amateurs
32. No, but it can be forced
It’s prototype-based
It has objects, but not classes
It doesn’t have class-oriented inheritance – it has
prototype-oriented inheritance
There are lots of different ways to achieve the
same thing
Really depends on your religion
33. It supports the concepts of functional
programming
Certainly not pure
More functional than object-oriented
Again, it depends on your religion
34.
35.
36.
37.
38. Treat variables as constants
Think of everything as immutable
Don’t rely on side effects
Avoid confusion
Return a new object instead of modifying
Can be used as a (non-pure) functional
language
Just use what works
49. Attempt to expose the good parts of
JavaScript
It’s just JavaScript
Compiles one-to-one into the equivalent
JavaScript
Makes JavaScript simpler
54. JavaScript
JavaScript:TheWorld’s Most Misunderstood
Programming Language
The Little JavaScripter
JavaScript as a Functional Language
Higher-Order JavaScript
Functional Programming – Eloquent JavaScript
Douglas Crockford
55. Node.js
How to Node
Node Documentation
Understanding node.js
Combined benchmark
Ryan Dahl