| Each point doesn't really bear the same level of "unsoundness". Most are actually not problems at all the way I see it. 1. I can live with NaN. When the source of something becomes difficult to track, use a debugger. 2. Map vs map? Just another homograph, like there are hundreds in all spoken languages, yet most people manage to communicate. 3. The overhead of negative indices might be acceptable in JavaScript, but most languages probably don't benefit from having them. I think negative indices are actually hurtful, they tend to hide bugs which would otherwise be caught very early at runtime. 4. This is actually a serious issue. I don't get why so many people are in awe with TypeScript type system. Anything based on duck typing is a red flag to me. But still, better than no typing at all... |