Steven D'Aprano a écrit :
On Fri, 31 Jul 2009 13:38:56 +0200, Bruno Desthuilliers wrote:

On the other hand, we don't have to prefix names with @ and @@,
Nope, we have to prefix them with 'self' or 'cls' (or even
'self.__class__').

Incorrect.

Correct for all relevant cases, except this one:

class K:
...     class_attribute = 'No @@ required.'
...

K().class_attribute
'No @@ required.'

Once again: Ruby's attributes are *private*, so you can't access an attribute (class or instance) from outside a method. IOW, the above example is irrelevant.

(snip)

Disadvantages: your code is filled with line noise. It's an arbitrary choice between @@ meaning instance attribute and @@ meaning class attribute -- there's no logical reason for choosing one over the other, so you have to memorise which is which. It's easy to get it wrong.

So far that's something I have no difficulty living with.

and we
don't have the compiler trying to *guess* whether we're calling a
function or referring to a variable.
Please re-read a bit more carefully - it's *all* method call.

What did I misread from here?

Nowhere - it's me that got it wrong here, sorry.

(snip)


Somebody who knows more Ruby than me should try writing the Zen of
Ruby. Something like:
(snip childish parody of Python Zen)

Steven, is that any useful ?

It made me feel good.

Why ???

You don't like Ruby ? Fine, don't use it. Period. I can't see the point of all these pissing contests.

But seriously, while I admit that I have very little Ruby experience, and so aren't in a great position to judge, it seems to me that Ruby doesn't have anything like Python's over-riding design principles (the Zen). If there is a design principle to Ruby, I can't see what it is.

Fullfill the tastes of Matz ?-)

(snip)

Although I'm sure Ruby has its good points. I'm not convinced anonymous
code blocks are one of them though.
Ruby's code blocks come from Smalltalk, where they are an absolute
necessity since message passing (which code blocks are part of) is the
*only* builtin control flow in Smalltalk - so you just *need* this
construction to provide branching and iterations.

Just because Smalltalk had a particular (mis?)feature

You can drop the 'mis' part IMHO. The point of code blocks in Smalltalk is that once you have something as powerful as the message+code blocks combo, you just don't need any other 'special form' for control flow.

doesn't mean that other languages should copy it.

Nope. But OTHO, Python is famous for all the features it copied from other languages !-)
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to