anything like C++ references?

Stephen Horne intentionally at blank.co.uk
Tue Jul 15 04:18:59 EDT 2003


On 15 Jul 2003 07:17:52 GMT, bokr at oz.net (Bengt Richter) wrote:

>The syntax is like an optical illusion that can be seen more than one way,
>and you are projecting a non-python view onto the syntax, which is interfering
>with seeing the other view ;-)

I *do* see the other view, honest! (though I admit to mistakes earlier
on)

I just don't agree with it.

>Why don't you respect the possibility of a language that is *designed* to deal
>with entities and relationships in ways you are not used to? ;-)

Basically, because I've seen too many threads started by confused
people who've made a mistake because of this, and because I've made
the mistake an annoying number of times myself.

It's not just about theory - it's about peoples intuitions about how
things should work.

>>This is not difficult to achieve. The implementations of the C++
>The difficulty is not really relevant. It's not a goal for this language ;-)

A goal of Python is to be a 'very high level language'. Another is to
'do the right thing'.

In my view, the current implementation of Python with respect to
variable binding is against those goals. Especially in those cases
where mutability is abused to fake pointers, but in general too.

Am I seriously proposing a change? No. The scope of change needed
would be too great - too many knock on effects (such as the pointer
stuff), so it wouldn't be Python any more. I don't need to claim that
Python is perfect - I've never seen a perfect language - but Python is
pretty close. I can live with a couple of warts - even warts that
others don't see as warts.

>Why assume because some notion isn't used that it means disrespect?

I didn't mean 'respect' to be taken that way. The idea of respecting a
convention is a common English idiom. It simply means that you do what
the convention says.

> If you
>read "variable" where you should be reading "alias"

If I should be reading "alias", then how come the Python manuals say
"variable"?

>Expand your set of views. I think you will find one where you will see Python
>as doing the right thing, for the most part. ;-)

Always did, for the most part. I've been using Python since about '96
or '97. There must be some reason why!

As it happens, I'm a bit of a programming language obsessive. Mostly,
I've only played with languages though - it's just that I've played
with a lot of them. A number have fundamental and important ideas that
have stuck in my mind. Prolog and SQL for instance - I read somewhere
that Prolog is the bit of relational database management that got
missed out, and I kind of agree. Icon for generators and backtracking.
Miranda for my first taste of functional programming, and Haskell even
more so. A few others.

Python isn't really a member of that list. OK, there are a couple of
things that Python does differently, but nothing really profound that
I haven't seen elsewhere. Yet Python *is* my first choice programming
language for almost everything where I get a choice - for the
prototype if not always for the final code. I would say Python
provides a set of tools which are known to be useful from experience.
It isn't an experimental language. It doesn't obsess on one particular
concept. It is a language for getting things done with very little
fuss.

When people say I'm wrong and I see that I am wrong, I can admit it
and shut up. When people say I'm wrong and I still disagree, even over
a technicality, it tends to be a bit like a red rag to a bull - but
it's still a philosophical point, really.





More information about the Python-list mailing list