| We've seen this happen over and over again, when a new leaky layer of abstraction is developed that makes it easier to develop working code without understanding the lower layer. It's almost always a leaky abstraction, because sometimes you do need to know how the lower layer really works. Every time this happens, developers who have invested a lot of time and emotional energy in understanding the lower level claim that those who rely on the abstraction are dumber (less curious, less effective, and they write "worse code") than those who have mastered the lower level. Wouldn't we all be smarter if we stopped relying on third-party libraries and wrote the code ourselves? Wouldn't we all be smarter if we managed memory manually? Wouldn't we all be smarter if we wrote all of our code in assembly, and stopped relying on compilers? Wouldn't we all be smarter if we were wiring our own transistors? It is educational to learn about lower layers. Often it's required to squeeze out optimal performance. But you don't have to understand lower layers to provide value to your customers, and developers who now find themselves overinvested in low-level knowledge don't want to believe that. (My favorite use of coding LLMs is to ask them to help me understand code I don't yet understand. Even when it gets the answer wrong, it's often right enough to give me the hints I need to figure it out myself.) |