From: topmind on


S Perryman wrote:
> topmind wrote:
>
> > 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.
>
> >>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?
>
> All of those people who have used it to implement systems at worst
> as well as preceding paradigms, and at best much better.

I've heard a lot of complaints about OO failures also, especially when
they don't have to go on official record.

>
>
> > 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.
>
> No. It "turns out" that the problems that your mythical "biz apps" have
> to solve have no real need for OOP beyond the approaches you espouse.
>
> Nothing wrong with that.
>
> However, for many of the types of problem that others face (telecoms etc) ,
> the approaches you espouse have been shown to be badly wanting (note to
> the reader : topmind does not like to discuss them because they are not
> his mythical "biz apps" and he knows his flawed claims immediately die a
> horrible death) .
>

Perhaps. In the past didn't you claim that RDBMS were "too slow", not
that they were the wrong paradigm from organizational perspective?

Note that I worked on big telecom billing and marketing apps, and they
didn't use a lot of OOP

And books etc. don't limit the scope of OO to domains, implying
everywhere is fine.

>
> > 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.
>
> OO is orthogonal to "collection-oriented" programming and set theory.
> And is easily capable of dealing with, and operating in, environments in
> which collections/sets of entities are required.
>
>
> Regards,
> Steven Perryman
From: rugby fan on
topmind wrote:

> S Perryman wrote:

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

TM>Who says its successful?

>>All of those people who have used it to implement systems at worst
>>as well as preceding paradigms, and at best much better.

> I've heard a lot of complaints about OO failures also, especially when
> they don't have to go on official record.

I've experienced a lot of complaints about "procedural/relational"
failures too. Some I have been first-hand witness to.

As with any method/process/paradigm, I am interested in why one succeeds
and one fails. Are you ??


TM>I've challenged OO fans to prove it objectively better for custom biz
TM>apps for over a decade, and they CANNOT show it with source code. It
TM>always turns into my personal preference versus theirs, not some clear-
TM>cut quantity. I don't dispute that OO may model *some* people's brains
TM>better than others, but every brain is different.

>>No. It "turns out" that the problems that your mythical "biz apps" have
>>to solve have no real need for OOP beyond the approaches you espouse.

>>Nothing wrong with that.

>>However, for many of the types of problem that others face (telecoms etc) ,
>>the approaches you espouse have been shown to be badly wanting (note to
>>the reader : topmind does not like to discuss them because they are not
>>his mythical "biz apps" and he knows his flawed claims immediately die a
>>horrible death) .

> Perhaps. In the past didn't you claim that RDBMS were "too slow", not
> that they were the wrong paradigm from organizational perspective?

I have worked on telecoms systems where RDBMS have been used, and have
failed. Both times was that it was just the wrong paradigm.

The first didn't ostensibly affect performance, although development
was tedious and painful.

The second certainly did, and was a big joke for a big telecoms company.


> Note that I worked on big telecom billing and marketing apps, and they
> didn't use a lot of OOP

Billing systems (traditionally - not so much now due to the rise of the
rating process etc) don't really need OO.


> And books etc. don't limit the scope of OO to domains

A "domain" is a subject domain, something of fact/interest for which
people wish to build systems to provide some useful purpose for that
domain.


> implying everywhere is fine.

A completely meaningless statement.


[ my reply to you on OO and "lessons" - and your non-answer thereof -
is duly noted as revealing fallacy on your part. ]


Regards,
Steven Perryman
From: S Perryman on
topmind wrote:

> S Perryman wrote:

TM>What "variant record problem"?

TM>I've asked for this in the past

>>The "issue" of :

>>1. having a set of related entities, all/some having the same
>>properties, and each having properties specific to itself. Users of
>>the entities may wish to reference instances of the set as an entity
>>that has properties in common, or as the specific entity type.

>>2. changing the properties of any member of the
>>set, without affecting/impacting the other members (interface, impl) .

>>3. changing the representations (impls) of any member of the
>>set, without affecting/impacting the other members (interface, impl) .

>>4. changing the code written by users of the entity set, whenever the
>>members of the set changes.

>>5. correctness (being able to confirm the attempted use of properties
>> that do or do not belong to members of the set) .

>>All of these issues are known to experienced developers having faced
>>the variant record problem.

>>Similarly, said developers know that various programming paradigms/
>>langs can solve some of the problems, but not all. Type substitutability
>>(when used with other constructs/techniques) allows all of them to be
>>resolved.

TM> but nobody shown a practical example

>>Strange. Because "practical examples" are so easy to define.
>>And a basic example exists in a book you have so often claimed to debunk.

> Then it should be easy for you to bring one up without fuss or muss.

Object Oriented Software Construction 2. Page 62. The PUBLICATION type.
Note for readers : the example is about publications (books, journals etc)
that have properties in common (author etc) and properties specific to
each. Publications that would be used in a library system (biblio search
etc) .

Feel free to show us how "procedural/relational" addresses the problems of
1-5 that I have already listed. If you can do the following :

- explain the mechanism needed to address the problem
- give citations to *existing* prog langs that support the mechanism

that would be much appreciated by readers IMHO.

So, in your own time ...


Regards,
Steven Perryman
From: topmind on
On Jan 17, 1:00 pm, S Perryman <q...(a)q.com> wrote:
> topmind wrote:
> > S Perryman wrote:
>
> TM>What "variant record problem"?
>
> TM>I've asked for this in the past
>
>
>
>
>
> >>The "issue" of :
> >>1. having a set of related entities, all/some having the same
> >>properties, and each having properties specific to itself. Users of
> >>the entities may wish to reference instances of the set as an entity
> >>that has properties in common, or as the specific entity type.
> >>2. changing the properties of any member of the
> >>set, without affecting/impacting the other members (interface, impl) .
> >>3. changing the representations (impls) of any member of the
> >>set, without affecting/impacting the other members (interface, impl) .
> >>4. changing the code written by users of the entity set, whenever the
> >>members of the set changes.
> >>5. correctness (being able to confirm the attempted use of properties
> >>   that do or do not belong to members of the set) .
> >>All of these issues are known to experienced developers having faced
> >>the variant record problem.
> >>Similarly, said developers know that various programming paradigms/
> >>langs can solve some of the problems, but not all. Type substitutability
> >>(when used with other constructs/techniques) allows all of them to be
> >>resolved.
>
> TM> but nobody shown a practical example
>
> >>Strange. Because "practical examples" are so easy to define.
> >>And a basic example exists in a book you have so often claimed to debunk..
> > Then it should be easy for you to bring one up without fuss or muss.
>
> Object Oriented Software Construction 2. Page 62. The PUBLICATION type.
> Note for readers : the example is about publications (books, journals etc)
> that have properties in common (author etc) and properties specific to
> each. Publications that would be used in a library system (biblio search
> etc) .

I happened to discuss that very example as part of my OOSC2 critique
several years ago:

http://www.geocities.com/tablizer/lib.htm

I generally proposed a "feature table" instead of hierarchies (which
wouldn't surprise those familiar with my modeling philosophy). The
traditional OO solution of subtyping is not sufficient enough and not
as powerful as feature sets. Just about ANY non-trivial classification
system will grow to be non-tree over time. Trees are limiting (unless
one duplicates leaves, which is bad modelling if done often). Some OO
fans may even recommend dynamic composition (HAS-A)instead of
subtyping (but then they are reinventing an ugly navigational database
which are the Go To equiv of structures).

Plus, some fuss over "wasting columns" that are not used for a
parrticular instance. Modern RDBMS do not used fixed column widths
internally and thus unused fields take very little or no bytes,
depending on the implimentation.

Your complaints are too tree-based and based on 70's database
technology. Get with the times and get with Set Theory.

Excerpts:

My business software experience tells me that anything dealing with
variations (subtypes) MUST be flexible. In this example, new mediums
(variations) were being added as I watched: They had videos, CD's, and
even training software in their library. What new media and
publication types will there be in the future? What about hybrids?
What about a book that also contains a CD or video? [common for tech
books] The mutually exclusiveness of traditional OO types is now a
poor model for our "has X and Y".

Suppose videos were added as a publication type. "Length" (duration)
is proposed as one of the new fields pertaining to videos. After
several months go by, someone points out that Length can pertain to
other publication types. For example, almost anything with paper can
have "number of pages". Software can even have it's size in "K" or
"megs" as it's length. (One might also want to think about having a
"Unit_of_Measure" field to make it more open ended. Unit-of-Measure
could be pages, minutes, megabytes, etc. The unit-of-measure could be
tied to the item type so that it does not have to be retyped for every
entry.)

In the OO tree approach, first the programmer will add Length to the
Video subtype. Then when it is later agreed to have Length apply to
other types as well, the programmer has to come back in and move the
field Length back to the root class (Publications). In the feature-
list approach, the "Field Administrator" only has to open up the type
control table and make a few simple mouse or keyboard clicks. It is in
essence, "subtype painting by number." (The "Field Administrator" may
or may not be a programmer.)

It is often not practical to expect a programmer to come tromping in
every time a new variation is added or changed. That can be expensive,
especially if a new (turnover) programmer has to reverse-engineer the
existing code, which they will not be familiar with. The feature-list
approach is much more flexible. It is often also safer because one
does not have to meddle in the code to add or change variations.

(end quote)
>
> Feel free to show us how "procedural/relational" addresses the problems of
> 1-5 that I have already listed. If you can do the following :
>
> - explain the mechanism needed to address the problem
> - give citations to *existing* prog langs that support the mechanism

They are called "relational tables". I suggest you read up on them.

>
> that would be much appreciated by readers IMHO.
>
> So, in your own time ...
>
> Regards,
> Steven Perryman- Hide quoted text -
>
> - Show quoted text -

-T-
From: topmind on


rugby fan wrote:
> topmind wrote:
>
> > S Perryman wrote:
>
> A>Maybe I should frame the question more clearly- what is it so special
> A>in OO that makes it so successfully industrially. I really don't
> A>'believe' that it is because of the way OO entity help us in closely
> A>modeling real life etc
>
> TM>Who says its successful?
>
> >>All of those people who have used it to implement systems at worst
> >>as well as preceding paradigms, and at best much better.
>
> > I've heard a lot of complaints about OO failures also, especially when
> > they don't have to go on official record.
>
> I've experienced a lot of complaints about "procedural/relational"
> failures too. Some I have been first-hand witness to.

A lot of the times it is just bad programming/design, or limiting
tools. For example, Oracle is kind of stiff and bulky for projects
that need to be nimble. That is not the fault of relational in
general, but a misapplied vendor's product.

Are we comparing bad OO to bad P/R? I'd take bad P/R over bad OO
because bad P/R tends to be more predictable in where it goes wrong.
Bad OO can be very messy because somebody may inject some screwy
philosophical underpinnings into their design. OO tends to attract
methodology fad zealots, while P/R less so.

If you want to create and compare a sample app to show OO being good,
how about using Robert Martin's payroll example:

http://www.geocities.com/tablizer/payroll2.htm

An approximate version of what's in Robert Martin's OO code from the
book can be found here:

http://www.codeproject.com/KB/books/PatternsPractices.aspx


>
> As with any method/process/paradigm, I am interested in why one succeeds
> and one fails. Are you ??
>

Indeed. In my opinion, OO tends to fail or bog down because it does
not take advantage of Set Theory and the inspectability of tables over
code. Code is just harder to read, search, and sift for many or most
than the equivalent in a DB. Plus, power-users can update product
classification tables (via screens) easier and cheaper than
programmers changing OO subclasses. OO is job security for
programmers, turning them into overpayed classification clerks, but
not a lot of efficiency.

>
> TM>I've challenged OO fans to prove it objectively better for custom biz
> TM>apps for over a decade, and they CANNOT show it with source code. It
> TM>always turns into my personal preference versus theirs, not some clear-
> TM>cut quantity. I don't dispute that OO may model *some* people's brains
> TM>better than others, but every brain is different.
>
> >>No. It "turns out" that the problems that your mythical "biz apps" have
> >>to solve have no real need for OOP beyond the approaches you espouse.
>
> >>Nothing wrong with that.
>
> >>However, for many of the types of problem that others face (telecoms etc) ,
> >>the approaches you espouse have been shown to be badly wanting (note to
> >>the reader : topmind does not like to discuss them because they are not
> >>his mythical "biz apps" and he knows his flawed claims immediately die a
> >>horrible death) .
>
> > Perhaps. In the past didn't you claim that RDBMS were "too slow", not
> > that they were the wrong paradigm from organizational perspective?
>
> I have worked on telecoms systems where RDBMS have been used, and have
> failed. Both times was that it was just the wrong paradigm.
>
> The first didn't ostensibly affect performance, although development
> was tedious and painful.
>
> The second certainly did, and was a big joke for a big telecoms company.
>

Write up a paper about how relational cannot handle such and such. Us
relational fans would like to study the problem in detail. Just
because your company couldn't pull it off does not mean it cannot be
done. Perhaps you are just not experienced enough with it.

>
> > Note that I worked on big telecom billing and marketing apps, and they
> > didn't use a lot of OOP
>
> Billing systems (traditionally - not so much now due to the rise of the
> rating process etc) don't really need OO.
>
>
> > And books etc. don't limit the scope of OO to domains
>
> A "domain" is a subject domain, something of fact/interest for which
> people wish to build systems to provide some useful purpose for that
> domain.
>
>
> > implying everywhere is fine.
>
> A completely meaningless statement.

OO authors rarely put scope limitations on OO claims. Thus, newbies go
around sticking OO into everything and their dogs, making messes.

>
>
> [ my reply to you on OO and "lessons" - and your non-answer thereof -
> is duly noted as revealing fallacy on your part. ]

Perryland reality. Kiss Goofy while you are there.

>
>
> Regards,
> Steven Perryman

-T-