Javascript Fatigue
@ R H I O K I M
P R E S E N T A T I O N
Brendan Eich
Dennis Ritchie
James Arthur Gosling
Bjarne Stroustrup
Larry Wall
John McCarthy
Matz
Rasmus Lerdorf
Guido van Rossum
Secret of Javascript
😜
Too many JS framework
Too many Boilerplates
Too many bundler/task runner
Too many APIs.
Too much configuration
Too many language paradigm
Too many CSS in JS
"# $
– ,
.
“ .”
Douglas Crockford
Dion Almaer Co-Founder of Ajaxian
Sam Stephenson
John Resig
Steve Souders
Firejune
– ,
“ ”
Tim Berners-Lee
W3C HTML …
Copy & Paste Rich Documentation Web Application Platform
Micromedia Flash
Node.js
20091996 2005 2006 2010 2017
Backbone.js
1999
ES4
2008
ES5 ES6
2015
ES7
2016
ES8
6to5 + esnext
Google Map
2013
Haroopad
2011
node-webkit
2012 2014
• Adobe Flash

Flash HTML5
.
• Google
.
Google .
Steve Jobs said Adobe is Lazy
😨
2004 HTML W3C
WHATWG
🙅' ( )* +,
2005 IT .
HTML5
– ?
“ ”
Ryan Dahl
2009
😍
Isaac Z. Schlueter 
2010
Packages

575,948

Downloads · Last Day

608,103,940

Downloads · Last Week

3,264,697,852

Downloads · Last Month

13,584,318,447
Published Modules · Every Week

4,800
2017.09
2012.03 2013.04
Raspberry Pi
nginScript
IOT.js & JerryScript
VR Generation?
Cross Browser Cross Platform Universal
DOM
BOM
Isomorphic
hybrid
💩 💩💩
,
😁😭
– ,
“ ”
What the F*ck Javascript?
Brian Reroux
Transpiler, Babel(6to5), Type Annotation
1999 2009 2015
3.x 5.x 6.x4.x
ES2015abandoned
harmony
- classes,
- a module system,
- optional type annotations and static typing, 

probably using a structural type system,
- generators and iterators,
- destructuring assignment, and
- algebraic data types.
🤷 💁
Source to Source Compile
ES4~ES4 harmony~ES5
Brendan Eich Transpiler JSConf.US 2011
Jeremy Ashkenas
2012.10
Two years of 

Internal development by MS
ECMAScript 6 to ECMAScript 5 Transpiler
Future-Proofing
Slow Adoption Problem
Sebastian McKenzie
2014.09
James Kyle
Henry Zhu
Babel
React.js FB
Typescript ?
Types and Type Annotations
2014` A Stage 0 Proposal
Jonathan Turner & Brian Terlson
🙄
Functional, Reactive, Immutable, Saga
–
“ ”
jQuery Backbone.js React.js
DOM

&
BOM
Knockout.js
Prototype.js Vue.js
Angular 2+
?
Polymer 2+
MVC
MVVM

Modulizing
Two way binding
Dependency Injection
VDOM
WebComponent
Universal
Uni-Direction data flow
Mobile support
State managing
More Functional
CSS in JS
DOM manipulation
Event Handling
Scope
UnobtrusiveMix with HTML/CSS Well separation Mixin all together
😯 🤔😀 😊
Angular 1.x
WebComponent
2011
Alex Russell
Polymer
2013.11 2015
1.0
2017
2.0
Jordan Walke
2013.03
First Release
First Deploy
2011
Evan You
2014.02
First Release
Misko Hevery
2014.09
First Release
.
, ,
☺
…
React Component Vue.js .
Angular Component …?
Reusable WebComponent , , , …?
….
…?
😫
I’ve seen the future, it’s full of HTML
WebComponent are more than standards
Future
WebComponent
CSS ?
JS CSS …
50
🤣
–
Scaffolding
Testing
Linting & Formatting
Build
Optimizing
Scaffolding
$ mkdir project
$ make vendors
$ make src
$ make test
2012
1,000 Boilerplates
😤
Testing Framework
- Test Environment
- Testing Structure
- Assertion Functions
- Report Test Result
- Snapshot Comparing
- Mocks, Spies and Stub
- Code Coverage
- Browser Test
Mocha, Ava, Jest, Jasmin, enzyme
Krama, Istanbul, Cucumber, Chai, Sinon, Testdouble
Protractor, Nightwatch, Phantom, Casper, Selenium
Linting & Formatter
Nicholas C. Zakas
2002 2010 2013 2017
James Long
2002 2010 2013 2017
tab space
both
Build & Optimizing
shell & ant Require.js
Grunt
Gulp
NPM
Webpack
Browserify
Rollup
Task runner
Task &
Module Bundler
Concatenator
2012.03 2017.03~
- Scope Hoisting
- WebAssembly
- Persistenter Cache
- CSS as first-class citizen
- ES2015+, CommonJS, AMD
- Code Splitting
- HMR
- Dynamic Import
- Tree Shaking
- Minification
- Source mapping
- Incredibly fast compilation
😭🤕 😩
Actually, This is Javascript Fatigue
You don’t need to install or configure any more
creat-react-app
angular-cli
vue-cli
😘
?
“ ”
Battery Ventures Open-Source Software Index
According to the Battery Open-Source Software (BOSS) Index, Node.js is
a leader in enterprise-grade open source.
Node.js Will Overtake Java Within a Year
8.8 Million
# of Node Instances
800,000
New node instances YTD
https://medium.com/the-node-js-collection/node-js-state-of-the-union-blog-2017-ed86640ec451
Node.js
Nodesource, RasingStack, Strongloop(acquired by IBM)
Zeit
Node.js Foundation Membership
Grows Globally Across Multiple Industries
🤝
@A
Javascript Massage
HTML5
Copy & Paste Rich Documentation Web Application
Platform
Google Map
20091996 2005 2006 2010 20171999
ES4
2008
ES5 ES6
2015
ES7
2016
ES8
2013
Haroopad
2011
node-webkit
Atom Shell
2012 2014
Universa
Universe Javascript
❤
.

Javascript fatigue, 자바스크립트 피로