Computer programs are complex by nature. Even if you could invent a programming language that operated exactly at the level of the problem domain, programming would be complicated because you would still need to precisely define relationships between real-world entities, identify exception cases, anticipate all possible state transitions, and so on. Strip away the accidental work involved in representing these factors in a specific programming language and in a specific computing environment, and you still have the essential difficulty of defining the underlying real-world concepts and debugging your understanding of them.

After the Gold Rush : Creating a True Profession of Software Engineering (Best Practices) by Steve C McConnell

ISBN: 0735608776 Page: 81 This book is available from Amazon