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

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

Compile to JS Languages

  • Babel - ES20xx
  • Coffeescript
  • Typescript
  • Closurescript
  • ... and so on

JS Survey

By daneroo

JS Survey

  • 750