This is a very interesting discussion. I agree with you. I’m an application developer but I’ve had to debug what I consider to be very hard issues ( network driver bugs, kernel bugs, compiler bugs, hardware bugs, etc ), every time in what I thought to be perfect aabstractions. I mean, the compiler should compile properly, the kernel shouldn’t lie, and my memory stick should behave. The thing is, it eventually fails. So I have a maybe abnormally high level of appreciation for debuggable systems :-)