“
A good designer must rely on experience, on precise, logic thinking; and on pedantic exactness. No magic will do.
— Niklaus Wirth
computer scientist, engineer, programmer, university teacher, inventor
1934 – 2024
A good designer must rely on experience, on precise, logic thinking; and on pedantic exactness. No magic will do.
Software gets slower faster than hardware gets faster.
Go To statement considered harmful.
In our profession, precision and perfection are not a dispensable luxury, but a simple necessity.
Reliable and transparent programs are usually not in the interest of the designer.
... we do not consider it as good engineering practice to consume a resource lavishly just because it happens to be cheap.
As a matter of fact, the adaptability of a program to changes in its objectives (often called maintainability) and to changes in its environment (nowadays called portability) can be measured primarily in terms of the degree to which it is neatly structured.
But active programming consists of the design of new programs, rather than contemplation of old programs.
Clearly, programming courses should teach methods of design and construction, and the selected examples should be such that a gradual development can be nicely demonstrated.
During the process of stepwise refinement, a notation which is natural to the problem in hand should be used as long as possible.
Experience shows that the success of a programming course critically depends on the choice of these examples.
In the practical world of computing, it is rather uncommon that a program, once it performs correctly and satisfactorily, remains unchanged forever.
Programming is usually taught by examples.
Nevertheless, I consider OOP as an aspect of programming in the large; that is, as an aspect that logically follows programming in the small and requires sound knowledge of procedural programming.
