You&#x27;re mixing up Apple&#x27;s ARC with reference counting in general.<p>A typical RC implementation suffers from either requiring to do AddRef&#x2F;Release calls manually (what Apple had in pre-ARC era), or blindly doing too many automatic calls. That&#x27;s ancient history and can not complete with a moderately decent modern GC.<p>ARC has neither of those disadvantages and so provides convincing alternative to GC, and AFAIK is the first and unique to do so.<p>BTW, the correct term to use here is &quot;automatic memory management&quot; (AMM), not garbage collection, and there is no such thing as &quot;proper&quot; AMM. Handling circular references is not a must-have property of AMM, it is just the price RC pays, in GC, that will be pauses and higher footprint, and other approaches exist too: for example, to disallow in compile time to create a structure that can be potentially circular.