JavaScript Records and Tuples Proposal goes to stage 2
github.com"Records and Tuples aim to be usable and understood with external typesystem supersets such as TypeScript or Flow." Must be fun to design stuff that shouldn't break your language nor other languages.
Immutability and structural equality will make these extremely useful. I'm concerned how the masses of recent grads and bootcamp grads will interact with these. One of my favorite JS interview questions is "what is the difference between var, let, and const?". I don't reject candidates based on it, I just like hearing the different answers. I only heard the correct answer once out of all the entry-level developers that I interviewed.
I'm more concerned with the way that recent grads and bootcamp grads will interact with everything else.
Reference equality is a huge source of confusion for them. Structural equality is what they expect.
It's what they expect, and it's what they'll now expect from every object or object'ish value in JS :)
I was thinking "what's the point?" until I reached the section on equality:
#{ a: 1 } === #{ a: 1 } //=> true
This is massively useful.I'd rather just be able to mark an object as frozen, which we can already do.
JavaScript is adding so much new syntax I feel bad for people starting to learn the language now.
In terms of syntax this seems pretty lightweight, though. It's the same as instantiating a normal object or array, except with a hash in front.
It's lightweight, but also looks obscure and will probably be hard to google.