<story><title>Our Plan for Python 3.13</title><url>https://github.com/faster-cpython/ideas/blob/main/3.13/README.md</url></story><parent_chain><item><author>samwillis</author><text>The &amp;quot;Faster Python&amp;quot; team are doing a fantastic job, it&amp;#x27;s incredible to see the progress they are making.&lt;p&gt;However, there is also a bit of a struggle going on between them and the project to remove the GIL (global interpreter lock) from CPython. There is going to be a performance impact on single threaded code if the &amp;quot;no GIL&amp;quot; project is merged, something in the region of 10%. It seems that the faster Python devs are pushing back against that as it impacts their own goals. Their argument is that the &amp;quot;sub interpreters&amp;quot; they are adding (each with its own GIL) will fulfil the same use cases of multithreaded code without a GIL, but they still have the overhead of encoding and passing data in the same way you have to with sub processors.&lt;p&gt;There is also the argument that it could &amp;quot;divide the community&amp;quot; as some C extensions may not be ported to the new ABI that the no GIL project will result in. However again I&amp;#x27;m unconvinced by that, the Python community has been through worse (Python 3) and even asyncIO completely divides the community now.&lt;p&gt;It&amp;#x27;s somewhat unfortunate that this internal battle is happening, both projects are incredible and will push the language forward.&lt;p&gt;Once the GIL has been removed it opens us all sorts of interesting opportunities for new concurrency APIs that could enable making concurrent code much easer to write.&lt;p&gt;My observation is that the Faster Python team are better placed politicly, they have GVR on the team, whereas No GIL is being proposed by an &amp;quot;outsider&amp;quot;. It just smells a little of NIH syndrome.</text></item></parent_chain><comment><author>dekhn</author><text>The GIL will never be removed from the main python implementation.  Histortically, the main value of GIL removal proposals and implementations has been to spur the core team to speed up single core codes.&lt;p&gt;I think it&amp;#x27;s too late to consider removing the gil from the main implementation.  Like guido said in the PEP thread, the python core team burned the community for 10 years with the 2-3 switch, and a GIL change would be likely as impactful; we&amp;#x27;d have 10 years of people complaining their stuff didn&amp;#x27;t work.  Frankly I wish Guido would just come out and tell Sam &amp;quot;no, we can&amp;#x27;t put this in cpython.  You did a great work but compatibility issues trump performance&amp;quot;.&lt;p&gt;Kind of a shame because Hugunin implemented a Python on top of the CLR some 20 years ago and showed some extremely impressive performance results.  Like jython, and pypy and other implementations, it never caught on because compatibility with cpython is one of the most important criteria for people dealing with lots of python code.</text></comment>
<story><title>Our Plan for Python 3.13</title><url>https://github.com/faster-cpython/ideas/blob/main/3.13/README.md</url></story><parent_chain><item><author>samwillis</author><text>The &amp;quot;Faster Python&amp;quot; team are doing a fantastic job, it&amp;#x27;s incredible to see the progress they are making.&lt;p&gt;However, there is also a bit of a struggle going on between them and the project to remove the GIL (global interpreter lock) from CPython. There is going to be a performance impact on single threaded code if the &amp;quot;no GIL&amp;quot; project is merged, something in the region of 10%. It seems that the faster Python devs are pushing back against that as it impacts their own goals. Their argument is that the &amp;quot;sub interpreters&amp;quot; they are adding (each with its own GIL) will fulfil the same use cases of multithreaded code without a GIL, but they still have the overhead of encoding and passing data in the same way you have to with sub processors.&lt;p&gt;There is also the argument that it could &amp;quot;divide the community&amp;quot; as some C extensions may not be ported to the new ABI that the no GIL project will result in. However again I&amp;#x27;m unconvinced by that, the Python community has been through worse (Python 3) and even asyncIO completely divides the community now.&lt;p&gt;It&amp;#x27;s somewhat unfortunate that this internal battle is happening, both projects are incredible and will push the language forward.&lt;p&gt;Once the GIL has been removed it opens us all sorts of interesting opportunities for new concurrency APIs that could enable making concurrent code much easer to write.&lt;p&gt;My observation is that the Faster Python team are better placed politicly, they have GVR on the team, whereas No GIL is being proposed by an &amp;quot;outsider&amp;quot;. It just smells a little of NIH syndrome.</text></item></parent_chain><comment><author>matsemann</author><text>GIL is one of the things that make Python an annoyance to work with. In saner languages, you could handle multiple requests at the same time, or easily spin something off in a thread to work in the background. In Python you can&amp;#x27;t do this. You need to duplicate your process, then pay the price of memory usage and other things multiple processes hinder (like communication between threads or pre-computed values now aren&amp;#x27;t shared so you need something external again). To deploy your app, you end up with 10 different deploys because each of them have to have a different entry point and separate task to fulfill.</text></comment>