upgrading the web
TRANSCRIPT
Upgrading the weban Javascript language evolution
Renat GafarovRoman Gafurov
Расскажи ей о наследовании в JavaScript
JavaScript in modern world
Rich client application
More implementations design patterns (MVC, MVVM, MVP)
Server-side applications and two ways of progress by server javascript nodejs, io.js
Isomorphic code base (meteorjs, react, catberryjs)
Active community
Mobile applications (PhoneGap, Cardova, app.js, Marmalade)
Modern browser game dev
Server-side JavaScript
V8 - C++ Virtual Machine
Non blocked i/o
Async
More modules
Fast development
CALLBACK HELL
Nodejs v 4.x
common code base nodejs and io.js
Child process
full support ES6
More stable
More fast
Nodejs Foundation
It’s just JavaScriptno more `var`
everything is an expression
destructing assignment, array slicing
aliases (is, or, isnt, yes, unless, @, **, ...)
bound functions (arrow), splats…, default parameters
generators
classes, inheritance, ::, super(), static methods
string interpolation #{}, multiline strings
http://coffeescript.org/
But not so fabulous
scoping is madness (http://goo.gl/KVNHLQ)
in some cases you still need put brackets
you can still shoot yourself in the foot
difficult to debug
there is no way back
good for ruby / python - ist’s
javascript is changing!
ECMAScript 6: extending CoffeeScriptblock scope
let, const - immutability
modules and import
named parameters
getters and setters
method properties, computed property names
typed arrays (Uint32Array, Uint8Array, Float32Array)
for-of
var is still with us
http://es6-features.org/
ECMAScript 6: What about types?Symbol
Iterator
Set, Map
Promise
String (startsWith, endsWith, includes, repeat)
and others good features (http://goo.gl/1Rossi)
http://es6-features.org/
https://goo.gl/WFBQpB
ECMAScript 7: What’s next?
async
:: bind operator
class decorators, properties
array comprehensions
Object.values, Object.entries
https://babeljs.io