----- Original Message -----
From: "William Djaja Tjokroaminata" <billtj / z.glue.umd.edu>

> Hi,
>
> I agree that "@" and "self." are very minor syntactic choice.

"self." is not syntax.  It's using the value of "self" passed into the
functi^H^H^H^H^H^Hmethod, so it's just dereferencing the hash^H^H^H^Hobject
(gee my typing's bad today).  @ is syntax.

> Even when
> the object itself is passed as the first argument into an object method I
> have no big problem with that.

There's no practical problem.  It's just excruciatingly ugly and excreable
language design.

> The biggest problem for me is that in
> Python an object is pretty much like a hash; this is equivalent as having
> all data members as public in C++.

It is a hash.  You can add data members to the object outside the class, just
by making a typing mistake.  Some may say flexible.  I just sneeze.

> (Sure, there is a way around this in
> Python, but it has to be manually made by the programmer, not built-in in
> the language itself.)

AFAIK, you can't make data private in Python.

> In Ruby, on the other hand, all data members are
> private by default (which is the recommended practice in C++), unless we
> explicitly make it otherwise (through the accessor methods).

Data members cannot be made public to the outside world.  They are invisible.
The accessor methods are methods, only incidentally related to members :)

> Therefore we
> have a standard information hiding in Ruby and not at all in Python.  This
> is one of the most important reasons why I switched from Python to Ruby.

Fair enough.

> Regards,
>
> Bill

--Gavin (who promises to be good now and stop yakking about Python)