|
|
|
|
|
by takeda
3433 days ago
|
|
>>- the solutions to a problem (I'm thinking GIL) come with a lot of consequences which are not readily acceptable > I did not propose a solution because there are many, as you note; there are, however, implementations with decent solutions like AFAIK Jython. >>- solving some of the issues would exacerbate backwards compatibility. > Such as what? Let's use the GIL for example. The reason that is still present is not that it is hard to remove it. It already was removed in the past. The problem is that when GIL is replaced with smaller locks, the python becomes much slower, because of some features and behavior that people got used to. One could make python faster by changing behavior, but then it would break existing code and C extensions. There's no easy way to do this without sacrificing something else. Larry Hastings work on removing GIL and has interesting talk about it[1] [1] https://www.youtube.com/watch?v=fgWUwQVoLHo |
|
Most people who are ignorant about the subject always assume the GIL is stupid and useless, but the GIL allows Python to be extremely fast in single threaded scenarios, and any attempt to remove it introduces at least 20% slow downs.
And C extension support is also a huge factor as you mention. All of Python's scientific modules would be lost if they broke that.
The author assumes these are simple problems that can be solved but aren't because of politics or incompetence, but some of the smartest mind have attempted and failed.
I'd like the author to try and come up to solutions or at least draft ideas for how each of his points can be fixed. A lot of those are easy to state but difficult to solve without breaking more stuff.