This week I was giving two talks at the c’t webdev (Köln). If you are looking for the slides of my talks, here are the links:

ECMAScript as an evolving language

Abstract (click to expand)

ECMAScript, better known as JavaScript, is a language that has been evolving radically in the last few years.

Not only are many utility methods that formerly required the use of helper libraries like underscore now direct part of the specification, also DOM manipulation libraries like jquery have become largely obsolete due to W3C Recommendations of the past years.
Besides that, the language has adopted classes as an abstraction layer for it’s prototype-based internal OOP model, introduced arrow, generator and async functions, as well as an official module system.

As there was (and primarily due to IE, still is) a gap between the standards and the actual browser implementations, techniques like polyfilling and transpiling are widespread amongst developers and as we are using them anyways, they enable us to do something quite interesting:
Language features that are mere proposals to the TC39 (like a pipeline or null coalescence operator) can already be used as if they were part of the language.
Additionaly, the routine use of transpilers also allows the use of completely new languages built on ECMAScript, starting from non-intrusive extensions like TypeScript or Flow up to completely different languages like Elm or Reason.

This talk will give you an insight on what has happened so far, the direction everything is going and how you can keep up with this rapidly evolving language.

JavaScript Generators

Abstract (click to expand)

Since ES2015, Generators are a part of JavaScript. But apart from obvious use cases, Generators offer a lot more than meets the eye and can be used for various types of asynchronous external flow control.

This talk will give an introduction to the basics of Generators as well as showcase advanced use cases like early “async/await” implementations and Redux Sagas.