3 ms·
The title is off I agree, it's not like Celery fixes cpython's problematic data structures. I don't think it was a bad article, though.
by markbnj 10y ago
The title is off I agree, it's not like Celery fixes cpython's problematic data structures. I don't think it was a bad article, though.
- forgottenpass 10y agoI wouldn't have minded reading someones process of learning a new design pattern if it wasn't asserting so many things that are silly or flat out wrong during the process. That's why I originally wrote, "this is a bad article." I edified that bit out because it detracts from my point unless I take the time to go through and fisk the article.
- mdomans 10y agoWell, I'm more about advertising the lockless programming pattern :) Point out the silly, please, I like it when someone actually makes honest effort to teach me something.
- scott_s 10y agoThe title, mainly. Most readers will take that to mean that you fixed the GIL itself - that is, removed it - rather than are presenting a pattern that avoids it. Your title sets up an adversarial relationship with such readers, because their attitude when they start is going to be "no, you didn't", which will cause them to miss your actual message.
- mdomans 10y agoFair point.
- deleted 10y ago[deleted]
- theseatoms 10y agoI'm curious.. in what way are cpython's data structures problematic? Do you just mean as they relate to the GIL design choice, and the downsides/limitations that follow from the overall design?
- coldtea 10y agoHe probably means the internal datastructures of Python the language (interpreter), not the datastructures it exposes to the user (list, map, tuple, etc).
- mdomans 10y agoYup. If you don't have to care about thread safety on API level, e.g. list, problems such as what's going on currently in gilectomy are no longer yours.
- DasIch 10y agoThe GIL has atomic bytecodes as a side effect and this assumption has become part of the API. There is nothing on the datastructure side that can be done to "fix" this. In any case memory access should be considered a memory management problem just like allocating and freeing memory is. It needs to be solved on the language level to create sufficiently high level user experience. You can only do that if you're willing to do things very differently such as Rusts Ownership/Borrowing approach.
- markbnj 10y agoYes, this. Sorry I was away all day and didn't have time to reply.