<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Python has a GIL, and lots of complainers</title>
	<atom:link href="http://blog.labix.org/2010/07/09/python-has-a-gil-and-lots-of-complainers/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.labix.org/2010/07/09/python-has-a-gil-and-lots-of-complainers</link>
	<description>by Gustavo Niemeyer</description>
	<lastBuildDate>Mon, 16 Jan 2012 12:12:57 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: SteveBrown</title>
		<link>http://blog.labix.org/2010/07/09/python-has-a-gil-and-lots-of-complainers/comment-page-1#comment-81615</link>
		<dc:creator>SteveBrown</dc:creator>
		<pubDate>Mon, 12 Jul 2010 15:09:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.labix.org/?p=381#comment-81615</guid>
		<description>Complainers are important for a couple reasons you do not mention.  Complaints raise awareness about design decisions and the impact they might have. End users are exposed to the underlying design of any system they might never have seen.  Secondly, without user feedback, any application becomes what it is based only on the developers&#039; view of the world.  If users show dissatisfaction with a design decision, it can reset the developers&#039; world view and influence  the world view of developers on other projects even if the subject of the original complaint is left unchanged. Would a new languages today trying to compete in Python&#039;s space be competitive if it too followed the design decisions of Python? New languages arise because they address the complaints of existing ones.</description>
		<content:encoded><![CDATA[<p>Complainers are important for a couple reasons you do not mention.  Complaints raise awareness about design decisions and the impact they might have. End users are exposed to the underlying design of any system they might never have seen.  Secondly, without user feedback, any application becomes what it is based only on the developers&#8217; view of the world.  If users show dissatisfaction with a design decision, it can reset the developers&#8217; world view and influence  the world view of developers on other projects even if the subject of the original complaint is left unchanged. Would a new languages today trying to compete in Python&#8217;s space be competitive if it too followed the design decisions of Python? New languages arise because they address the complaints of existing ones.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gustavo Niemeyer</title>
		<link>http://blog.labix.org/2010/07/09/python-has-a-gil-and-lots-of-complainers/comment-page-1#comment-81613</link>
		<dc:creator>Gustavo Niemeyer</dc:creator>
		<pubDate>Mon, 12 Jul 2010 14:22:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.labix.org/?p=381#comment-81613</guid>
		<description>&lt;blockquote&gt;
And when did core developers downplay or dismiss the limitations of the GIL?
&lt;/blockquote&gt;

This very post presents when.

&lt;blockquote&gt;
In my experience [and opinion] people who are serious about contributing to a project – and they are the ONLY PEOPLE WHO MATTER
&lt;/blockquote&gt;

I respect the fact that you have a different opinion and experience than I do.  I value people&#039;s time a lot more, and have great experience with receiving contributions from people that at first were unable to help.  These facts are probably related.</description>
		<content:encoded><![CDATA[<blockquote><p>
And when did core developers downplay or dismiss the limitations of the GIL?
</p></blockquote>
<p>This very post presents when.</p>
<blockquote><p>
In my experience [and opinion] people who are serious about contributing to a project – and they are the ONLY PEOPLE WHO MATTER
</p></blockquote>
<p>I respect the fact that you have a different opinion and experience than I do.  I value people&#8217;s time a lot more, and have great experience with receiving contributions from people that at first were unable to help.  These facts are probably related.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam Tauno Williams</title>
		<link>http://blog.labix.org/2010/07/09/python-has-a-gil-and-lots-of-complainers/comment-page-1#comment-81610</link>
		<dc:creator>Adam Tauno Williams</dc:creator>
		<pubDate>Mon, 12 Jul 2010 13:17:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.labix.org/?p=381#comment-81610</guid>
		<description>I think the error in this thinking is &quot;Would you rather have users, or have no complainers&quot; which is a fallacy of the undistributed middle.  Truth is  - you can have users without tolerating a culture of complaint. 

And when did core developers downplay or dismiss the limitations of the GIL?  This has been well documented and discussed endlessly.

Complaining is NOT contributing.  Neither is trotting into the middle of something and just dropping off your ideas.  That is not helpful.  I&#039;ve been involved in Open Source for over a decade and I&#039;m solidly with the Brett regarding his points.  

In my experience [and opinion] people who are serious about contributing to a project - and they are the ONLY PEOPLE WHO MATTER - will make an effort to discover the proper channels for contributing.  Casual interlopers, big-thinkers, and visionaries are nothing more than distractions;  they fatigue discussions and give the discussions an exaggerated sense of negativity, in addition to just soaking up time [replying to their messages].</description>
		<content:encoded><![CDATA[<p>I think the error in this thinking is &#8220;Would you rather have users, or have no complainers&#8221; which is a fallacy of the undistributed middle.  Truth is  &#8211; you can have users without tolerating a culture of complaint. </p>
<p>And when did core developers downplay or dismiss the limitations of the GIL?  This has been well documented and discussed endlessly.</p>
<p>Complaining is NOT contributing.  Neither is trotting into the middle of something and just dropping off your ideas.  That is not helpful.  I&#8217;ve been involved in Open Source for over a decade and I&#8217;m solidly with the Brett regarding his points.  </p>
<p>In my experience [and opinion] people who are serious about contributing to a project &#8211; and they are the ONLY PEOPLE WHO MATTER &#8211; will make an effort to discover the proper channels for contributing.  Casual interlopers, big-thinkers, and visionaries are nothing more than distractions;  they fatigue discussions and give the discussions an exaggerated sense of negativity, in addition to just soaking up time [replying to their messages].</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gustavo Niemeyer</title>
		<link>http://blog.labix.org/2010/07/09/python-has-a-gil-and-lots-of-complainers/comment-page-1#comment-81568</link>
		<dc:creator>Gustavo Niemeyer</dc:creator>
		<pubDate>Sat, 10 Jul 2010 23:59:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.labix.org/?p=381#comment-81568</guid>
		<description>&lt;blockquote&gt;
I&#039;m amazed how much people still think that shared mutable state is the way to go, although there are zillions of projects out there in hunderds of languages with the same problems.
&lt;/blockquote&gt;

The GIL is far from solving these problems, because it does not prevent shared mutable state between threads.  What solves these problems is designing applications and frameworks which enable people to more easily reason about concurrency, and there are very good patterns evolving which enable people to reason more easily about concurrency in the same process space.  When I see people claiming for concurrency, I don&#039;t naïvely assume they&#039;re designing something improperly.

&lt;blockquote&gt;
There is a good chance that 20+cores don&#039;t have one big shared memory and then the so called GIL problems vanish anyway.
&lt;/blockquote&gt;

This statement only makes any difference if you think that we&#039;re going back to a model where each core works in isolation, but reality is that having several cores with access to shared memory isn&#039;t going away.</description>
		<content:encoded><![CDATA[<blockquote><p>
I&#8217;m amazed how much people still think that shared mutable state is the way to go, although there are zillions of projects out there in hunderds of languages with the same problems.
</p></blockquote>
<p>The GIL is far from solving these problems, because it does not prevent shared mutable state between threads.  What solves these problems is designing applications and frameworks which enable people to more easily reason about concurrency, and there are very good patterns evolving which enable people to reason more easily about concurrency in the same process space.  When I see people claiming for concurrency, I don&#8217;t naïvely assume they&#8217;re designing something improperly.</p>
<blockquote><p>
There is a good chance that 20+cores don&#8217;t have one big shared memory and then the so called GIL problems vanish anyway.
</p></blockquote>
<p>This statement only makes any difference if you think that we&#8217;re going back to a model where each core works in isolation, but reality is that having several cores with access to shared memory isn&#8217;t going away.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anyone</title>
		<link>http://blog.labix.org/2010/07/09/python-has-a-gil-and-lots-of-complainers/comment-page-1#comment-81525</link>
		<dc:creator>Anyone</dc:creator>
		<pubDate>Sat, 10 Jul 2010 22:48:52 +0000</pubDate>
		<guid isPermaLink="false">http://blog.labix.org/?p=381#comment-81525</guid>
		<description>I&#039;m amazed how much people still think that shared mutable state is the way to go, although there are zillions of projects out there in hunderds of languages with the same problems.
There is a good chance that 20+cores don&#039;t have one big shared memory and then the so called GIL problems vanish anyway.</description>
		<content:encoded><![CDATA[<p>I&#8217;m amazed how much people still think that shared mutable state is the way to go, although there are zillions of projects out there in hunderds of languages with the same problems.<br />
There is a good chance that 20+cores don&#8217;t have one big shared memory and then the so called GIL problems vanish anyway.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stu</title>
		<link>http://blog.labix.org/2010/07/09/python-has-a-gil-and-lots-of-complainers/comment-page-1#comment-81520</link>
		<dc:creator>Stu</dc:creator>
		<pubDate>Sat, 10 Jul 2010 19:09:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.labix.org/?p=381#comment-81520</guid>
		<description>I think shoeing people away who want to use python for CPU intensive work is pretty lame TBH.   I like python, and I want to use it for graphics work (as do people that use PyGame, Pyglet, Cocos etc).

I&#039;m pretty sure that in the end PyPy will actually let me do this, in the meantime I&#039;ll probably complain a little.

WRT fixing the GIL (not removing it):

I was a little disapointed that NIRs work to add a scheduler to python didn&#039;t go through
http://bugs.python.org/issue7946

It looked very promising.  From the outside it looked like the author of the other solution wasn&#039;t happy to step aside when a better solution came along.

In it&#039;s current form, it seems like the GIL doesn&#039;t actually perform properly, sucking away cycles on multicore.

The whole thing is disappointing, I&#039;m looking forward to a time when we can run fast python in Pypy and move on from saying that certain kinds of program are not suited to the language: the language should be fixed, not the programmes change.</description>
		<content:encoded><![CDATA[<p>I think shoeing people away who want to use python for CPU intensive work is pretty lame TBH.   I like python, and I want to use it for graphics work (as do people that use PyGame, Pyglet, Cocos etc).</p>
<p>I&#8217;m pretty sure that in the end PyPy will actually let me do this, in the meantime I&#8217;ll probably complain a little.</p>
<p>WRT fixing the GIL (not removing it):</p>
<p>I was a little disapointed that NIRs work to add a scheduler to python didn&#8217;t go through<br />
<a href="http://bugs.python.org/issue7946" rel="nofollow">http://bugs.python.org/issue7946</a></p>
<p>It looked very promising.  From the outside it looked like the author of the other solution wasn&#8217;t happy to step aside when a better solution came along.</p>
<p>In it&#8217;s current form, it seems like the GIL doesn&#8217;t actually perform properly, sucking away cycles on multicore.</p>
<p>The whole thing is disappointing, I&#8217;m looking forward to a time when we can run fast python in Pypy and move on from saying that certain kinds of program are not suited to the language: the language should be fixed, not the programmes change.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Donald 'Paddy' McCarthy</title>
		<link>http://blog.labix.org/2010/07/09/python-has-a-gil-and-lots-of-complainers/comment-page-1#comment-81510</link>
		<dc:creator>Donald 'Paddy' McCarthy</dc:creator>
		<pubDate>Sat, 10 Jul 2010 17:01:14 +0000</pubDate>
		<guid isPermaLink="false">http://blog.labix.org/?p=381#comment-81510</guid>
		<description>Brett,
I hav seen the prior arguments about concurrency and the GIL. Personnaly I am wary of threading and do my parallel work via xargs and Platform computings LSF.

I would just light to say again that you guys do a great job developing Python and it *is* appreciated. It isn&#039;t normal to post praises, but I am sure you have a lot of silent admires of your work who agree with not bleating unless they think they are part of a solution.

(Look, no buts :-)</description>
		<content:encoded><![CDATA[<p>Brett,<br />
I hav seen the prior arguments about concurrency and the GIL. Personnaly I am wary of threading and do my parallel work via xargs and Platform computings LSF.</p>
<p>I would just light to say again that you guys do a great job developing Python and it *is* appreciated. It isn&#8217;t normal to post praises, but I am sure you have a lot of silent admires of your work who agree with not bleating unless they think they are part of a solution.</p>
<p>(Look, no buts <img src='http://blog.labix.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Larry Hastings</title>
		<link>http://blog.labix.org/2010/07/09/python-has-a-gil-and-lots-of-complainers/comment-page-1#comment-81497</link>
		<dc:creator>Larry Hastings</dc:creator>
		<pubDate>Sat, 10 Jul 2010 10:26:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.labix.org/?p=381#comment-81497</guid>
		<description>One thing to keep in mind: the GIL is an integral part of the CPython extension API.  Sure, we could stub out the GIL API calls.  But removing the GIL really means replacing it with something else.  That new facility would have its own API, and extension modules would have to use the new API or they wouldn&#039;t work.  I don&#039;t think we could break every extension in a point release.  So this suggests GIL removal will have to wait for Python 4.

At which point I bet we&#039;ll also get rid of reference counting and go with strict garbage collection.  And maybe by then PyPy will be the reference implementation.  And we&#039;ll all have flying cars.</description>
		<content:encoded><![CDATA[<p>One thing to keep in mind: the GIL is an integral part of the CPython extension API.  Sure, we could stub out the GIL API calls.  But removing the GIL really means replacing it with something else.  That new facility would have its own API, and extension modules would have to use the new API or they wouldn&#8217;t work.  I don&#8217;t think we could break every extension in a point release.  So this suggests GIL removal will have to wait for Python 4.</p>
<p>At which point I bet we&#8217;ll also get rid of reference counting and go with strict garbage collection.  And maybe by then PyPy will be the reference implementation.  And we&#8217;ll all have flying cars.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gustavo Niemeyer</title>
		<link>http://blog.labix.org/2010/07/09/python-has-a-gil-and-lots-of-complainers/comment-page-1#comment-81474</link>
		<dc:creator>Gustavo Niemeyer</dc:creator>
		<pubDate>Sat, 10 Jul 2010 04:09:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.labix.org/?p=381#comment-81474</guid>
		<description>Eric, thanks for your comment.  You make some good points there, and I think it reflects the feeling of many Python users.

&lt;blockquote&gt;
(...) but when you have to scale across multiple machines (for any variety of reasons including load, cost, locale, etc.) the GIL doesn’t really matter. I would argue as well that the situation where the GIL matters (computing on a single machine) is not necessarily where the majority of users actually develop. (...)
&lt;/blockquote&gt;

This is certainly true, but please realize that it reflects a biased view.  The existing practices around Python reflect the capacity of the interpreter.  Just as a useful exercise, look at Erlang and try to understand the relationship that developers have to concurrency, and the designs that are used even in web servers.

&lt;blockquote&gt;
But when you consider most servers end up needing a design that doesn’t depend on a single process and the mobile platforms will most likely be single processor for the foreseeable future (...)
&lt;/blockquote&gt;

I foresee something quite different: http://j.mp/cbMkEg</description>
		<content:encoded><![CDATA[<p>Eric, thanks for your comment.  You make some good points there, and I think it reflects the feeling of many Python users.</p>
<blockquote><p>
(&#8230;) but when you have to scale across multiple machines (for any variety of reasons including load, cost, locale, etc.) the GIL doesn’t really matter. I would argue as well that the situation where the GIL matters (computing on a single machine) is not necessarily where the majority of users actually develop. (&#8230;)
</p></blockquote>
<p>This is certainly true, but please realize that it reflects a biased view.  The existing practices around Python reflect the capacity of the interpreter.  Just as a useful exercise, look at Erlang and try to understand the relationship that developers have to concurrency, and the designs that are used even in web servers.</p>
<blockquote><p>
But when you consider most servers end up needing a design that doesn’t depend on a single process and the mobile platforms will most likely be single processor for the foreseeable future (&#8230;)
</p></blockquote>
<p>I foresee something quite different: <a href="http://j.mp/cbMkEg" rel="nofollow">http://j.mp/cbMkEg</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dave b</title>
		<link>http://blog.labix.org/2010/07/09/python-has-a-gil-and-lots-of-complainers/comment-page-1#comment-81468</link>
		<dc:creator>dave b</dc:creator>
		<pubDate>Sat, 10 Jul 2010 03:09:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.labix.org/?p=381#comment-81468</guid>
		<description>I should also add: I have coded in c using openmp and java - with plain java threads - (both) for some time now.
Sure I an handle mutex, semaphore, race condition, debugging threading, deadlocks, sleeping blocking threads, livelocks, ..... etc. - but can you ? do you really want too?</description>
		<content:encoded><![CDATA[<p>I should also add: I have coded in c using openmp and java &#8211; with plain java threads &#8211; (both) for some time now.<br />
Sure I an handle mutex, semaphore, race condition, debugging threading, deadlocks, sleeping blocking threads, livelocks, &#8230;.. etc. &#8211; but can you ? do you really want too?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

