|
Prev: Proxy pattern: remote chat proxy and interfaces
Next: Derived class calling overriden base class methods
From: Daniel T. on 11 Jan 2008 18:55 ram(a)zedat.fu-berlin.de (Stefan Ram) wrote: > "Daniel T." <daniel_t(a)earthlink.net> writes: > > I replaced the code and used a string class. > > If you were using a non object-oriented, but procedural and > possibly modular language, possibly with support for abstract > data types and possibly even with garbage collection for > strings (as in BASIC), you could have said this as well: > > �I replaced the code and used the/a string library/module.� > > If it had garbage collection for strings, this feature might > even avoid more trouble than the string class in C++. > > So, what was /specifically/ object-oriented about your > approach, that could not be done in a non object-oriented, but > procedural and possibly modular language? > Nothing. All OO concepts existed in earlier paradigms and were used by the best programmers. OO is not some radical new concept in software engineering, it is merely the latest stage in the evolutionary development of our craft.
From: Daniel T. on 11 Jan 2008 18:58 Mark Nicholls <Nicholls.Mark(a)mtvne.com> wrote: > "Daniel T." <danie...(a)earthlink.net> wrote: > > What is so special about OO is that it allows us to move up a level of > > abstraction. > > Surely this sort of thing is possible in other paradigms. Of course it is. Everything possible in SmallTalk, Python, or C++ is also possible in C (or assembler for that matter.) Note, there is a distinction between "possible" and "easy".
From: topmind on 12 Jan 2008 20:25 alexcpn 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 Who says its successful? Its one of those things that people pay lip- service to because they have been brainwashed into believing it is better for you, as if it was broccoli; yet there is no SCIENTIFIC EVIDENCE that OOP is better. NONE (at least for biz apps). I've challenged OO fans to prove it objectively better for custom biz apps for over a decade, and they CANNOT show it with source code. It always turns into my personal preference versus theirs, not some clear- cut quantity. I don't dispute that OO may model *some* people's brains better than others, but every brain is different. The biggest fault of OO is that it does NOT take the lessons of collection-oriented programming and set theory. It degenerates into a mess of pointers, the GO TO of the new era. > > 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 oop.ismad.com -T-
From: topmind on 12 Jan 2008 20:28 On Jan 11, 8:49 am, "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. C is NOT the pinnacle of procedural programming, and so is not a good example. You are using Yugo's to represent cars. > > Note, the above has nothing to do with polymorphism. oop.ismad.com -T-
From: topmind on 12 Jan 2008 20:31
S Perryman wrote: > Dmitry A. Kazakov wrote: > > > On Fri, 11 Jan 2008 11:49:28 -0500, Daniel T. wrote: > > >>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. > > > Yep, this is just ADT. > > > The question wether programming with ADTs or programming with sets of ADTs > > (polymorphism falls here) is essential to OOP is open. However moving up > > abstraction levels obviously requires the latter. > > Type substitutability is what OOP (Simula) brought to the game (via > inheritance) . Type substitutability is a good means of implementing the > Open-Closed Principle, solving all the grief of the "variant record" > problem (coupling etc) . What "variant record problem"? I've asked for this in the past, but nobody shown a practical example, just hand waving about some vague issue they saw in 1972. > > Of course, just as ADT programming does not require OO prog langs, neither > does type substitutability (FP langs etc) . But the fact that OOP supports > both ADTs and type substitutability has been a key factor in its success. > > > Regards, > Steven Perryman -T- oop.ismad.com |