Given the number of porn, gambling, and 'Punch the monkey' ads out there I think you may want to reconsider this point. The days when the demographic of the internet was more intelligent than the average population are long gone.
IMHO the value of OOP techniques is mostly for the management of complexity. In my experience these techniques are most useful when complexity arises from
a) the problem domain for which you are writing software
b) the process of software development and *maintenance*
Loosely defined the problem domain is the environment into which your software will be deployed. The users of your software may be mechanical engineers, bank tellers, etc. They understand the elements of their environment quite well and frequently do not understand computer systems. OO design and programming techniques facilitate embedding the translation between these concepts into the software (as opposed to training the users of the system to do so).
Two (related) exaples of engineering applications that benefit from OO techniques are computer aided design (CAD) and process simulation. OO techniques make is easier to create classes that represent the various elements of a chemical plant and proposed VLSI design and can evaluate interraction using different modeling techniques like those from the original example. I'm not claiming that one couldn't develop either type of system without OO techniques, they just make it easier.
The process of software development can create its own complexity depending on the size of the project and resulting size of the development/deployment team. OO techniques facilitate the division of labor required to distribute a large amount of work over the members of a large team. In addition, by grouping code into segements that have similar rates of change maintenance effort can be reduced reletive to monolithic, procedural coding efforts.
As someone has already stated the use of OO techniques is not limited to OOP languages. I'd argue that most of the value of the features added by these languages (reletive to their procedural ancestors) existed in techniques that predate them. Mostly these newer languages (C++, Java, et al) provide more efficient syntax and better enforcement for these techniques.
In the end, however, if you a creating a few simple tools for your own use I think you should develop your software in whatever environment is comfortable. Also, these OO techniques do have a performance cost. Of course, software tends to last a whole lot longer than the original developers think (remember Y2K:)
In fact, MailShell (www.mailshell.com) is a service intended for exactly this purpose. They allow the creation of several email accounts under the same domain that have different forwarding rules.
Given the number of porn, gambling, and 'Punch the monkey' ads out there I think you may want to reconsider this point. The days when the demographic of the internet was more intelligent than the average population are long gone.
IMHO the value of OOP techniques is mostly for the management of complexity. In my experience these techniques are most useful when complexity arises from
:)
a) the problem domain for which you are writing software
b) the process of software development and *maintenance*
Loosely defined the problem domain is the environment into which your software will be deployed. The users of your software may be mechanical engineers, bank tellers, etc. They understand the elements of their environment quite well and frequently do not understand computer systems. OO design and programming techniques facilitate embedding the translation between these concepts into the software (as opposed to training the users of the system to do so).
Two (related) exaples of engineering applications that benefit from OO techniques are computer aided design (CAD) and process simulation. OO techniques make is easier to create classes that represent the various elements of a chemical plant and proposed VLSI design and can evaluate interraction using different modeling techniques like those from the original example. I'm not claiming that one couldn't develop either type of system without OO techniques, they just make it easier.
The process of software development can create its own complexity depending on the size of the project and resulting size of the development/deployment team. OO techniques facilitate the division of labor required to distribute a large amount of work over the members of a large team. In addition, by grouping code into segements that have similar rates of change maintenance effort can be reduced reletive to monolithic, procedural coding efforts.
As someone has already stated the use of OO techniques is not limited to OOP languages. I'd argue that most of the value of the features added by these languages (reletive to their procedural ancestors) existed in techniques that predate them. Mostly these newer languages (C++, Java, et al) provide more efficient syntax and better enforcement for these techniques.
In the end, however, if you a creating a few simple tools for your own use I think you should develop your software in whatever environment is comfortable. Also, these OO techniques do have a performance cost. Of course, software tends to last a whole lot longer than the original developers think (remember Y2K
Ciao,
Maui
In fact, MailShell (www.mailshell.com) is a service intended for exactly this purpose. They allow the creation of several email accounts under the same domain that have different forwarding rules.