Why not make the garbage collector check the reference count before freeing objects? Only c extensions would increment the ref count while python code would just use garbage collector making ref count = 0. That way even the existing c extensions would continue to work.
Regarding to Java using all the memory, thats not really true. It has a default heap size which may exceed the total memory in a particular environment(Android ). -- https://mail.python.org/mailman/listinfo/python-list