First, this is an excellent question. It can generally be generalized to "where would one use OO programming?" Obviously not every task.
Let's start by looking at what OO programming gives you. This is, basically, a way of abstracting behavior around state. This is useful where you have a midsized project and want to make sure that you can more easily de-couple components (but don't want to go as far as, say functional programming). For small projects, the overhead in design makes it an unattractive choice. For very complex projects with complex concurrency issues you probably want to go with functional programming as your primary paradigm (you can mix OO and functional programming though).
So let's look at basically three models of managing state: Imperative, Object-oriented, and Functional
Imperative is basically summed up as "You do something with state. Object-oriented can be thought of as "state is responsible for its own behavior" and functional programming is "avoid state if you possibly can."
In general highly complex, highly concurrent systems will benefit from functional programming, and extremely simple systems will benefit from imperative programming. It's in the middle where object oriented delivers its best benefits.
In reply to Re: Right job for the tool.
by einhverfr
in thread Right job for the tool.
by AltGrendel
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |