dbTalk Databases Forums  

Do Object Oriented Database Live Up to the Hype???

comp.databases.object comp.databases.object


Discuss Do Object Oriented Database Live Up to the Hype??? in the comp.databases.object forum.



Reply
 
Thread Tools Display Modes
  #71  
Old   
robertcwatson
 
Posts: n/a

Default Re: Do Object Oriented Database Live Up to the Hype??? - 09-19-2003 , 01:58 PM







You are missing a clear

understanding of the computational model underlying almost all OO

programming languages, and that computational model is as linear
as a Turing

Quote:
Machine.


Could you elaborate please?


--
Posted via http://dbforums.com


Reply With Quote
  #72  
Old   
andrewst
 
Posts: n/a

Default Re: Do Object Oriented Database Live Up to the Hype??? - 09-19-2003 , 03:16 PM







Originally posted by Bob Badour

Quote:
"andrewst" <member14183 (AT) dbforums (DOT) com> wrote in message

news:3390102.1063974255 (AT) dbforums (DOT) com"]news:3390102.1063974255@d-
bforums.com[/url]...

Originally posted by Bob Badour

"Steve Rawley" <steve (AT) rawley (DOT) org.invalid> wrote in
message

news:bkd9pt0ta1 (AT) enews4 (DOT) newsguy.com"]news:bkd9pt0ta1@ene-
ws4.newsguy.com[/url]"]> But if and when you've

arrived at OO as your development methodology, we

can talk about why it might be better to persist your
objects as

objects

(rather than creating tuples from them and pumping them out
to

an RDB).

What objection do you have to combining objects as
tuples?

Let me guess: something about taking your car apart at night to
put it

in the garage?



Where do you get the taking apart bit from parking two cars in
the same

garage? Since tuples are transparent, it's actually much more
like parking

several cars in the same driveway or parking lot.
I was refering to "...better to persist your objects as objects
(rather than creating tuples from them..." , not to your response to
that per se.



That to me suggested (advising against) breaking an object down into
several tuples. And the old car analogy cliche sprang to mind...


--
Posted via http://dbforums.com


Reply With Quote
  #73  
Old   
Guillermo Schwarz
 
Posts: n/a

Default Re: Do Object Oriented Database Live Up to the Hype??? - 10-05-2003 , 11:09 PM




"Bob Badour" <bbadour (AT) golden (DOT) net> escribió en el mensaje
news:UgG8b.242$yZ2.13422648 (AT) mantis (DOT) golden.net...
Quote:
"Bob Nemec" <bobn (AT) rogers (DOT) com> wrote in message
news:3f62363f (AT) news (DOT) totallyobjects.com...
...

The primary
reason, IMO, is that most people don't really do 'OO' ... as a Smalltalk
programmer I find most C++ & Java examples to be conventional procedural
code with some object-like data structures: not OO is the full sense.

Well, that's the typical arrogant sanctimony I expect from smalltalk
programmers. I find it interesting that I have yet to meet a smalltalk
programmer who can articulate what that "full sense" is.
All objects belong to a class. All classes form a hierarchy so that:

1. Most methods are "reused" from the top.
2. No class has spurious methods.
3. The class hierarchy is deep.
4. Most classes have few methods (no more than 10).
5. Most methods are small (no more than 10 lines).
6. Classes are simple and easy to use. Each class represents a single
concept and it is almost impossible to use it in a wrong way.
7. When new functionality must be added, most of the functionality can be
added using the "template method" pattern.
8. Most of the code follows the DRY principle.

Cheers,
Guillermo.




Reply With Quote
  #74  
Old   
Bob Nemec
 
Posts: n/a

Default Re: Do Object Oriented Database Live Up to the Hype??? - 10-06-2003 , 07:38 AM



Excellent summary.
Thanks,
--
Bob Nemec
Northwater Objects

"Guillermo Schwarz" <guillermo_schwarz (AT) hotmail (DOT) com> wrote

Quote:
"Bob Badour" <bbadour (AT) golden (DOT) net> escribió en el mensaje
news:UgG8b.242$yZ2.13422648 (AT) mantis (DOT) golden.net...
"Bob Nemec" <bobn (AT) rogers (DOT) com> wrote in message
news:3f62363f (AT) news (DOT) totallyobjects.com...
...

The primary
reason, IMO, is that most people don't really do 'OO' ... as a
Smalltalk
programmer I find most C++ & Java examples to be conventional
procedural
code with some object-like data structures: not OO is the full sense.

Well, that's the typical arrogant sanctimony I expect from smalltalk
programmers. I find it interesting that I have yet to meet a smalltalk
programmer who can articulate what that "full sense" is.

All objects belong to a class. All classes form a hierarchy so that:

1. Most methods are "reused" from the top.
2. No class has spurious methods.
3. The class hierarchy is deep.
4. Most classes have few methods (no more than 10).
5. Most methods are small (no more than 10 lines).
6. Classes are simple and easy to use. Each class represents a single
concept and it is almost impossible to use it in a wrong way.
7. When new functionality must be added, most of the functionality can be
added using the "template method" pattern.
8. Most of the code follows the DRY principle.

Cheers,
Guillermo.





Reply With Quote
  #75  
Old   
Bob Badour
 
Posts: n/a

Default Re: Do Object Oriented Database Live Up to the Hype??? - 10-06-2003 , 08:23 PM



"Guillermo Schwarz" <guillermo_schwarz (AT) hotmail (DOT) com> wrote

Quote:
"Bob Badour" <bbadour (AT) golden (DOT) net> escribió en el mensaje
news:UgG8b.242$yZ2.13422648 (AT) mantis (DOT) golden.net...
"Bob Nemec" <bobn (AT) rogers (DOT) com> wrote in message
news:3f62363f (AT) news (DOT) totallyobjects.com...
...

The primary
reason, IMO, is that most people don't really do 'OO' ... as a Smalltalk
programmer I find most C++ & Java examples to be conventional procedural
code with some object-like data structures: not OO is the full sense.

Well, that's the typical arrogant sanctimony I expect from smalltalk
programmers. I find it interesting that I have yet to meet a smalltalk
programmer who can articulate what that "full sense" is.

All objects belong to a class.
Trivially true (even for C++ and Java not that they have anything to
do with data management.)


Quote:
All classes form a hierarchy so that:
I respectfully suggest that classes or types naturally form a DAG and
not a hierarchy. (Not that C++ or Java do any better with that than
Smalltalk, but I do think it demarks a clear cognitive bias among
Smalltalk practitioners who do not use an extended version of the
language supporting multiple inheritance.)


Quote:
1. Most methods are "reused" from the top.
Most but not all? Seems arbitrary and thoroughly subjective. Should I
note that (even in C++ and Java) reuse always happens from above?


Quote:
2. No class has spurious methods.
How is this property affected by the chosen language? What makes a
method spurious? How does a spurious method detract from the 'full
sense', which you have yet to describe? (A hodge-podge of arbitrary
rules for achieving a sense does not describe what the sense is.)


Quote:
3. The class hierarchy is deep.
I've seen some pretty deep hierarchies in C++ and in Java. How does
one know when one has reached the required depth of hierarchy? Can the
hierarchy ever be too deep? How does one know? After all, naively
maximizing depth will only maximize complexity. Does the 'full sense
of OO' equate to 'maximal complexity'?


Quote:
4. Most classes have few methods (no more than 10).
There goes that 'most' again. Why not all classes? Again, the
statement is meaningless due to its arbitrariness and subjectiveness.
Why 10 methods? Can smalltalk programmers only count using their
digits? What if my amp goes to 11? Does this mean that a mathematics
system with a class with methods for addition, subtraction,
multiplication, division, exponentiation, logarithm, sine, cosine,
tangent, secant, arcsine, arccosine, arctangent and arcsecant fails to
achieve OO-ness in its full sense? That wouldn't make OO-ness in its
full sense particularly attractive to me.


Quote:
5. Most methods are small (no more than 10 lines).
Most methods? Not all methods? How do we know when we have achieved
most-ness? Why 10 lines? Is this the finger thing again? If a
smalltalk programmer loses a pinkie in a tragic filing accident, does
he have to limit his methods to 9 lines?


Quote:
6. Classes are simple and easy to use. Each class represents a single
concept and it is almost impossible to use it in a wrong way.
VCR is a single concept, and mine is flashing 12:00am at me as I write
this. Come to think of it, I only use this VCR to elevate my monitor;
although, at one time, I used it as a television tuner by hooking it
to an old Commodore-64 monitor. Infinity is a single concept too.
Heck, logic is a single concept and I find it quite easy to use, but
lots of folks seem to disagree with me. Does this mean we can only
achieve OO-ness in its full sense by ignoring complex or difficult
things?


Quote:
7. When new functionality must be added, most of the functionality can be
added using the "template method" pattern.
Trivially true for any language supporting polymorphism (including C++
and Java not that they have anything to do with data management per
se.)


Quote:
8. Most of the code follows the DRY principle.
Most but not all...? From a data management perspective, the DRY
principle argues strongly for logical and physical independence as
well as logical identity.


Reply With Quote
  #76  
Old   
Guillermo Schwarz
 
Posts: n/a

Default Re: Do Object Oriented Database Live Up to the Hype??? - 10-10-2003 , 08:25 PM




"Bob Badour" <bbadour (AT) golden (DOT) net> escribió en el mensaje
news:cd3b3cf.0310061723.584e0d59 (AT) posting (DOT) google.com...
Quote:
"Guillermo Schwarz" <guillermo_schwarz (AT) hotmail (DOT) com> wrote

"Bob Badour" <bbadour (AT) golden (DOT) net> escribió en el mensaje
news:UgG8b.242$yZ2.13422648 (AT) mantis (DOT) golden.net...
"Bob Nemec" <bobn (AT) rogers (DOT) com> wrote in message
news:3f62363f (AT) news (DOT) totallyobjects.com...
...

The primary
reason, IMO, is that most people don't really do 'OO' ... as a
Smalltalk
programmer I find most C++ & Java examples to be conventional
procedural
code with some object-like data structures: not OO is the full
sense.

Well, that's the typical arrogant sanctimony I expect from smalltalk
programmers. I find it interesting that I have yet to meet a smalltalk
programmer who can articulate what that "full sense" is.

All objects belong to a class.

Trivially true (even for C++ and Java not that they have anything to
do with data management.)
It is important because an object cannot change classes dynamically. At
least not yet ;-)
Quote:

All classes form a hierarchy so that:

I respectfully suggest that classes or types naturally form a DAG and
DAG == Direct Acyclic Graph?

Quote:
not a hierarchy. (Not that C++ or Java do any better with that than
Smalltalk, but I do think it demarks a clear cognitive bias among
Smalltalk practitioners who do not use an extended version of the
language supporting multiple inheritance.)
C++ has multiple inheritance, so it has multiple path to get from one node
to the other, yet none of them have cycles when speaking of hierarchy, but
they do have cycles when instance variables and functinality is taken into
consideration.

Quote:

1. Most methods are "reused" from the top.

Most but not all? Seems arbitrary and thoroughly subjective. Should I
note that (even in C++ and Java) reuse always happens from above?
Usually you create applications by adding classes at the bottom
(subclasses), rather than by adding classes at the top (superclasses), so it
is the subclasses that generally reuse the code from the top.

If I'm missing something, please correct me.
Quote:

2. No class has spurious methods.

How is this property affected by the chosen language?
It has nothing to do with the language but with the class hierarchy (or
should I rather say the class library?)

Quote:
What makes a
method spurious?
An spurious method is one that does not belong to the class, but was added
to the wrong class because refactoring the class library would be too
burdensome for the project at hand.

Sometimes you realize the methods are spurious long after the method was
written. I think XPers call that feature envy or something like that. I
might be wrong thought.

Quote:
How does a spurious method detract from the 'full
sense', which you have yet to describe?
A non-spurious method is one that actully belong to the class.

Quote:
(A hodge-podge of arbitrary
rules for achieving a sense does not describe what the sense is.)
You are right. This is a case of IKWISI (I'll Know It When I See It). To
make matters easier to understand, you create a class for one purpose and
only one purpose. Then you realize that in that purpose, there are really
two orthogonal purposes and the class must be divided in two. Then the
methods that belong to the *new* class are spurious, untill you remove them.
Quote:

3. The class hierarchy is deep.

I've seen some pretty deep hierarchies in C++ and in Java. How does
one know when one has reached the required depth of hierarchy?
I've never keep statistics of this, and I know I should have. IMHO it has to
do with the average number of direct subclasses. It should be a number
between 1 and 6, or maybe between 1 and 3. If the average is 20, probably
you are not reusing much.

Quote:
Can the
hierarchy ever be too deep?
I wonder the same. I've never done experiments about this, but I imagine
that it is possible to conceive a sublanguage of Smalltalk that would allow
to define only 1 method per class. Then all classes could be translated into
this new scheme. The purpose, try to reuse most of the methods. There are
some rough edges like what to do with instance variables, since you would
have to write either a setter or getter, it would be impossible to write
both.

So yes, it can be too deep if you don't write all required setters and
getters in the appropiate class. That of course never happens in real life,
so the answer IMHO is that it can never be too deep.

Actually I've never seen anything simpler than reading a hierarchical class
library. You just need to learn the classes at the top and the rest you can
learn when you actually need to. It is simple to find new classes.

Quote:
How does one know? After all, naively
maximizing depth will only maximize complexity.
How come?

Imagine compressing the class library into 10 classes. Then it would be very
hard to use. Where did you store the state of the XYZ object? Yes, in a X1
class, because that's all you have. Of course tht would mean you would never
create objects (they are too big) but reuse them, so most programs would be
a mess.

Also forget about subclassing those fat classes.

Quote:
Does the 'full sense
of OO' equate to 'maximal complexity'?
Maybe it does for you. For me, OO means deep hierarchies => each conceptual
object is represented by an object in the target languge, finding class is
easy because the hierarchy is deep, subclassing is easy because classes are
not too fat.
Quote:

4. Most classes have few methods (no more than 10).

There goes that 'most' again. Why not all classes?
Because programmers are lazy. ;-)

Let us suppose you are about to finish the system, you have 1 hour and you
need to add this 3 methods to the D class in the following hierarchy:

A -> B -> C -> D, so that D inherits from C and so on.

The four classes already has 10 methods.

Then you can create E, but most of the code alredy instantiates D, so you
would need at least 2 days to do that change.

What else can you do? Add a class E between C and D, so that C -> E -> D,
and add those 3 method there. But what if you need to access the instance
variables in D? You need to move the instance variables from D to E, but you
cn't move them all, or you will have to move all methods, so E will have the
same problem.

Quote:
Again, the
statement is meaningless due to its arbitrariness and subjectiveness.
Meaningless? Maybe arbitrary (which is the same as subjective), but I can
measure how many methods class has, so I have an objective and a way to
measure if I have achieved it, I don't see how it is meaningless.

Quote:
Why 10 methods?
Why not?

You need to establish limits. Yes they are arbitrary, as limits among
countries.

Quote:
Can smalltalk programmers only count using their
digits?
HA HA

Quote:
What if my amp goes to 11? Does this mean that a mathematics
system with a class with methods for addition, subtraction,
multiplication, division, exponentiation, logarithm, sine, cosine,
tangent, secant, arcsine, arccosine, arctangent and arcsecant fails to
achieve OO-ness in its full sense?
Only those methods? If you are creating a math system, probably you will
add a hundred methods like that. Also you will add the sqrt method, you can
do it at the Integer class and at the Float class. Then you write isqrt
which returns the integer part of sqrt, and of course you reuse sqrt, so you
write:

Number>>isqrt
^self isqrt asInteger.

Quote:
That wouldn't make OO-ness in its
full sense particularly attractive to me.
Then what would?

Quote:

5. Most methods are small (no more than 10 lines).

Most methods? Not all methods?
Well, maybe the if the Nazis had invented Smalltalk they would hve added
that requirement at the VM level, so that no Smalltalk program would have
run if they didn't comply. These are guidelines, not strict requirements,
relax.

Quote:
How do we know when we have achieved
most-ness?
That's a good question. What about "not more that 10% of the system does not
comply and the average is not exceeded by more than 10%".

Quote:
Why 10 lines?
Maybe I like the number 10?

Quote:
Is this the finger thing again?
Maybe.

Quote:
If a
smalltalk programmer loses a pinkie in a tragic filing accident, does
he have to limit his methods to 9 lines?
What is pinkie?
What is filing accident?
Quote:

6. Classes are simple and easy to use. Each class represents a single
concept and it is almost impossible to use it in a wrong way.

VCR is a single concept, and mine is flashing 12:00am at me as I write
this.
There is a problem between the VCR and the chair.

If the VCR is so simple, why doesn't it have a hard drive instead of the VHS
tape drive? Why doesn't it connect to the internet to synchronize the time?
Why doesn't it learn what I like to see and store my favorite programs?

You think the VCR is simple, but actually it is cumbersome and almost
useless.

Quote:
Come to think of it, I only use this VCR to elevate my monitor;
I see why.

Quote:
although, at one time, I used it as a television tuner by hooking it
to an old Commodore-64 monitor.
That's interesting.

Quote:
Infinity is a single concept too.
Heck, logic is a single concept and I find it quite easy to use, but
lots of folks seem to disagree with me. Does this mean we can only
achieve OO-ness in its full sense by ignoring complex or difficult
things?
I don't think OO is simple. You can get a PhD in OO. If you think OO is a
sham, it is probably because you haven't looked at it carefully.
Quote:

7. When new functionality must be added, most of the functionality can
be
added using the "template method" pattern.

Trivially true for any language supporting polymorphism (including C++
and Java not that they have anything to do with data management per
se.)
You understand patterns but you don't understand OO. Then you must be
manager.
Quote:

8. Most of the code follows the DRY principle.

Most but not all...? From a data management perspective, the DRY
principle argues strongly for logical and physical independence as
well as logical identity.
That statement is too abstract to be argued against. You can say the same
thing about anything, for example:

OOP "argues strongly for logical and physical independence as well as
logical identity".

Actually the DRY principle is the guiding rule for all the "most"s and "10"s
above.




Reply With Quote
  #77  
Old   
Bob Badour
 
Posts: n/a

Default Re: Do Object Oriented Database Live Up to the Hype??? - 10-11-2003 , 06:01 PM



"Guillermo Schwarz" <guillermo_schwarz (AT) hotmail (DOT) com> wrote

Quote:
"Bob Badour" <bbadour (AT) golden (DOT) net> escribió en el mensaje
news:cd3b3cf.0310061723.584e0d59 (AT) posting (DOT) google.com...
"Guillermo Schwarz" <guillermo_schwarz (AT) hotmail (DOT) com> wrote in message
news:<3f80eb0f$1 (AT) news (DOT) totallyobjects.com>...
"Bob Badour" <bbadour (AT) golden (DOT) net> escribió en el mensaje
news:UgG8b.242$yZ2.13422648 (AT) mantis (DOT) golden.net...
"Bob Nemec" <bobn (AT) rogers (DOT) com> wrote in message
news:3f62363f (AT) news (DOT) totallyobjects.com...
...

The primary
reason, IMO, is that most people don't really do 'OO' ... as a
Smalltalk
programmer I find most C++ & Java examples to be conventional
procedural
code with some object-like data structures: not OO is the full
sense.

Well, that's the typical arrogant sanctimony I expect from smalltalk
programmers. I find it interesting that I have yet to meet a
smalltalk
programmer who can articulate what that "full sense" is.

All objects belong to a class.

Trivially true (even for C++ and Java not that they have anything to
do with data management.)

It is important because an object cannot change classes dynamically. At
least not yet ;-)
I realise that english is probably not your first language. Do you
comprehend what "trivial" means?

You still have not explained what the "full sense" of OO is.


Quote:
All classes form a hierarchy so that:

I respectfully suggest that classes or types naturally form a DAG and

DAG == Direct Acyclic Graph?
Yes.


Quote:
not a hierarchy. (Not that C++ or Java do any better with that than
Smalltalk, but I do think it demarks a clear cognitive bias among
Smalltalk practitioners who do not use an extended version of the
language supporting multiple inheritance.)

C++ has multiple inheritance, so it has multiple path to get from one node
to the other, yet none of them have cycles when speaking of hierarchy, but
they do have cycles when instance variables and functinality is taken into
consideration.
As I said, neither C++ nor Java do much better than Smalltalk. Types or
classes, however, properly form a DAG.


Quote:
1. Most methods are "reused" from the top.

Most but not all? Seems arbitrary and thoroughly subjective. Should I
note that (even in C++ and Java) reuse always happens from above?

Usually you create applications by adding classes at the bottom
(subclasses), rather than by adding classes at the top (superclasses), so
it
is the subclasses that generally reuse the code from the top.
Do you have a point that wasn't already clearly a part of what I wrote
above?


Quote:
If I'm missing something, please correct me.
Do you comprehend "arbitrary" and "subjective" ?


Quote:
2. No class has spurious methods.

How is this property affected by the chosen language?

It has nothing to do with the language but with the class hierarchy (or
should I rather say the class library?)
In other words, this problem is not unique to Smalltalk.


Quote:
What makes a
method spurious?

An spurious method is one that does not belong to the class, but was added
to the wrong class because refactoring the class library would be too
burdensome for the project at hand.
You have not provided an answer; you have simply added an extra level of
misdirection. What makes a method belong to a class?


Quote:
Sometimes you realize the methods are spurious long after the method was
written. I think XPers call that feature envy or something like that. I
might be wrong thought.
In other words, whether a method is spurious or essential is entirely
arbitrary and subjective.


Quote:
How does a spurious method detract from the 'full
sense', which you have yet to describe?

A non-spurious method is one that actully belong to the class.
Your statement does not answer the question; it simply repeats the extra
level of misdirection above.


Quote:
(A hodge-podge of arbitrary
rules for achieving a sense does not describe what the sense is.)

You are right. This is a case of IKWISI (I'll Know It When I See It). To
make matters easier to understand, you create a class for one purpose and
only one purpose. Then you realize that in that purpose, there are really
two orthogonal purposes and the class must be divided in two. Then the
methods that belong to the *new* class are spurious, untill you remove
them.

I have seen plenty of C++ and Java code that matches the rather meandering
description above. I guess then you agree that C++ and Java code is OO in
the full sense.


Quote:
3. The class hierarchy is deep.

I've seen some pretty deep hierarchies in C++ and in Java. How does
one know when one has reached the required depth of hierarchy?

I've never keep statistics of this, and I know I should have. IMHO it has
to
do with the average number of direct subclasses. It should be a number
between 1 and 6, or maybe between 1 and 3. If the average is 20, probably
you are not reusing much.
It seems to me that with 20 subclasses you are reusing the superclass a lot
more than with 3 or 6 subclasses. Do you even know what you are saying? This
contradicts what you wrote previously on the same point.


Quote:
Can the
hierarchy ever be too deep?
[longwinded rambling "yes" snipped]


Quote:
How does one know? After all, naively
maximizing depth will only maximize complexity.

How come?
How not? Maximizing depth increases the number of types and the number of
edges in the inheritance DAG.


Quote:
Does the 'full sense
of OO' equate to 'maximal complexity'?

Maybe it does for you. For me, OO means deep hierarchies => each
conceptual
object is represented by an object in the target languge, finding class
is
easy because the hierarchy is deep, subclassing is easy because classes
are
not too fat.
How does a deep DAG make finding anything easy? Please explain with a
concrete example.


Quote:
4. Most classes have few methods (no more than 10).

There goes that 'most' again. Why not all classes?
[longwinded rambling non-answer snipped]


Quote:
Again, the
statement is meaningless due to its arbitrariness and subjectiveness.

Meaningless? Maybe arbitrary (which is the same as subjective), but I can
measure how many methods class has, so I have an objective and a way to
measure if I have achieved it, I don't see how it is meaningless.
Perhaps, when you realise the difference in meanings between "arbitrary" and
"subjective", you will have a better grasp of "meaning" itself.


Quote:
Why 10 methods?

Why not?
Indeed. Why not 9 methods or 11 methods? In computing, we generally only
recognize three numbers: 0, 1 and some arbitrarily large power of 2. Why 10?


Quote:
You need to establish limits.
Why? If a type has 12 essential methods, how would it fail to achieve the
nirvana of "full sense OO-ness" ?


Quote:
Can smalltalk programmers only count using their
digits?

HA HA

What if my amp goes to 11? Does this mean that a mathematics
system with a class with methods for addition, subtraction,
multiplication, division, exponentiation, logarithm, sine, cosine,
tangent, secant, arcsine, arccosine, arctangent and arcsecant fails to
achieve OO-ness in its full sense?

Only those methods? If you are creating a math system, probably you will
add a hundred methods like that.
Why? What else is necessary?


Quote:
Also you will add the sqrt method
The class or type already has exponentiation. Why wouldn't the design lose
its "full sense OO-ness" by adding a non-essential method even after it has
already exceeded the arbitrary limit you imposed?


Quote:
That wouldn't make OO-ness in its
full sense particularly attractive to me.

Then what would?
Utility. Aesthetics.


Quote:
5. Most methods are small (no more than 10 lines).

Most methods? Not all methods?

Well, maybe the if the Nazis had invented Smalltalk they would hve added
that requirement at the VM level, so that no Smalltalk program would have
run if they didn't comply. These are guidelines, not strict requirements,
relax.
A guide is only as valuable as the destination to which it directs one. I
still have yet to meet a smalltalk programmer who can articulate anything
useful regarding the so-called "full sense" they stupidly and arrogantly
disparage other programmers for failing to achieve.


Quote:
How do we know when we have achieved
most-ness?

That's a good question. What about "not more that 10% of the system does
not
comply and the average is not exceeded by more than 10%".
I cannot parse anything meaningful out of that, and I have above average
skills at parsing the english language.


Quote:
Why 10 lines?

Maybe I like the number 10?

Is this the finger thing again?

Maybe.

If a
smalltalk programmer loses a pinkie in a tragic filing accident, does
he have to limit his methods to 9 lines?

What is pinkie?
I guess the humour lost something in translation.

A pinkie is generally the shortest finger of the hand and the farthest
finger from the thumb (assuming five or more fingers per hand.)


Quote:
What is filing accident?
An accident that occurs while filing something.


Quote:
6. Classes are simple and easy to use. Each class represents a single
concept and it is almost impossible to use it in a wrong way.

VCR is a single concept, and mine is flashing 12:00am at me as I write
this.

There is a problem between the VCR and the chair.

If the VCR is so simple, why doesn't it have a hard drive instead of the
VHS
tape drive?
Because then I would not be able to play the movies I rent at blockbuster.
You are getting confused with the TIVO class.


Quote:
Why doesn't it connect to the internet to synchronize the time?
Because then it would tie up my fax line all the time.


Quote:
Why doesn't it learn what I like to see and store my favorite programs?
Because it is my VCR and not yours. It often stores my current favourite
movie.


Quote:
You think the VCR is simple, but actually it is cumbersome and almost
useless.
Bite your tongue! I use my VCR all the time. It's one of the most useful
toys I own, and I own a lot of toys.


Quote:
Come to think of it, I only use this VCR to elevate my monitor;

I see why.

although, at one time, I used it as a television tuner by hooking it
to an old Commodore-64 monitor.

That's interesting.

Infinity is a single concept too.
Heck, logic is a single concept and I find it quite easy to use, but
lots of folks seem to disagree with me. Does this mean we can only
achieve OO-ness in its full sense by ignoring complex or difficult
things?

I don't think OO is simple. You can get a PhD in OO. If you think OO is a
sham, it is probably because you haven't looked at it carefully.
What the hell gives you the idea I think OO is a sham?

Look, one can have a well-informed opinion regarding OO fully recognizing
the strengths and limitations, and one can still think smalltalk programmers
are a bunch of arrogant, dilettantish posers.


Quote:
7. When new functionality must be added, most of the functionality can
be
added using the "template method" pattern.

Trivially true for any language supporting polymorphism (including C++
and Java not that they have anything to do with data management per
se.)

You understand patterns but you don't understand OO. Then you must be
manager.
I have been writing OO'd software professionally since 1988 with tremendous
success. What makes you think I lack any understanding of OO? You clearly
lack a clue.


Quote:
8. Most of the code follows the DRY principle.

Most but not all...? From a data management perspective, the DRY
principle argues strongly for logical and physical independence as
well as logical identity.

That statement is too abstract to be argued against.
The statement is too correct to be argued against. If you comprehend the DRY
principle, you will obviously agree that it argues strongly for data
independence as well as logical identity.


Quote:
You can say the same
thing about anything, for example:

OOP "argues strongly for logical and physical independence as well as
logical identity".
Except that OOP does not. OOP generally specifies a computational model
relying on a linear address space where the physical location in the address
space determines identity (often spuriously.)

DRY argues neither for nor against OOP, per se, but it argues very strongly
for data independence and logical identity for data management.


Quote:
Actually the DRY principle is the guiding rule for all the "most"s and
"10"s
above.
I find your last statement simply non sequitur.




Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.