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
I'm Daniel Ehrenberg, a TC39 delegate and a partner at Igalia, a free software consultancy.
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.
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.
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.
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.
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 .
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.
Working with a large group of people and understanding their problems and concerns, and resolving conflicts between these.
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.
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.