On Nov 22, 2007 2:08 PM, Colin J. Williams <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] wrote: > > Alexy: > >> Sometimes I > >> avoid OO just not to deal with its verbosity. In fact, I try to use > >> Ruby anywhere speed is not crucial especially for @ prefix is better- > >> looking than self. > > > > Ruby speed will increase, don't worry, as more people will use it. > > > > Bye, > > bearophile > > I don't see this as a big deal, but
The big deal is that "self." occupies important horizontal screen real estate. That is, it is usually not self in itself that is problematic, but the overflowing lines is. Take this silly vector class for example: 1 class Vector: 2 def __init__(self, x, y, z): 3 self.x = x 4 self.y = y 5 self.z = z 6 def abs(self): 7 return math.sqrt(self.x * self.x + self.y * self.y + self.z * self.z) Line 7 is 82 characters long which is, if you care about the readability of your code, a very real problem because the line is to long. So you break it: 7 return math.sqrt(self.x * self.x + self.y * self.y + self.z * self.z) Better, but definitely not as nice as it would have been with a shorter self prefix like you propose. And in my eyes, having to break lines like this instantly makes the code much less attractive. There is probably not a single language in existance in which wrapping lines doesn't make the code uglier. I also notice that the lines in your mail are nicely broken at about column 45, probably because you are typing on a PDA or similar? In those situations, where you require much shorter lines than the standard 78 characters, for example when typesetting code examples for a book, the problem with line breaks is even worse. > suppose that the syntax were > expanded so that, in a method, a dot > ".", as a precursor to an identifier, > was treated as "self." is currently treated? I like that a lot. This saves 12 characters for the original example and removes the need to wrap it. 7 return math.sqrt(.x * .x + .y * .y + .z * .z) +1 Readability counts, even on small screens. -- mvh Björn -- http://mail.python.org/mailman/listinfo/python-list