From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!rutgers!gatech!hubcap!billwolf From: billwolf@hubcap.clemson.edu (William Thomas Wolfe,2847,) Newsgroups: comp.lang.ada Subject: Re: Garbage Collection Message-ID: <3848@hubcap.UUCP> Date: 12 Dec 88 18:19:13 GMT References: <65475@ti-csl.CSNET> Sender: news@hubcap.UUCP Reply-To: wtwolfe@hubcap.clemson.edu List-Id: >From article <65475@ti-csl.CSNET>, by gateley@m2.csc.ti.com (John Gateley): >> Also, I disagree with the claim that a lot of effort is involved; >> in my experience, DESTROY routines are among the easiest to code. >> Usually, the ADT is defined recursively, lending itself to a very >> easy recursive destruction procedure; [...] > > This method is fine, as long as no structures are shared. [...] > [...] if your programming style never uses shared structure, then you > don't need GC. Precisely. Structural sharing is nothing more than a euphemism for hacking. It is the spatial equivalent of what hackers enjoy doing with time in the name of efficiency, in their unmitigated zeal to violate every form of abstraction, to throw all traces of readability and reliability to the winds. If GC were prohibited, it would infuriate all those who enjoy hacking with space as opposed to time. Good. Let them use C. Ada is the language of those who appreciate that "abstraction is the fundamental tool with which complexity can be effectively managed", and recognize that to violate an abstraction (rather than design another which is more appropriate to their needs) is to be penny wise but pound foolish. Folks, space management in Ada is NOT that difficult. I had problems with space management in Pascal, but Ada-based ADTs have basically made it into a non-issue. The real challenges which remain are problems which are inherent in the language itself, such as getting local ADTs to be properly destroyed as an automatic consequence of a block exit. I agree that existing tools for detecting space-wasting ADTs are inadequate, but let's call for better debugging tools rather than going about advocating the practice of spewing garbage. Bill Wolfe wtwolfe@hubcap.clemson.edu