http://www.perlmonks.org?node_id=318344


in reply to The world is not object oriented

Tilly,

I agree that OO is certainly not a silver bullet. It is but one tool in a big jumbled toolbox that has developed over the relatively short time in which computers have been around, and software has been written. Think about it, our collective "field" has been in existence for less than a lifetime!

Personally, I like to use OO as a way to model concepts within the system that lend themselves to OO modeling. Other parts of my design might be more plain ole vanilla procedural code (sometimes to script the interactions of said objects) and other times i use a more functional approach (nested curried subroutine references and other such esoteria).

Its all about modeling the system in a way that fits the system, not about following some strict ideology. In my experience anyone who preaches "the one true answer" quite likely doesn't understand the question. (this applies to all of life, not just programming).

As for modeling the "real" world ("real" is in quotes since I have been reading too much post-modern philosophy and cannot rightfully aknowledge the existence of a "real" world, nor our ability to percieve it, but that is for another meditation :-P ). OO is woefully inadequate in this regard, but IMHO its better than alot of other approaches, but only if the context is right. But again, its just another tool in our collective toolbox; if it works, use it.... if it doesn't, don't. I am sure we have all felt as if we have been forced to use an Elephant Gun to kill a flea, or vice-versa (I was once forced to use a large J2EE server to write a message board, talk about overkill).

Programming is a very young field/art/craft/whatever, and one that borrows heavily from many other disciplines (mathmatics, biology, philosophy, linguistics, etc etc etc). But compared to those fields, its barely a zygote. We've still got a long way to go.

-stvn