|
Prev: Proxy pattern: remote chat proxy and interfaces
Next: Derived class calling overriden base class methods
From: alexcpn on 11 Jan 2008 07:07 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 11 Jan 2008 08:18 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 11 Jan 2008 08:09 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 11 Jan 2008 11:49 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 11 Jan 2008 11:55
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. |