Abandon Old Concepts

From ModernDinosaur:

"One should be careful to extract what is useful from older concepts, and not dismiss anything "old" as useless. A craftsman does not abandon his/her manual screwdriver or hammer just because power ones are available in some cases they are still the best tool for certain jobs. That doesn't mean you should resist advancements either but be aware of software/hardware development history while being open to the new, look beyond hype and backlash to hype to choose the right solution for the task at hand."

This is the way progress is made in the modern world. When new, better ways are found to do something, then new innovative ways to make that better way even better and to eventually become the "way the thing is done". After all one of the most important approaches used in programming is to "solve the problem" by discovering the "best solution".


''What's an "old" concept?

Why havent't they been abandoned? So let's look at what "you shouldn't abandon old concepts" really means for software.


Examples

View One: People learning OOP shouldn't initially be concerned with functional concepts like continuations or referential transparency. They should be introduced once they've mastered OOP. Then come concepts from logic programming, from constraint programming, et cetera. And nowhere in the list do concepts from structured programming every show up. They're simply to be abandoned, regardless of value.

View Two: Most disasters in today's OO practice come from people not being aware of simple concepts from structured programming. The most notorious being that encapsulation is not information hiding.

Actually, I think most disasters in OO practice, come from procedural programmers, who think they're doing OO, because they used a class, and don't have a clue what OO really is. Said programmers are, in my experience, not good at information hiding or structured programming, either.


What people have to do is master one paradigm, the most useful, and then go on to master others...

Selecting the "most useful" will be based on what paradigm one is successful in utilizing. Whether OOP or FP, unless you're a mathematician, then it might be constraint programming.''


See also: MindOverhaulEconomics, MixingParadigms


CategoryComparisons CategoryHistory


EditText of this page (last edited May 9, 2005) or FindPage with title or text search