From: alexcpn on
Recently I attended a seminar on Agile process which actually exposed
the huge inefficiencies we where following in the waterfall method.It
was a sudden awakening into something that you had an inking off long
back.

I have been developing software using OO A& D in C++ for over 5
years , and have increasingly used more and more elegant/complicated
designs; this is because I like programming and I also believed I was
adding value. Have I modified source - yes a lot. Was the product
successful - yes I guess.

Now a sudden thought stuck me. What if sometime in the future somebody
armed with concrete statistics come and tell me that OO is too
complicated and that most of the key words which we swear by like
inheritance, polymorphisms etc really do not provide much value to the
vast millions of OO code out there; I really believe part of this
since I know a little about the code in one of the largest OO code
base in the telecom network management product that I work in.

Maybe I should frame the question more clearly- what is it so special
in OO that makes it so successfully industrially. I really don't
'believe' that it is because of the way OO entity help us in closely
modeling real life etc

Is it the Open Closed Principle
Or is it because there are not many choices

This post is very subjective and probably I guess because of my lack
of knowledge in many ares; anyway I am posting this for what it is
worth so that I hope to get some illuminating replies
From: Mark Nicholls on
On 11 Jan, 12:07, alexcpn <alex...(a)gmail.com> wrote:
> Recently I attended a seminar on Agile process which actually exposed
> the huge inefficiencies we where following in the waterfall method.It
> was a sudden awakening into something that you had an inking off long
> back.
>
> I have been developing software using OO A& D in C++ for over 5
> years , and have increasingly used more and more elegant/complicated
> designs; this is because I like programming and I also believed I was
> adding value. Have I modified source - yes a lot. Was the product
> successful - yes I guess.
>
> Now a sudden thought stuck me. What if sometime in the future somebody
> armed with concrete statistics come and tell me that OO is  too
> complicated and that most of the key words which we swear by like
> inheritance, polymorphisms etc really do not provide much value to the
> vast millions of OO code out there; I really believe part of this
> since I know a little about the code in  one of the largest OO code
> base in the telecom network management  product that I work in.
>
> Maybe I should frame the question more clearly- what is it so special
> in OO that makes it so successfully industrially. I really don't
> 'believe' that it is because of the way OO entity help us in closely
> modeling real life etc
>
> Is it the Open Closed Principle
> Or is it because there are not many choices
>
> This post is very subjective and probably I guess because of my lack
> of knowledge in many ares; anyway I am posting this for what it is
> worth so that I hope to get some illuminating replies

personally I think you've answered your own question...OCP would be
central for me....thats not to say the OCP doesn't exist in other
paradigms....there's obviously also, hype, marketing, it's a natural
extension ot procural programming, other paradigms required too much
processing power and so were not viable at the time (though this may
now not be the case) etc....and probably loads of others...take your
pick
From: Phlip on
alexcpn wrote:

> Now a sudden thought stuck me. What if sometime in the future somebody
> armed with concrete statistics come and tell me that OO is too
> complicated and that most of the key words which we swear by like
> inheritance, polymorphisms etc really do not provide much value to the
> vast millions of OO code out there; I really believe part of this
> since I know a little about the code in one of the largest OO code
> base in the telecom network management product that I work in.

OO is not a methodology, so it can't suck. It's a tool. Hammers suck if you
need a screwdriver. A methodology sucks if it tells you to always use a
hammer.

If you define OO as "polymorphic methods behind encapsulating interfaces",
then saying "OO sucks" is the same as saying "polymorphism sucks", which is
trivially false.

Someday a better tool will arrive. OO won't suddenly start sucking. Hammers
were invented 1.5 million years ago, yet we still use them.

--
Phlip
http://www.oreilly.com/catalog/9780596510657/
^ assert_xpath

From: Daniel T. on
alexcpn <alexcpn(a)gmail.com> wrote:

> Recently I attended a seminar on Agile process which actually exposed
> the huge inefficiencies we where following in the waterfall method.It
> was a sudden awakening into something that you had an inking off long
> back.
>
> I have been developing software using OO A& D in C++ for over 5
> years , and have increasingly used more and more elegant/complicated
> designs; this is because I like programming and I also believed I was
> adding value. Have I modified source - yes a lot. Was the product
> successful - yes I guess.
>
> Now a sudden thought stuck me. What if sometime in the future somebody
> armed with concrete statistics come and tell me that OO is too
> complicated and that most of the key words which we swear by like
> inheritance, polymorphisms etc really do not provide much value to the
> vast millions of OO code out there; I really believe part of this
> since I know a little about the code in one of the largest OO code
> base in the telecom network management product that I work in.
>
> Maybe I should frame the question more clearly- what is it so special
> in OO that makes it so successfully industrially. I really don't
> 'believe' that it is because of the way OO entity help us in closely
> modeling real life etc
>
> Is it the Open Closed Principle
> Or is it because there are not many choices
>
> This post is very subjective and probably I guess because of my lack
> of knowledge in many ares; anyway I am posting this for what it is
> worth so that I hope to get some illuminating replies

What is so special about OO is that it allows us to move up a level of
abstraction. I recently was doing some maintenance on C++ code that
manipulated some const char*s. The code had all kinds of temp pointers
and was doing all kinds of low level work. Rather than beat myself up
looking for the bug, I replaced the code and used a string class. That
increase in abstraction reduced the complexity of the code in every
measurable way and fixed the bug.

Note, the above has nothing to do with polymorphism.
From: Mark Nicholls on
On 11 Jan, 16:49, "Daniel T." <danie...(a)earthlink.net> wrote:
> alexcpn <alex...(a)gmail.com> wrote:
> > Recently I attended a seminar on Agile process which actually exposed
> > the huge inefficiencies we where following in the waterfall method.It
> > was a sudden awakening into something that you had an inking off long
> > back.
>
> > I have been developing software using OO A& D in C++ for over 5
> > years , and have increasingly used more and more elegant/complicated
> > designs; this is because I like programming and I also believed I was
> > adding value. Have I modified source - yes a lot. Was the product
> > successful - yes I guess.
>
> > Now a sudden thought stuck me. What if sometime in the future somebody
> > armed with concrete statistics come and tell me that OO is  too
> > complicated and that most of the key words which we swear by like
> > inheritance, polymorphisms etc really do not provide much value to the
> > vast millions of OO code out there; I really believe part of this
> > since I know a little about the code in  one of the largest OO code
> > base in the telecom network management  product that I work in.
>
> > Maybe I should frame the question more clearly- what is it so special
> > in OO that makes it so successfully industrially. I really don't
> > 'believe' that it is because of the way OO entity help us in closely
> > modeling real life etc
>
> > Is it the Open Closed Principle
> > Or is it because there are not many choices
>
> > This post is very subjective and probably I guess because of my lack
> > of knowledge in many ares; anyway I am posting this for what it is
> > worth so that I hope to get some illuminating replies
>
> What is so special about OO is that it allows us to move up a level of
> abstraction. I recently was doing some maintenance on C++ code that
> manipulated some const char*s. The code had all kinds of temp pointers
> and was doing all kinds of low level work. Rather than beat myself up
> looking for the bug, I replaced the code and used a string class. That
> increase in abstraction reduced the complexity of the code in every
> measurable way and fixed the bug.
>
> Note, the above has nothing to do with polymorphism.- Hide quoted text -
>
> - Show quoted text -

Surely this sort of thing is possible in other paradigms.