I see ARC as an acronym used every now and then, but for example in Rust it's "atomic reference counting", and in Swift or ObjC they call it "automatic reference counting". What exactly is the difference? As far as I know they seem to behave the same way.
This is actually... totally different.
On the Rust side, we have
Rc which are reference counting pointers:
Rcis the bare-bone reference-counting pointer: cloning it just increments a counter, and when the
Rcpointing to a particular piece of data is dropped, the counter falls down to 0 and that piece of data is dropped too
Arcis the atomic version of it, which means it is thread-safe and can be shared across threads (unlike
On the Swift side,
ARC refers to Automatic Reference Counting, Swift's Garbage Collection mechanism which as the name implies is automatic (and invisible in the code).