Javascript – currently ES5, from late 2009.

One of most important programming languages.

ES6 will have some good and bad parts, again.

ES6 will become real functional language.

WeakMap – it works like objects should have worked. Anything could be a key. Stupid name.

Bad parts

Class – Most requested, by Java programmers.

Generators – Adding lot of complexity.

Crockford Javascript style

Stopped using new, Object.create instead. Stopped using Object.create too – because stopped using this (forbidden in AdSafe.)

How to make Javascript safe?

  • AdSafe – simple, just forbid to use this

  • Caja by Google

Stopped using null – doesn’t make sense to have both undefined and null. Javascript itself use undefined all the time.

Stopped using falseness – originally created to support C style programming, which doesn’t have boolean, and 0 was used for false

Stopped using for -> array.forEach is better.

Stopped using for in -> Object.keys is better.

In ES6 will be both same fast.

Dart and typescript is not forward looking programming language we would like to leave for our children.

> Lambdas are good idea.

Last good system language was C.

Most popular languages today are application languages.

Usually your taxonomy of classes is broken. When you get away from classes, you avoid errors.

Prototypal inheritance – big advocate, not anymore. Better for memory, but was useful before we got GB of memory in our pocket.

Javascript engines have to be pessimistic about what is in prototype – avoid speeding Javascript.

Advocate class free programming.

Stop using stacks, start using heaps - solved.

Passing in separate params is to limiting.

Mixing data and methods was transitional step, but we should generally avoid it.

Ints are bad.

Discard what doesn't fit and don’t tell anybody - worst strategy.