Extending Python Syntax with @
dmq at gain.com
Thu Mar 11 21:05:07 CET 2004
On Thu, 11 Mar 2004 14:50:57 +0000, Peter Hickman
<peter at semantico.com> wrote:
>If what motivates you is the 'ultimate language' and think you can get
>closer to it by adding special characters then you are going to be very
>disappointed. The history of computing is littered with 'ultimate
>languages' that have had much more thought put into them than adding
>special characters to an existing language (C++ comes to mind) and they
>all have in common the fact that they failed.
Perl seems to be a better example of too much syntax.
>To be fair C++ was never touted as an 'ultimate language' but you get
>If you feel python has a significant flaw then say what it is and how
>you believe it would best be addressed. Using @ as a special character
>is just adding sugar to the syntax.
It's not a single flaw. In fact I can't imagine a single flaw that
would justify adding a special symbol. It only makes sense if adding
the symbol *improves* consistency by reducing the number of syntactic
variations, compared to adding each new feature with a *different*
syntax or unique keyword.
If someone new to Python saw a function with '@return' instead of
'return', it would be pretty easy to remember this has something to do
with efficiency, just think of it as a normal function until you start
writing your own code.
There is an optimum balance between too much syntax and too little. I
think Python is pretty close to that optimum. There are a few things
I would eliminate, and a few things I would add. Same with Ruby. I
like their use of the @ symbol, but I can't see the advantage of their
cryptic 'code blocks' over a normal Python function. I don't like
their subtle distinction between single and double-quoted strings.
Much of this is just personal preference, but in some cases you can
see a real advantage. I like their simple but powerful string
methods. You can put a lot on one line without sacrificing clarity.
See http://userlinux.com/cgi-bin/wiki.pl?RubyPython for details. I
think we can learn some things from Ruby, which after all, was
developed after a few years of learning from Python.
More information about the Python-list