Subject: Re: Why garbage collection?
From: Erik Naggum <erik@naggum.no>
Date: 1996/01/15
Newsgroups: comp.lang.lisp
Message-ID: <19960115T003635Z@arcana.naggum.no>

[Richard Villanueva]

|   I realize how unlikely it is that I would break new ground on the
|   subject.  Hence my puzzlement.  A friend of mine who has worked in
|   support of AI researchers for many years told me that garbage
|   collection was one of the obstacles that was hindering the acceptance
|   of Lisp.  This got me wondering.  I take it that he must be
|   ill-informed.

most people are ill-informed about the issues of memory management in
general and garbage collection in particular.  as I hinted: it is a very
complicated topic.  e.g., people think that manual memory management is
always faster than garbage collection, and on top of this think that C's
malloc and free are time- and space-efficient.  _none_ of this is true.
it is no accident that none of the standard Unix programs use dynamic
memory unless absolutely necessary, and instead are rife with arbitrary
(small) limits.  the arguments used against garbage collections today
were probably used against dynamic memory as a whole not too long ago.

it is, however, very true that the acceptance of Lisp was hindered by a
particular brand of ill-informed misunderstanding, namely prejudice towards
automating one particular complex manual task.  for some bizarre reason,
programmers have been taught to automate complex manual tasks and have
consistently made them several orders of magnitude faster, but memory
management is somehow exempt from this rule.  why?  of course, it isn't,
but automatic storage reclamation was perceived as wasteful ("what?  there
are _dead_ objects out there, wasting _expensive_ memory?"), time-consuming
(it is actually much faster to pause infrequently (perhaps never) to do
garbage collection than to slow down the program all through its lifetime
with part-time garbage collection, but most people care about small and
immediate things, not big issues), even unnecessary ("relax, I can handle
this.  besides, I know better what my program needs than some newfangled
automatic algorithm ever could.").  some programmers also feel an acute
lack of control, and will argue about everything but their actual reasons
for not automating their memory management, preferring to micromanage
individual bytes instead of managing memory.

so your AI research supporter (?) was not ill-informed, but what he told
you was not what you thought you heard.  garbage collection hindered the
acceptance, but garbage collection was not at fault, the _perception_ of
garbage collection was the actual cause.  lack of understanding of what it
was made for a scape goat and an easy excuse.  also, popularity and lack of
it are both self-propelling.  (how often have you heard that somebody
doesn't want to learn Lisp because nobody uses it?  that's why!)

|   : I have misplaced the address of the mother of all sites on garbage
|   : collection, but there is one that has an excellent survey, and there
|   : are many papers available.
|   
|   Someone else provided the site info.  I'll FTP it.

it is customary to supplement such vague information with harder
information if you get it.  I would still like to know where it is.

#<Erik 3030654995>
-- 
the problem with this "information superhighway" is mainly that if you ask
people to go play in it, they don't even understand when they get run over.