Jake Trent

Modern Frontend Dev: Language Advances

Advancements in JavaScript further the frontend craft. Here are some advancements that I believe are important to us today.

Rapid Spec Improvements

Hasn’t it felt like there have been a lot of upgrades to JavaScript itself in recent years? I feel like the TC39 committee, responsible for evolving the language and sharing a spec that vendors can build to has been very productive. Browsers and Node.js are all tracking new specs quickly as well. The process seems to be working well. It feels good to have progress.

The JavaScript language surface area is expanding. Sometimes I pine for the days when a newb to JavaScript had fewer concepts to grok when first encountering code. But on the whole, the additions and progress made have seemed worthwhile.

Transpiling By Default

But not all JavaScript runtimes can keep up with the flood of new language development. A mainstay in my JavaScript writing experience now seems to be Babel. Babel allows JavaScript transpilation, taking future-state JavaScript and rewriting it as current-day JavaScript that’s interpretable by browsers today. Never before have I or others felt so comfortable using features that are coming but not yet fully cross-browser compatible.

I have mixed feelings about JavaScript transpilation in the long-term. In some ways, I hope it goes away. But there are so many features yet to be adopted across major platforms that I see this as a necessity and a strong net-positive at least in the mid term.

Type Support

As JavaScript projects get bigger and more complex, there seems to be more appetite for a strong type system in JavaScript. I don’t see this coming to the language itself, but who knows. The primo JavaScript flavor for typing is flowtype.

This is welcome and feels like it makes apps better in many situations. There are still situations, however, where I enjoy the ability to move quickly in JavaScript without first establishing the shapes of all required types.

The tooling here is getting better, but there’s still much to be desired. Typing requirements and error messages can be quite cryptic.

Compile it All to JS

Is there a language today that doesn’t compile to JavaScript? The fact that is hard to answer with one or many examples is a testament to the fact that writing and deploying JavaScript is a valuable target.

There are many languages around the JS ecosystem that act as feeders for many of the ideas and language advancements that come to JavaScript. Elm, Purescript, Typescript, Reason, and more. There is a lot of functional philosophy influence here. They brings ideas for new, expressive syntaxes.

These are few advances that can be felt in the JavaScript language space. Which developments have you had your eye on and feel are influential?