I think you’re saying the same thing as what I am. If it’s more complex than what you may think, the language should guard against it. If not, it should make it simple.
Rust, for example, is the only mainstream language where it isn’t possible to read from a file handle after it’s been closed. Doing so is a compilation failure. This is just a general invariant of “how to use files”.
But you also don’t need to think about allocating or deallocating memory in Rust. It does that fke you automatically, even though it’s not GC.
JS can also be complicated when it tries to hide realities about the world. E.g. is a const array or object immutable? No, the pointer is. But pointers don’t exist! /s
Yep, we disagree. The world and technology especially is an extremely complicated place. IMO any complex system that is built upon “humans should just know all this complexity and keep it in mind all the time” is fundamentally broken.