On 12/9/13 12:11 AM, Steven D'Aprano wrote:
On Sun, 08 Dec 2013 15:01:59 -0800, Mark Janssen wrote:

On Sun, Dec 8, 2013 at 2:33 AM, Steven D'Aprano
<steve+comp.lang.pyt...@pearwood.info> wrote:
On Sat, 07 Dec 2013 20:21:06 -0800, Mark Janssen wrote:

Is it just me, or is this basically useless?

class object
  |  The most *base* type

[[Terry Reedy:]]
How about something like.
The default top *superclass* for all Python classes.

How 'bout you foo<l>s just admit that you didn't realize you've been
confused this whole time?  (It *is* possible isn't it?)

Mr. Ewing says "base" has to be interpreted as an *adjective* because
otherwise it would mean the BOTTOM (like the BASE of the pyramid),
while Terry responds that it is the TOP (*super*class).  Earlier,
Steven D'Aprano wanted to argue that this distinction was irrelevant,

What are you talking about? Until this very post, I haven't made any
comments in this thread.

It was a few months ago.  You do know what I'm talking about because you
just expounded with the exact same argument below.  It's like a broken
record.

While I am gratified that you apparently memorise and obsess over things
I wrote months ago, I'm sorry to tell you that I wasn't lying when I said
that I didn't know what you were talking about. I had no idea that you
were referring to a completely different conversation, nor do I recall
every post I write here.

If I repeated the same argument, it is because the argument is still
valid. Drawing the root of the tree at the top of the page is just a
convention, just driving on the left side of the road, or calling the
elected head of state "Prime Minister". There are other ways to do such
things which are equally valid, and so long as both parties agree on the
convention, it doesn't matter whether you write from left-to-right like
in Australia, right-to-left like in Egypt, or alternate like in Israel.


(Now if *I* sound like a broken record, it's because no seems
to see the obvious, but carry on.)

It must be such a trial to be the only sane man in a world gone mad.


[...]
What matters is the relationships between the entities, not the
specific direction they are drawn in relative to some imaginary
absolute space. [yadda, yagni, yadda]

But, there IS A DIFFERENCE.  Let me explain the concept of a object
model (or "type model" if you prefer).

In a family inheritance tree,  there is this difference -- called the
"calendar" --  which imposes an ordering which can't be countermanded by
flipping your silly chart around.  You made a bullshit example to simply
argue a point and *fooled yourself* into ignoring this.  Yes?

No. You haven't explained anything, you have merely made an assertion
with no supporting evidence at all.

In a family tree of ancestors and descendants, the relationship being
draw is time-based. Ancestors exist before descendants. Descendants are
derived in some way from ancestors, not the other way around. We all
agree that your father existed before you. The temporal direction of the
relationship is absolutely fixed, past before present, ancestors before
descendants. We can agree on this.

Explain to me this: what (apart from mere human convention) imposes the
ordering "past must be at the top of the page"?

If you are reading this as email, your mail client very likely has an
option to sort message in order that they were received, either most-
recent at the top or oldest at the top. Do you really mean to imply that
one of those is logical and the other is delusional?


Likewise, WITH A COMPUTER, there is a definite order which can't be
countermanded by simply having this artifice called "Object". If you
FEE(L)s hadn't noticed (no longer using the insult "foo"s out of respect
for the sensativities of the brogrammers), this artifice has just been
*called on the floor* with this little innocent question that fired up
this discussion again (don't hate the messenger). Again:  people
entering the community are pointing out a problem -- that Object is both
trying to be the BASE and the SUPERclass of all objects.

How is this a problem? They mean the same thing.

A television is both an appliance and a device. object is both the base
class and a superclass of all other classes.


CS554: A type/object *model* has to define the relationship of these
nice abstractions so that they can be mapped to the *actual
concreteness* of the machine.  And there, bro, there is an ordering.

Yes, the ordering is that the subclass is derived from the superclass.
Nobody disputes that. But we can show that relationship using any
convention we like:


superclass -> subclass

subclass <- superclass

"superclass extended by subclass"

"subclass extends superclass"

superclass
    ↓
subclass


subclass
    ↑
superclass


Python syntax:
     class MySubclass(MySuperclass): ...


Smalltalk syntax:
     MySuperclass :subclass #MySubclass


Java syntax:
     class MySubclass extends MySuperclass {...}



You're not going to magically flip the hierarchy so that your bitless
Object becomes a machine word that is the base of all your types.

You seem to be labouring under the delusion that inheritance, which is a
high-level concept which only applies to objects, goes "all the way down"
to low-level concepts like words and bits.

Objects do not *inherit* from bits. They are *composed* of bits.


You've
been fooled by the magic of the Turing Machine.   The modern computer
mollifies you with the illusion of "total abstraction" where there are
no bits or 1s and 0s involved, but yea, it did not turn out that way.
(Note bene: as a comparison, C++ is very UNAMBIGUOUS about this fact --
all objects inherit from concrete machine types, which is why it remains
important, *despite* being one of the worst to do OOP in.  Its *type
model* is probably the most clear of any object-oriented language).

You haven't actually programmed in C++ have you?

There's no shame in answering that you haven't. I've never programmed in
C++. It's on my to-do list, after giving myself an appendectomy with a
dull rusty knife and just ahead of buying the complete collection of
Justin Bieber albums. But even I know that you cannot inherit from native
types, on account that they aren't objects.


Likewise it doesn't matter whether we draw class hierarchies from the
top down or the bottom up or even sidewise:

Have you caught it by now, friends:  IT MATTERS TO THE COMPUTER.

How the hell does the computer know which way I draw my class diagrams?




And the cycle continues:

1. A thread mentions some fundamental aspect of computing.

2. Mark Janssen jumps in to hint that we are all confused, and he knows how things should really work, with no details.

3. The discussion expands to the point of Mark making some claim which sounds close to a truth, but seems actually wrong ("It matters to the computer").

4. Reasonable people try to engage in an actual discussion of what was said.

5. (Coming next) Mark ignores the bulk of the discussion, picks out one detail, and continues making snide and incorrect remarks, skittering away from the light of reason.

Maybe we could just not?

--
Ned Batchelder, http://nedbatchelder.com

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to