Modifying the {} and [] tokens

Geoff Howland ghowland at lupineNO.SPAMgames.com
Sat Aug 23 21:22:02 CEST 2003


On Sat, 23 Aug 2003 21:56:08 +0300, Christos "TZOTZIOY" Georgiou
<tzot at sil-tec.gr> wrote:

>>>[snip of python's by design inability to modify the base C types: dict,
>>>str,  list etc]
>>
>>This post begins to read as an insult here, and continues.  My
>>incredible gall at thinking something may be better if it was changed
>>and wanting to try it!  I should be pelted with rocks for speaking the
>>name Jehova.
>
>I am sorry, Geoff, but I can't understand how you perceived my post as
>insulting.  If I did understand a way, I would apologise.  I just
>snipped stuff in order to make my post shorter, according to netiquette.
>How can the phrase inside the brackets seem insulting to you?  Geoff,
>please justify your clause, and I will gladly apologise.

If you didn't mean it as insulting, than I am very sorry for taking it
so and responding in the way I did.

I saw it as I was being told that I am ignoring the good design
philosophies of Python, and as such I should move on to another
language.  I have been told exactly this thing before (without being
mistaking) so I suppose I am more sensitive to it than I would have
been had I not had it said before.

Sorry for misunderstanding you and becoming upset about it.  :)

>>Is this really the way this group is going to continue?
>
>I don't know, I can speak for myself only.  How many people have
>responded to you this "way" to make you wonder about the whole group?

Maybe 2 here, to more or lesser degrees.  Probably about 5 times on
python IRC channels.

>>Why?  I respect Guidos decsions, Python needs a strong leader to make
>>them and it got where it is (great language) by having him and the
>>rest of the community help out in this regard.
>
>This is the deal, indeed; for example, I would enjoy very much generator
>comprehensions in the language, and yet they were rejected.

Exactly, and as long as it's ok to bring them up, then all is well.  I
was just feeling like I was being rebuked for doing so.  In
retrospect, I probably should have just not responded at all to the
thread portion that I felt that way about, as other people were giving
me answers I thought were completely even.

I do appreciate Python's design decisions.  It's what keeps it from
becomming the things I dont like about Perl, where that does not seem
to be the case.  However, I still like having the rope to shoot myself
in the foot if I so desire, but if it doesnt exist I'll get by without
it.  :)

>>Is now no one allowed to say "hey, I think this should be done, and
>>I'd like to make it happen to give it a try"?  It's not like if it
>>becomes a problem it couldn't be reverted and lesson learned right?
>>Programming is ABOUT experimentation, not dogmatic obedience.
>
>My reply came to your specific feature request, ie Python allowing you
>to modify the base types; your asking if *any* feature request is
>disallowed is not justified.  I consider your question similar to the
>following dialog:
>
>- Can I have cherry pie with my meal?
>- No, because the cook has decided it does not match with your meal,
>which is fish.
>- So no one is allowed to ask for dessert here?

Well, this was because I took your post as hostility.  I'm not sure I
was out there in interpretting this way, as usually telling someone to
"go somewhere else" when they inquire about things is meant that way.

>I believe that the symbolism is childish, and this indeed you might find
>it insulting, although it isn't.  I am not as fluent in English as I
>would like, so this is my way to express the general feeling I got from
>your reply; I call it "black-and-white", or "ping-pong", lacking a
>better English word, and describes a two-way communication where a
>disagreement on the one side is perceived magnified as total rejection
>on the other side.

Im fine with the things being one way or another, no problems at all
with it.  I understand why base types arent allowed to be modified,
cause while you could do it without damaing things, it would be a lot
more likely that things would be damaged over time and you might never
know you're including a module that changes behavior.  It makes sense.

That doesn't mean it wouldnt be useful, which is why I was inquiring.
If it was possible, I'd probably do it because of it's usefulness.  If
it became a problem later, I could correct that.  I am flexible that
way, it is probably a good thing Guido and the Python community that
helps design Python is not.  Checks and balances.

As long as it's still ok to inquire.

I think the last thing that was really brought up in this "how dare
you" type style was someone inquiring about protecting their code from
people reading it.  Some people near-flamed the guy for asking how to
do this, and I think it is ridiculous.  Everyone has their own
purposes for tools, so my ire was up.  :)

>>>I really don't mind subclassing base types and using MyDict() instead of
>>>{}.  I want to be able to make my own APIs (MyDict.update *could* blow
>>>whistles and roll twice on the floor before resetting the machine), but
>>>I also want a steady and well-known API for base types (dict.update
>>>*should* update a dictionary from another one).
>>
>>Why should it matter what you mind?  It's my code.
>
>What should it matter what you mind then?  It's Guido's language.
>Either we both are allowed to say our minds, or not.  My opinion is as
>important as yours.  Keep that in mind, please.

Sure, but you were answering a question and saying "no" based on your
opinions.  That's tangential to the question, which is that I want to
do something.  That it's not possible is topical.  That
Guido/PythonLabs doesnt approve is topical, in the sense of a style
guide.  That you don't approve is topical on an advice level, but not
on a "how do I do this" level.

Thats my view of it, and since I was thinking you were saying I should
"move on to another language for not liking everything exactly as it
is now", then I took it as a judgement placement, rather than advise.

Again, my misunderstanding and my appology.

>The fact is, the subject has been brought up in the past, and it has
>been skipped.  I am not sure if has been rejected, so you might have a
>chance.  If you are as warm about this subject as you seem to be, write
>a PEP; my vote will probably be positive.  But Guido is the one to
>convince, and he listens; my experience so far has shown that he never
>replies the way you do, and that is good.
>
>This URL should be useful:
>http://www.python.org/peps/pep-0001.html

I actually wanted to do a proof of concept and try it before writing a
PEP.  Cause if it turns out to suck in practice, why bother with the
PEP?  I think now I would have to change the Python C code in order to
try it, and that isnt acceptable to me as I wouldnt be able to really
put it into effect in the real world and see if it works.

I'm all for putting in the time to write and push a PEP if I think
something is really worth it and I have proof in my own eyes.  I'm
also accepting if it gets rejected because it doesn't fit with the
language.  So far I haven't gotten to a point where I am confident
enough about something I think should work a different way to do this.
Maybe someday it will happen, maybe it wont.  I'd like to help, but
dont want to make suggestions that aren't really helpful until I'm
convinced myself that they are.

>>>With all due respect, Geoff, if this stuff is really important to you,
>>>use Ruby.
>
>>Yes, throw the heathen into another language.  I'm not good enough for
>>this one.
>
>Your last statement is unjustified too, and "black-and-white", assuming
>hidden meanings in my words.  Geoff, I am picking my words very
>carefully because I don't want to make you jump to the ceiling with
>rage.  Please read, don't assume.

The difficulties of reading text.  I showed this message to 2 other
people, and they also thought it was telling me off instead of just
explaining something to me.  However, I still appologize for
misreading your intentions and my response.

>My sentence was a practical (and respectful!) suggestion; Ruby already
>has what you want, and you like it, so why not use it, since the Python
>community (and Guido most of all) are against such a modification?  Did
>you do a research in older newsgroup threads before posting?

Yeah, I searched around for about 6 hours before posting this, also
poking around in different books and the python interpretter.  I
didn't find this topic covered, but sometimes it's very hard to find
things with common words like:  python, dict, modification/override,
etc.

Ruby is a great language, but there are a couple reasons it wont be
used in this circumstance.  If it was possible and practical, then I
would use it.

>Don't spend your energy fighting with me (one-side fights: only on
>USENET :), write a PEP and find good arguments for it.

I dont intend to, I'm glad there was a misunderstanding and sorry I
misunderstood (hope thats parseable).

Maybe there will be a PEP on this someday, but it'll be harder to do
without evidence that it works well in the real world first.


-Geoff Howland
http://ludumdare.com/




More information about the Python-list mailing list