To quote one of the first engineers I ever worked with: "all problems can be solved with an additional layer of abstraction."
except performance problems, of course.
except performance problems, of course.
Well, in some ways, even those can be solved with abstraction. The key is where that abstraction layer is placed. :) The assumption is you add them "on top" of what came before; but if you go in the other direction you may be able to improve performance by implementing, say, a smarter CPU with higher level abstractions built into the silicon. Things like that.