The Garbage Clearance Model
A high-level method of resource management, typified by Lisp and Java,
is garbage-clearance. This has the advantage of taking the problem
right away from the programmer and transferring it to the language
itself, so the danger of crippling programming errors is removed
altogether. As against that it is a substantial overhead even where
it isn't necessary, and it deprives the programmer of useful levels
of control, such as the ability to control the lifetime of a resource.
It also requires that all program components - including third-party
libraries - are built on the same system, which is clearly not possible
in an open system written in C.