Chris Smith said:
Pardon for following up to you; I don't have the parent article on my
server.
This is bollocks[tm]. There are plenty of machines which run LISP down on
the metal. LISP is both interpreted and compiled, and whether interpreted
or compiled is garbage collected (indeed on most LISP systems interpreted
and compiled functions live in the same garbage collected space).
I, too, have written garbage collectors, and all the garbage collectors
I've written so far have been written in the language that they collected
for.
Yes, garbage collectors are tricky. I still have a considerable soft spot
for reference counters, simply because they don't stop the world and don't
move things about; but unless you partition your space into spaces for
different object sizes you get fragmentation, which is a downside. And
some things do get locked in, so you will ultimately get silting. What all
this means is that it works better for things like LISP (where most
objects are the same size, and only a few types of object are variable in
size) than for Java (where most types of object differ in size from one
another).
In my opinion any language with manual memory management is obsolete,
industrial archaeology, only fit for showing students how not to do
things. More serious software errors come out of mistakes in manual memory
management than any other single cause. These mistakes are unnecessary;
they are a consequence of using obsolete technology.