WHAT WE DO • Forbid language features - ESLint etc. • Agree on code style - JSCS etc. • Add functional and reactive abstractions - lodash, RxJS… • Switch out the language - Coffee, Clojure, JSX… • Add static types - AtScript, TypeScript, Flow… • Add immutable structures - Immutable.js, mori…
FUNCTIONAL REACTIVE PROGRAMMING • Use immutable structures and global state • Describe what to do in pure functions • Subscribe to streams of input • Handle input safely
–Jeremy Ashkenas, “Rise of the Transpilers” “Someone is going to unify these three different syntaxes and write a language that just addresses the web-platform directly and it’s going to be insanely popular”
–Richard Feldman at MLOC.js I keep having this experience where I make a major breaking refactor, recompile, fix all the compiler errors...and when I bring up Dreamwriter, everything still works! No regressions! This experience makes refactoring SO much fun!