He says They don’t seem to grasp that one must understand the native environment you’re working in before going ahead and writing a program to run within it.
I thought, or maybe you don't grasp that one need not understand it first, or in many cases, at all.
That is the whole point of abstractions after all.
If I had to write my entire operating system from scratch everytime I wanted to get something done I'd find a different profession.
However, I don't think that's the point being reached. Somewhere out there exists a magical corpus of knowledge that every programmer should be able to memorize from heart. And then there's the world we live in now where you have a corpus of knowledge you do know and can build upon. Somewhere in between is a practical subset of knowledge that should be common but some feel isn't being represented well. The debate rages about what that suitable subset is.
What I think most people who bring this argument up fail to realize is that the full corpus of knowledge that embodies all of programming is far too large for a single programmer to understand. Good abstractions can be trusted to hide the unnecessary details. Great abstractions shouldn't mean piss-poor performance (and should infact provide just the opposite). They also get out of your way (or you avoid using them) when working in the problem domain where your "low-level" knowledge is more useful for the optimizations you can provide to your code.
I'm just not as OCD as some programmers. Yet I can still get good work done. I don't think I could do it without useful abstractions.
I thought, or maybe you don't grasp that one need not understand it first, or in many cases, at all.