Hacker News new | past | comments | ask | show | jobs | submit login

The GIL is an implementation detail; not a bug.



Calling the GIL an implementation detail is like calling tail call elimination an implementation detail: for most software, it may be so, but there are idioms one may or may not be able to use depending on that detail. It's a visible implementation detail.


tail call elimination is a language feature. The GIL is an implementation detail of the Cpython interpreter. Jython, IronPython, and one day PyPy and Unladen-Swallow will not have a GIL.

Ergo, it is an implementation detail.


Well, in other implementations like jython and iron python, the GIL doesn't exist, so I think most people would consider it just an implementation detail


Tail-call is an implementation detail. The fact that some people think it's as fundamental to programming as the Ten Commandments is to the Judeo-Christian tradition is... well, perhaps more a problem with programmers than with language implementations.

(and yes, it's visible, and that's one reason why I have issues with it -- it's a classic leaky abstraction, except in this case the "leak" is more like a torrential flood)


If your `while'-loops would crash after a certain number of iterations (and use linear memory before that), would you call that an implementation detail or a leaky abstraction? I'd call it a bug.

And special case constructs for linear recursion like `for' and `while' are only a necessary band-aid in languages that do not treat functions properly.


Thank you for making my point eloquently.

The assumption that the way you prefer to write code should be the only way to write code is, well, exactly what I was talking about.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: