A few days ago I read this post, in wich Jeff Atwood writes about abstractions, and how they all "leak" in one way or another. This is true, as a abstraction solves the generic problem, not our specific one. One thing we seem to forgett, however, is that all code we write is acctually a abstraction. There is no way for a computer to understand a c# if statement. It has to be converted to machine code before the computer can execute the comand.