3 ms·
ARC won't work when you cannot determine ahead of time where the cycle can end safely. Pretty sure for an interesting set of algorithms this is a problem. It's
by throwa990323249 11y ago
ARC won't work when you cannot determine ahead of time where the cycle can end safely. Pretty sure for an interesting set of algorithms this is a problem.
It's something I find annoying about some ARC/Rust enthusiasts: their belief that because they haven't found need for a GC, that there isn't one.
- deleted 11y ago[deleted]
- arcticbull 11y agoThat's why we have the 'weak' keyword ^_^ I'm confident any algorithm you want to design for a GC world can be implemented in an ARC world, maybe with a tiny bit of tweaking. It's not that there's 'no need for GC' its just that there are many ways to solve a problem.
- jonathanyc 11y agoObviously you could implement any algorithm using reference counting instead of garbage collection. The question is whether or not you really want to pepper your code with what is essentially manual memory management when necessary.
- throwa990323249 11y agoARC languages are Turing complete, but some algorithms require more than just "peppering weakrefs" and actually require you to essentially build your own GC.
- throwa990323249 11y agoYour "confidence" is wrong. Consider a graph which can have nodes added, and edges added or removed. Say you want to keep track of the part of the graph that is connected to a node. You can't know ahead of time which references can be weak. So all must be strong and you will leak memory when a circular part of the graph becomes disconnected. In general, garbage collection is a difficult problem that solves a lot. You can't trivially do without it. It's not just a tool of laziness.