>> Then I learned JavaScript, and I no longer had to worry about choosing specific numbers for my array sizes or fumbling with pointer operators.
Javascript is easier in that way because it has garbage collection. Garbage collection makes programming easier. But you can't add garbage collection to every programming language. There are trade-offs when the language abstracts away details like memory management.
>> I suspect C feels close to the hardware because... CPU-scale architecture design has continued to pander to it
I think this gets to the issue of the Von Neumann architecture, and the fact that it isn't the only possible way to design a CPU. I'm not well educated on this subject... However, I don't think you can say that C is the reason for the Von Neumann architecture. I think it's the other way around.
>> "a pointer is the same thing as a memory address"
>> Eh? Who says it isn't? :)
I meant that pointers are the same as integers, integers that hold memory addresses. Which is what they are from the standpoint of the cpu.