You're wrong but for the right reasons: all of academic software pedagogy is about "abstractions" because academics do not work for a living (they teach). That's why whenever I hear anyone use the word abstraction I bucket them under roughly the same category (people who write software that does not matter). Think about it: if you can afford to not care about cache misses or latencies or memory hierarchies or any of the other physical details which are extremely specific (the opposite of abstract) then you are writing code that has no constraints. no scale, no externalities.