5 ms·
thx for clarifying this. still a strange example since the GIL is not thought to be a problem, from what i read on pydev.
by monos 17y ago
thx for clarifying this. still a strange example since the GIL is not thought to be a problem, from what i read on pydev.
- jnoller 17y agoThe GIL is an implementation detail; not a bug.
- amalcon 17y agoCalling 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.
- aceofspades19 17y agoWell, 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
- ubernostrum 17y agoTail-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)
- eru 17y agoIf 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.
- ubernostrum 17y agoThank 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.
- jnoller 17y agotail 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.