@iska @alex This basically boils down to data structure synchronization. It's not feasible to make thread-safe data structures fast enough to replace every single object/dict/hash/array/whatever in the entire language for general usage. Unsynchronized access can lead to all sorts of errors that people don't expect out of a high-level language, like segfaults and memory corruption. C++ gives you a bazooka with 3 safeties and a 20 kilo weight on the muzzle, C gives you a semiauto Glock with no safety, Go gives you a captive bolt gun with a tag saying "don't place on your nuts". All of them still let you hose a data structure from another thread and laugh when it happens. JS is a padded cell filled with exotic full-auto nerf guns designed for unrestricted public access.
On top of that is the semantics of functions being atomic in execution with respect to other functions, but that can be changed.