One problem with #GarbageCollection is that it can only free one kind of resource: heap memory.
For all other resources, like sockets and file handles, you still need some other reliable and convenient mechanism to free them in a timely fashion when they're no longer needed.
And if you have that…why not use it on heap memory?