Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.


High level languages is also an example. C is really an abstraction layer upon machine code, but in most cases compilers produce faster code than what you would do if you wrote assembler. So C is an abstraction layer that helps you improve performance.


If a problem is so critical that one of its side-effects earns the title "the vietnam of computer science", then I think it is 'ok' to put "performance" considerations on a secondary tier and first see if there is a solution to the problem, in principle.


Then you seem to misunderstand the point. It is not a N+1 approach. There is a bound to N and that is 4.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: