From mboxrd@z Thu Jan 1 00:00:00 1970 To: 9fans@cse.psu.edu From: "Thomas Bushnell, BSG" Message-ID: <87r8mr9amd.fsf@becket.becket.net> Content-Type: text/plain; charset=us-ascii References: <20020311000827.B5126199E8@mail.cse.psu.edu> Subject: Re: [9fans] samuel Date: Mon, 11 Mar 2002 10:09:54 +0000 Topicbox-Message-UUID: 6382db48-eaca-11e9-9e20-41e7f4b1d025 geoff@collyer.net (Geoff Collyer) writes: > Assigned gotos, COBOL "alter" verbs, writing large programs in > assembler, self-modifying code, and many other things in this young > field are bad ideas, but they aren't archaic, even if they are > wretched mistakes. Old != bad, and New != good; quality and age are > largely unrelated, though with luck we learn things with experience. I think what makes them archaic is that they are now moribund: people recognize they are mistakes, and they date from the very early days of the field. Being bad isn't something automatic with archaic. But something still in use isn't archaic; the reason those things aren't still in use (or shouldn't be ::grin::) is that they are now seen bad. So not "bad because archaic". And not really "archaic because bad". Rather, "archaic" meaning "dating from the earliest days, and not current now", and it happens that those techniques are no longer current because they happen to be bad. A little reflection, however, will show that being bad is neither a sufficient nor a necessary condition for a programming technique falling into disuse. So there are many archaic things which are not bad (like, say, nine track magtape) and there are many bad things which are not archaic (like, say, FORTRAN, which is old but still in use, and perl, which is new). "Archaic" is relative to the context. In my usual circles, "archaic" means "before ancient", where "ancient" refers to something roughly like 500 BC - 400 AD. But surely in CS, archaic means "dating back to the earliest days of computing", and ancient "slightly newer than archaic". Borrowing the usual sense from classical studies, might mean that we should call Babbage and early APL and lambda calculus "archaic", and we should call things like computed gotos and self-modifying code "ancient". Thomas