11-Dec

JavaScript

The people behind JavaScript: Daniel Ehrenberg

The people behind JavaScript is a series of interviews with the members of TC39. The committee consists of JavaScript enthusiasts and language experts who get together to define how new versions of JavaScript should work.

3 min read

·

By Svein Petter Gjøby

·

December 11, 2019

const keyInformation = { name: "Daniel Ehrenberg", residence: "Les Roquetes del Garraf, Catalunya", firstProgrammingLanguage: "Python", work: "Igalia", yearsInTC39: 4, favoriteMusic: "Sardana" } 

:point_right: Make sure to follow Dan on Twitter

Who are you and what do you do?

I'm Daniel Ehrenberg, a TC39 delegate and a partner at Igalia, a free software consultancy.

How did you get into programming?

I used to program little games on my TI-83 calculator when I was 12 or so. From there, I wanted to learn "real programming" on the computer, but didn't know where to start. So I ended up reading about a lot of different programming languages, trying to figure out which was the best to learn.

What do you like about JavaScript?

I like how JavaScript is generally both free-form and uniform, when it comes to how you use objects, how lexical scoping and closures work, etc. Its base is both minimal and free of arbitrary restrictions.

And I like how JavaScript is everywhere, adding an layer of programmability accessible to a wide range of people.

How did you get involved in the development of ECMAScript?

When I was working at Google on various Linux kernel/firmware teams, I saw an internal job opening for the V8 sub-team working on new language features. At the time, this was implementing ES6. I jumped at the chance, and quickly found myself on TC39, pushing forward SIMD.js and working out the unfinished bits of ES6.

What's a contribution you are proud of?

I'm really proud of the JavaScript BigInt feature. It was the work of a lot of people, but I helped by pushing it through the TC39 process and editing the proposed specification. This feature lets you work with integers of any size, without arbitrary restrictions like BigInt has.

:video_camera: Watch Dan's JSConf talk from 2018 about BigInts In JavaScript.

What's an upcoming proposal you are excited about, and why?

I'm excited about the BigDecimal proposal. This would be a new numeric type that can represent numbers like people write them: with base-10 decimals of unlimited size represented precisely, without rounding errors. You can find more information at https://github.com/littledan/proposal-bigdecimal .

What is the most fun about being a part of the development of ECMAScript?

It's really fun to dream about new language features and think through the details and the design space. I really like how I get to learn about all sorts of different problems in a somewhat deep way, in terms of how they interact with the JavaScript language.

What is the hardest part about developing a programming language?

Working with a large group of people and understanding their problems and concerns, and resolving conflicts between these.

What do you wish you knew before you started contributing to the development

I wish I knew how important and complicated it was to both listen and to reach out and seek feedback. Initially, I thought that we could get "correct" answers could be reached through first-principles reasoning and just negotiating with people who assert themselves. I don't think that that sort of development process will actually meet people's needs; it's not inclusive enough to actually understand the real problems.

How do you hope JavaScript will evolve in the future?

I hope the language will evolve in a gradual, open, community-based way, and that TC39 will remain a good place to solve problems that exist at the language level. I can't give a single answer here: The needs of JavaScript programmers will change over time as the community grows and evolves. I hope TC39 will be ready to meet these needs, in a thoughtful, stable, dependable way.