in reply to How do you program (again)?
You have a task - T to solve. So, you don't just write a program to solve T. You first write a whole new language for solving tasks like T, and then you use this language to solve T.
By "language" I don't mean a whole new programming language (though with Lisp's powerful macros, which thankfully found their way into Perl 6, it looks this way) but rather a new level of abstraction (functions, classes, data types) above the basic language that helps to solve the task easily.
Such design results in very few bugs and immense flexibility. The flexibility comes because while requirements often change, they most commonly affect the "top layers". If you have a powerful abstraction, you recode those easily.
Naturally, some mix-in of top-down design is also required, but that's only when the task at hand is large and comprises of several large sub-tasks that can be independent.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: How do you program (again)?
by wazoox (Prior) on Jun 03, 2005 at 07:08 UTC | |
by spurperl (Priest) on Jun 03, 2005 at 07:13 UTC | |
by wazoox (Prior) on Jun 03, 2005 at 07:20 UTC |