Talk

From Latin to async/await: An Archaeological Dig into JavaScript

In Russian

We write JavaScript every day, but rarely think about why our code looks the way it does. In this talk, we'll conduct an archaeological dig into JavaScript, tracing the layers of history and tracing humanity's intellectual journey to the creation of this beautiful (or terrible—underline as appropriate) language.

1. We'll start with fundamental ideas: from the emergence of thought, language, and writing to formal systems and lambda calculus. We'll discuss why JavaScript is practically Latin. We'll see how philosophers and logicians paved the way for what we call "programming" today.

2. Prototypes from Self, functional capabilities from Scheme, syntax from C—in the second part, we'll attempt to construct a family tree of JavaScript and analyze the ideas of its predecessors that made the emergence of JS as we know it possible.

3. And finally, modern JS. How ES6 revolutionized the language. What's the point of Proxy and Reflect. Why do we need classes when we have prototypes? How is a Promise similar to a monad? And finally, how did we arrive at async/await?

This reflection will allow us to look at a familiar tool from a new perspective, critically examining its strengths and weaknesses. And most importantly, it will help us understand how the ideas and achievements of past generations help us effectively solve the problems we face.

Speakers

Invited experts

Schedule