Re: Why is Object Oriented so successfull



topmind wrote:

On Jan 18, 10:04 am, S Perryman <q...@xxxxx> wrote:

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

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

And a lot of the time it is the paradigm itself being used for something
it is not best suited for.

Unicorns unicorns unicorns.

Are we comparing bad OO to bad P/R?

Are we comparing 'good OO' to 'good P/R' ??

No answer to this one. Or in topmind speak : Unicorns unicorns unicorns.


TM>I'd take bad P/R over bad OO
TM>because bad P/R tends to be more predictable in where it goes wrong.

Of course, you have *objective* evidence that all of the rhetoric above
is anything other than an ignorant, uneducated rant ...

No, that is a personal observation/anecdote.

Of what ??
Real systems that you have implemented using OO ??
The source code of systems implemented using OO, that you have read
first-hand ??


If only objective facts
were allowed on comp.object, then there would only be like one post a
month.

At least I know when my observations or opinions are not objective
info.

As evidenced by the reams of "IMHO" etc we can find littered in your
umpteen postings (LOL) ...


[ Robert Martins' payroll system stuff snipped - dealt with elsewhere ... ]


2. OO does take advantage of set theory, because it is *orthogonal* to
set theory.

Bull. If you use giant navigational object pointer structures, you are
NOT using direct sets.

You obviously don't understand set theory.
There is no such thing as "direct" sets. A set is a set is a set.

In a computer system, the concepts of set theory have to be *implemented*
in a computer-executable form. The choice of implementation is chosen as
appropriate for a systems' needs.


Using both is likely unnecessary duplication.

Which of course is a meaningless statement.


3. OO does not use *particular implementations* of set theory imposed by
certain products, because they conflict with the ADT concept (encapsulation
of behaviour + representation) . The desire for an RDB that is compatible
with the ADT model (and programming languages thereof) is one that is very
strong for experienced OO practitioners.

ADT's are not always the right tool.

ADTs are always the right tool.
Because ADTs present their properties in an implementation-independent form.

A user of any instance of an ADT T cannot make the following assumptions :

- whether each property of T is implemented in terms of data (variables
etc) , a computational process (algorithm etc) , or both.
- that all instances purporting to be of type T implement their properties
in the same way.


Given this, degenerate cases are possible, and allowed. For example :

- all properties of T are implemented solely in terms of data
- all instances of T share the same implementation

Do you recognise this degenerate case ... ??


If you don't mind, I'd like to see some sample data. It may help
clarify some of the domain lingo.

No problem.

1. Entities

Managed Resource (some properties)
Equipment (some more properties) IS A Managed Resource
Network (even more properties) IS A Managed Resource
Line Card (yet more properties) IS A Equipment
Connection (god, more properties) IS A Managed Resource
Endpoint (bloody hell) IS A Managed Resource
PSTN Endpoint (you're having a laugh) IS A Endpoint
PSTN Connection ...


2. Tree construction

node : parent = E1 (entity type 1) , child = E2 (entity type 2)

So a node would be :

some E1 (parent) --- any number of E2 (children)

But not quite that simple. The node template specs allows for
any entity type that is also an instance of E1 *or* E2.

So you can have the following forms of template :

n1 : parent = Connection, child = Endpoint
n2 : parent = Connection, or any entity which ISA Connection
child = Endpoint
n3 : parent = Connection,
child = Endpoint, or any entity which ISA Endpoint
n4 : parent = Connection, or any entity which ISA Connection
child = Endpoint, or any entity which ISA Endpoint

So a tree constructed

from n1 :

Connection --- Endpoint

from n2 :

Connection (or PSTN Connection, or ... ) --- Endpoint

from n3 :

Connection --- Endpoint (or PSTN Endpoint, or ...)

from n4 :

Connection (or PSTN Connection ... ) --- Endpoint (or PSTN Endpoint ...)


So, according to the templates used for real, the tree is going to contain
at least 2.5 million nodes.


And I repeat, most non-trivial biz
apps cannot effectively use hierarchical subtyping.

Proven wrong by the numerous real-world OO implementations of the problem
(and its kin) that I have given you.


It WILL become a mess

Proven wrong by the numerous real-world OO implementations of the problem
(and its kin) that I have given you.


Regards,
Steven Perryman
.



Relevant Pages

  • Re: GRANT CONNECT to group? - How?
    ... Since you created a SQL Server login, ... If the web service is running already under a domain account, ... then you should be able to make a trusted connection ... the account can use the endpoint. ...
    (microsoft.public.sqlserver.connect)
  • Re: Numpty VPN questions
    ... You can do VPN server and client in software, ... The vigor router acts as a VPN endpoint - i.e. it does the ... VPN connection to this would be the easiest way to go. ...
    (uk.comp.sys.mac)
  • Re: Snoop Protocol; Caching
    ... Some DLink routers and AP's have a setting for endpoint filtering and it ... the NAT will forward any incoming connection requests ... connectivity and allowing some applications (P2P applications in ... Note the "regardless of their origin" ...
    (alt.internet.wireless)
  • Re: extremely slow to ssh out from my machine
    ... That system call only creates a UDP socket (without giving it ... an address or doing any lookup - it just creates a "connection ... endpoint" on your machine, that later has to be explicitly ...
    (Debian-User)