4 ms·
I find it terribly annoying when the solution to a language problem is "Write an extension". It's a cop-out. Java, .NET, various Lisps, and I'm sure other syst
by pnathan 15y ago
I find it terribly annoying when the solution to a language problem is "Write an extension". It's a cop-out.
Java, .NET, various Lisps, and I'm sure other systems that I don't know off the top of my head have solved the problem of true threading.
- wycats 15y agoRubinius (in the current 2.0 betas) has removed the GIL as well. In fact, the only Ruby that still has a GIL is MRI. MacRuby, JRuby and Rubinius (as of 2.0) all have threading without a GIL.
- aklein 15y ago"I want to point out one more time that the language doesn't require the GIL -- it's only the CPython virtual machine that has historically been unable to shed it." http://www.artima.com/weblogs/viewpost.jsp?thread=214235 http://www.artima.com/weblogs/viewpost.jsp?thread=214235
- pnathan 15y agoI don't want to get into a software hipster flamewar about the definition of 'mainstream', but CPython is the Standard Python. When I click on "Windows Installer" on python.org, I get CPython.
- aklein 15y agoAgreed, for now, CPython == Python. But PyPy aims to change this. http://morepypy.blogspot.com/2011/06/global-interpreter-lock-or-how-to-kill.html http://morepypy.blogspot.com/2011/06/global-interpreter-lock...
- rbanffy 15y agoAs long as they are able to run the same software, who cares?
- pnathan 15y agoWell, if Python runs really fast for the clued-in users who use PyPy and pretty slow for the non-clueful, then I'm providing my users with a bad experience. I need to be able to reliably deliver fast code without futzing around with custom installs of Python just to deliver an app.
- rbanffy 15y agoActually, it runs well enough in CPython unless you are doing something terrible with your code. What it doesn't do is execute more than one thread within the same process. If you don't need to share in-memory data between your threads (which is something you really should avoid, for your own sake), you can use the same mechanism you use to create a thread to create a new process.
- davvid 15y agoAnyone who links against (or depends on software that links against) libpython*.so cares. Here are two examples of products that ship python. You can't just "swap out the interpreter". http://www.thefoundry.co.uk/products/nuke/ http://www.thefoundry.co.uk/products/nuke/ http://usa.autodesk.com/maya/ http://usa.autodesk.com/maya/
- rbanffy 15y agoWell... Then they care. But I don't think the majority of Python code out there falls in these categories.