JavaScript
a survey
Daniel Lauzon
2016-03-17
Outline
- History
- Language evolution
- Platforms
- Package ecosystems
- Module Loaders
- Build Systems
- Tooling
- Transpilers/Parsers
Please interrupt, ...and ask questions.
History
- Written at Mosaic by Brendan Eich under the name Mocha and later LiveScript, EMCAScript, and JScript (1995)
-
Influenced heavily by java, self and scheme
- EMCA standard 262
- ES3: 1999
- ES5: 2009
Language evolution
- Browser wars
- Web 2.0
- Mobility
- Realtime - Offline
Asynchronicity
- Callbacks
- Promises
- Reactive (Observable)
Composition
-
Prototypal Inheritance
- (objects without classes, and prototype delegation, aka OLOO — Objects Linking to Other Objects), and
-
Functional Programming
- (enabled by lambdas with closure)
Platforms
- Browsers
- Server / Node.js
- Mobile
- Embeded / IoT
Package ecosystems
Influence of ecosystem
- Small reusable components
- The age of github
- Semantic versioning
- Dependency management
Application Domains
Front-end Frameworks
- jQuery
- Socket.io
- Angular.js
- React.js
Back-end Frameworks
- express
- hapi
- koa
- Loopback
- Firebase / Meteor/Hoodie
Module Loaders
- CommonJS
- UMD
- System.js
- AMD
- ES2015 import
Tooling
- Editors
- DevTools
- Static analysis
- Linters / Formatters
- Minifiers
- Transpilers
Build Systems
- Grunt
- Gulp
- Brocoli
- Webpack
- Workflow
- Test
- Watch
- Reload
- Deploy
Parsers - Transpilers
- Esprima
- Acorn
- Google Closure
- Google Traceur
- ESTree
- Babel
- ESLint/ESFormat
Compile to JS Languages
- Babel - ES20xx
- Coffeescript
- Typescript
- Closurescript
- ... and so on
JS Survey
By daneroo
JS Survey
- 750