Hello all. I have opened the page 
https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla
 and was horrified. What happened with JS? Why do we need all this methods? Why 
a lot of functionality is now doubled, and a lot of new badly designed API and 
language features was introduced? I understand the word "compatibility", but I 
think that no compatibility worth enough to be preserved sacrificing the 
language design making it self-contradictary.
For example, Object.is compares identity. Operator === also compares identity 
but in a bit differrent way. Why not just make == check equality only between 
compatible types, === check identity (that the object is the same) and throw 
out Object.is. Operator [] casts its argument to string ... but not when used 
with Symbol (why not just allow the key to be any object and match using ===). 
New iterator API relyes on Symbol.iterator. Why do we need it? Why not just use 
strings and prototypes? fromCodePoint doubles fromCharCode, but differs a bit. 
Why didn't you repurpose fromCharCode, just allowing it to take a string 
arguments describing codepages?  Iterability and enumerability are distinct, 
but iterability is just enumerability with numeric key (yeah, I know that it is 
possible to create endless or random iterator, but in fact this means that you 
just don't need to use the key provided). Why there is iterability, but not 
enumerability with properties of iterability and enumerability united? Why we 
need enumerability to make it work with for ... in and iterability to make it 
work with for ...  of? Why can't we use methods definitions to define methods 
as a function declaration? Why JS is so badly designed?
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to