From: Alf P. Steinbach on
* Steve Howell:
> This thread is interesting on many levels. What is the core question
> that is being examined here?

I think that regarding the technical it is whether a Python name refers to an
object or not. I maintain that it does, and that the reference can be copied,
and that the semantics of the language requires this and is defined in terms of
this. Steve Holden, D'Aprano and many others maintain that there are no
references, or that if there are then they're only an implementation aspect,
i.e. that conceiveable one could have an implementation without them.

Regarding some other issues it seems to be a childish exercise in flaming, a
flame war, with claims of insanity, incompetence, lying (that's actually from
me, I reacted a bit strongly to faked quoting + conclusions from that in a
posting not appearing on Usenet but on the Python mail list), etc. etc. ad
nauseam, sprinkled with misrepresentations etc. I don't know the point of that.


Cheers,

- Alf
From: Steve Holden on
Alf P. Steinbach wrote:
> * Steve Holden:
>> Alf P. Steinbach wrote:
>>> * Michael Sparks:
>>> [Due to the appearance of reasoned discussion (it's not practical to
>>> read it all!)
>> [...]
>>>> Therefore to say "in reality the implementation will be passing a
>>>> reference or pointer" is invalid. There is after all at least one
>>>> implementation that does not rely on such machine oriented language
>>>> details.
>>> I'm sorry, but see above: in itself it's just yet another a fallacy.
>>>
>>> And as an argument in a debate with me it's misrepresenting.
>>>
>> I see we are still all out of step with you.
>
> Why did you snip the short argument?
>
Because it's irrelevant and fallacious.
>
>> If it's a fallacy then I'd
>> like to see a reasoned logical explanation of its fallaciousness.
>
> Oh, you snipped it so that you didn't have to present it to readers.
>
> That's dishonest, Steve Holden.
>
> Requoting:
>
> <quote>
>> Now let's move to the implementation aspects.
>>
>> Python as a language is implemented in many languages. One of these
>> is C. There are compilers to C (pypy), C++ (shedskin), for the JVM
>> (Jython) and .net (Ironpython).
>>
>> There is also an executable operation semantics for python,
>> which can be found here:
>>
>>
> http://gideon.smdng.nl/2009/01/an-executable-operational-semantics-for-python/
>
>>
>> This set of operational semantics is written in Haskell.
>>
>> Haskell is a strictly pure, lazily evaluated language. It
>> therefore has no pointers or references, just values and names.
>> The implementation therefore cannot be in terms of references
>> and pointers.
>
> At this point consider whether it's possible to implement Pascal in
> Haskell.
>
> If it is possible, then you have a problem wrt. drawing conclusions
> about pointers in Pascal, uh oh, they apparently can't exist.
>
> But if it is not possible to implement Pascal in Haskell, then Haskell
> must be some etremely limited special-purpose language, not Turing
> complete -- is that acceptable to you?
> <quote>
>
This, if it says anything at all, appears to say that any
Turing-complete language has pointers in it, which is an absurdity.
>
>> As far as I can see, if someone says "implementing Python implies the
>> use of pointers" as you appear to be doing, then Michael's argument
>> neatly demolishes that argument by providing a counter-example: there is
>> an implementation of Python that does not use pointers.
>
> That's meaningless.
>
> But then so is maintaining that Python doesn't have references.
>
> And so is your argument applied to Pascal, just to mention that again.
>
*You* brought Pascal into this, not me.
>
>> You, however, dismiss this as a fallacy, and suggests it somehow
>> misrepresents you. And yet you wonder why people call your behavior (not
>> you) paranoid.
>
> On top of the multiple fallacies, dubious snipping of arguments,
> statements that such arguments have not been presented (just after
> snipping them), and general misleading insinuations and
> misrepresentation, ad yet another bit of personal attack.
>
> Do you understand what that may say to readers about you, Steve Holden?
>
I'm happy to let readers draw their own conclusions about us both.

> Apparently it's all to defend an indefensible, idiotic position. But I
> think you're doing it at least partially for the fun of harassing someone.
>
Not at all. You have accused me of bullying behavior, but in truth you
are the bully, and we know what happens when you give in to bullies,
don't we?
>
>> [...]
>>>> I sincerely hope that my reply does not offend or inflame you, since
>>>> that is not the intent. I do hope it educates you and puts
>>>> into context the responses you have gained from others.
>>>>
>>>> After all, one simply shouting in a corner saying "YOU'RE ALL
>>>> WRONG, WRONG, WRONG. I'M RIGHT RIGHT RIGHT", when one does not to
>>>> understand what one is talking about does not tend to engender warm
>>>> fluffy feelings or sentiments of authority towards such an
>>>> individual. Be it me, you, or anyone else.
>>>>
>>>> At the moment, you appear to me to be engaging in such a behaviour.
>>>> Now you don't know from Jack and probably don't care about my
>>>> viewpoint, but I would really appreciate it if you would try not to
>>>> be inflammatory in your response to this. (Since you do appear to
>>>> also have a need to have the last word)
>>>>
>>>> Hoping this was useful on some level,
>>> Yes.
>>>
>>> I elected to respond to just /one/ of the many arguments you
>>> presented.
>>>
>>> The other arguments, about why there are no references in Python,
>>> shared, however, the basic property of being logical fallacies
>>> packaged in kilometers of rambling text.
>>>
>> And you can say this without, by your own admission, even reading it.
>
> No, you can not quote any place I have said that I haven't read his
> article. I did read most of it. So you are yet again within the span of
> one posted article presenting untrue information that you know is not true.
>
I repeat the quote from you which you can read at the top of this post:
>>> [Due to the appearance of reasoned discussion (it's not practical to
>>> read it all!)
>> [...]
So now you say you read "most" of it. Even this statement is an
admission that there are parts you did not, and yet somehow *I* am the
liar? We are moving from the bizarre to the delusional here.
>
>> It
>> makes me wonder why we have paid you the compliment of engaging you in
>> debate,
>
> Gosh, I don't know. You must be stupid to do that. Yes?
>
Apparently.
>
>> since this is the most transparent evidence to date that what
>> comes back will be unrelated to the arguments presented.
>
> That is untrue, Steve Holden, and since you can't quote that "evidence",
> since you evidently /have/ read my short article which you're responding
> to, knowing exactly what to snip, you know that what you're saying is
> untrue. I think this is your third lie in one posting. But who would
> care to count.
>
Who indeed?
>
> Cheers & hth.,
>
That signature surely has to be irony.

Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
PyCon is coming! Atlanta, Feb 2010 http://us.pycon.org/
Holden Web LLC http://www.holdenweb.com/
UPCOMING EVENTS: http://holdenweb.eventbrite.com/

From: Alf P. Steinbach on
* Steve Holden:
> Alf P. Steinbach wrote:
>> * Steve Holden:
>>> Alf P. Steinbach wrote:
>>>> * Michael Sparks:
>>>> [Due to the appearance of reasoned discussion (it's not practical to
>>>> read it all!)
>>> [...]
>>>>> Therefore to say "in reality the implementation will be passing a
>>>>> reference or pointer" is invalid. There is after all at least one
>>>>> implementation that does not rely on such machine oriented language
>>>>> details.
>>>> I'm sorry, but see above: in itself it's just yet another a fallacy.
>>>>
>>>> And as an argument in a debate with me it's misrepresenting.
>>>>
>>> I see we are still all out of step with you.
>> Why did you snip the short argument?
>>
> Because it's irrelevant and fallacious.
>>> If it's a fallacy then I'd
>>> like to see a reasoned logical explanation of its fallaciousness.
>> Oh, you snipped it so that you didn't have to present it to readers.
>>
>> That's dishonest, Steve Holden.
>>
>> Requoting:
>>
>> <quote>
>>> Now let's move to the implementation aspects.
>>>
>>> Python as a language is implemented in many languages. One of these
>>> is C. There are compilers to C (pypy), C++ (shedskin), for the JVM
>>> (Jython) and .net (Ironpython).
>>>
>>> There is also an executable operation semantics for python,
>>> which can be found here:
>>>
>>>
>> http://gideon.smdng.nl/2009/01/an-executable-operational-semantics-for-python/
>>
>>> This set of operational semantics is written in Haskell.
>>>
>>> Haskell is a strictly pure, lazily evaluated language. It
>>> therefore has no pointers or references, just values and names.
>>> The implementation therefore cannot be in terms of references
>>> and pointers.
>> At this point consider whether it's possible to implement Pascal in
>> Haskell.
>>
>> If it is possible, then you have a problem wrt. drawing conclusions
>> about pointers in Pascal, uh oh, they apparently can't exist.
>>
>> But if it is not possible to implement Pascal in Haskell, then Haskell
>> must be some etremely limited special-purpose language, not Turing
>> complete -- is that acceptable to you?
>> <quote>
>>
> This, if it says anything at all, appears to say that any
> Turing-complete language has pointers in it, which is an absurdity.
>>> As far as I can see, if someone says "implementing Python implies the
>>> use of pointers" as you appear to be doing, then Michael's argument
>>> neatly demolishes that argument by providing a counter-example: there is
>>> an implementation of Python that does not use pointers.
>> That's meaningless.
>>
>> But then so is maintaining that Python doesn't have references.
>>
>> And so is your argument applied to Pascal, just to mention that again.
>>
> *You* brought Pascal into this, not me.

Of course. And so? Do you think that the/your argument applies to Pascal?

Just for your information, it does not work for Pascal.

Or any language. It is a fallacy. It does not say anything about Python, or
Pascal, or any language.


>>> You, however, dismiss this as a fallacy, and suggests it somehow
>>> misrepresents you. And yet you wonder why people call your behavior (not
>>> you) paranoid.
>> On top of the multiple fallacies, dubious snipping of arguments,
>> statements that such arguments have not been presented (just after
>> snipping them), and general misleading insinuations and
>> misrepresentation, ad yet another bit of personal attack.
>>
>> Do you understand what that may say to readers about you, Steve Holden?
>>
> I'm happy to let readers draw their own conclusions about us both.

I guess you are. For it is invariably so that most readers recall by
association, and a flood of flaming does yield an impression. As a technical
argument it's a fallacy, but do you care? No.


>> Apparently it's all to defend an indefensible, idiotic position. But I
>> think you're doing it at least partially for the fun of harassing someone.
>>
> Not at all. You have accused me of bullying behavior, but in truth you
> are the bully, and we know what happens when you give in to bullies,
> don't we?

After an uncountable number of flames of my person, many from you, I'm the
bullied, or victim, so to speak; as such I'm not the bully.


>>> [...]
>>>>> I sincerely hope that my reply does not offend or inflame you, since
>>>>> that is not the intent. I do hope it educates you and puts
>>>>> into context the responses you have gained from others.
>>>>>
>>>>> After all, one simply shouting in a corner saying "YOU'RE ALL
>>>>> WRONG, WRONG, WRONG. I'M RIGHT RIGHT RIGHT", when one does not to
>>>>> understand what one is talking about does not tend to engender warm
>>>>> fluffy feelings or sentiments of authority towards such an
>>>>> individual. Be it me, you, or anyone else.
>>>>>
>>>>> At the moment, you appear to me to be engaging in such a behaviour.
>>>>> Now you don't know from Jack and probably don't care about my
>>>>> viewpoint, but I would really appreciate it if you would try not to
>>>>> be inflammatory in your response to this. (Since you do appear to
>>>>> also have a need to have the last word)
>>>>>
>>>>> Hoping this was useful on some level,
>>>> Yes.
>>>>
>>>> I elected to respond to just /one/ of the many arguments you
>>>> presented.
>>>>
>>>> The other arguments, about why there are no references in Python,
>>>> shared, however, the basic property of being logical fallacies
>>>> packaged in kilometers of rambling text.
>>>>
>>> And you can say this without, by your own admission, even reading it.
>> No, you can not quote any place I have said that I haven't read his
>> article. I did read most of it. So you are yet again within the span of
>> one posted article presenting untrue information that you know is not true.
>>
> I repeat the quote from you which you can read at the top of this post:
>>>> [Due to the appearance of reasoned discussion (it's not practical to
>>>> read it all!)
>>> [...]
> So now you say you read "most" of it.

I haven't said anything contradictory about that. If I had then you'd have
quoted it. You don't quote anything, so you're out on your usual
insinuate-things argumentation technique.


> Even this statement is an
> admission that there are parts you did not, and yet somehow *I* am the
> liar? We are moving from the bizarre to the delusional here.

I'm sorry that I had to point out your relating untrue information that you knew
at the time was untrue.

That also applies to your snipping of the argument about Haskell, and subsequent
asking for such arguments as if they hadn't been given -- and snipped.

The poster explained at the start that he had some technically immaterial stuff
at the end of his article. I don't know whether I reached that. But anyway, the
article was just a series of fallacies like the one thinking an implementation
in Haskell could prove anything about the language so implemented, all wrapped
up in kilometers of rambling text.

Your attack of "bizarre" and "delusion" are the usual from Steve Holden.

You are injecting noise to bury an argument that you didn't like. You tried
first snipping it from your response. Now you're trying the noise angle again.


Cheers & hth.,

- Alf
From: MRAB on
Alf P. Steinbach wrote:
> * Steve Howell:
>> This thread is interesting on many levels. What is the core question
>> that is being examined here?
>
> I think that regarding the technical it is whether a Python name refers
> to an object or not. I maintain that it does, and that the reference can
> be copied, and that the semantics of the language requires this and is
> defined in terms of this. Steve Holden, D'Aprano and many others
> maintain that there are no references, or that if there are then they're
> only an implementation aspect, i.e. that conceiveable one could have an
> implementation without them.
>
> Regarding some other issues it seems to be a childish exercise in
> flaming, a flame war, with claims of insanity, incompetence, lying
> (that's actually from me, I reacted a bit strongly to faked quoting +
> conclusions from that in a posting not appearing on Usenet but on the
> Python mail list), etc. etc. ad nauseam, sprinkled with
> misrepresentations etc. I don't know the point of that.
>
It's a pity that no-one has gone far enough to trigger Godwin's Law...
;-)
From: Aahz on
In article <hl6ilk$f7h$1(a)news.eternal-september.org>,
Alf P. Steinbach <alfps(a)start.no> wrote:
>
>My original statement, with reference to the Java language spec,
>didn't say much more about the language than that it has assignable
>references.

Assuming this is what you're referring to:

Python passes pointers by value, just as e.g. Java does.

Then you are simply, completely, totally, and absolutely wrong. Period.
Regardless of how CPython manages its state internally, Python as a
programming language does not have pointers.
--
Aahz (aahz(a)pythoncraft.com) <*> http://www.pythoncraft.com/

"At Resolver we've found it useful to short-circuit any doubt and just
refer to comments in code as 'lies'. :-)"