GOTO Considered Historical

Marc Stiegler marcs@skyhunter.com
Sat, 24 Oct 1998 19:30:40 -0700


This is a multi-part message in MIME format.

------=_NextPart_000_0009_01BDFF84.C8CBB040
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


A while ago, markm asked me to publish for y'all a short email I'd sent =
him about the history of the defeat of the GOTO, which is instructive in =
a number of ways. This is most relevant for those of you who are young =
enough that you didn't live through the battle (and I think markm was =
one of those too young, now that I think about it :-) This email started =
as a fulfillment of his request, but has taken a slightly different =
flavor in the face of the inheritance discussion.

One might think that Djikstra's publication of "Considered Harmful" was =
the end of the battle. On the contrary, it was only the beginning. The =
real battle involved hand-to-hand fighting between the GOTO-killers and =
the GOTO-users all over the nation: strictly small arms combat, very =
bloody, no prisoners. It continued for over a decade.

One might think that the GOTO was eventually killed by the compellingly =
persuasive,  superior logic of the GOTO-killers. Sorry. The battle would =
have continued rage until all the GOTO-users had died of old age except =
for a more important evolutionary change. Eventually, the standard =
programming languages used by everybody incorporated alternative =
solutions for all the uses of GOTO, solutions that were simpler, easier, =
and safer than the GOTO itself. At that point, the argument became moot, =
because nobody cared any more. =20

This episode of my life led to the following obervation that I've found =
has broad applicability: if you want people to do something the right =
way, you have to make the right way the easy way. This is the =
underpinning philosophy that led me to suggest making delegation as easy =
as inheritance as a reasonable third alternative. This is part of my =
reason for believing that wiping inheritance from E is more likely to =
kill E than to kill inheritance.

--marcs

------=_NextPart_000_0009_01BDFF84.C8CBB040
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">






 
A while ago, markm asked me to = publish for y'all=20 a short email I'd sent him about the history of the defeat of the GOTO, = which is=20 instructive in a number of ways. This is most relevant for those of you = who are=20 young enough that you didn't live through the battle (and I think markm = was one=20 of those too young, now that I think about it :-) This email started as = a=20 fulfillment of his request, but has taken a slightly different flavor in = the=20 face of the inheritance discussion.
 
One might think that Djikstra's = publication of=20 "Considered Harmful" was the end of the battle. On the = contrary, it=20 was only the beginning. The real battle involved hand-to-hand fighting = between=20 the GOTO-killers and the GOTO-users all over the nation: strictly small = arms=20 combat, very bloody, no prisoners. It continued for over a = decade.
 
One might think that the GOTO was = eventually=20 killed by the compellingly persuasive,  superior logic of the = GOTO-killers.=20 Sorry. The battle would have continued rage until all the GOTO-users had = died of=20 old age except for a more important evolutionary change. Eventually, the = standard programming languages used by everybody incorporated = alternative=20 solutions for all the uses of GOTO, solutions that were simpler, easier, = and=20 safer than the GOTO itself. At that point, the argument became moot, = because=20 nobody cared any more. 
 
This episode of my life led to the = following=20 obervation that I've found has broad applicability: if you want people = to do=20 something the right way, you have to make the right way the easy way. = This is=20 the underpinning philosophy that led me to suggest making delegation as = easy as=20 inheritance as a reasonable third alternative. This is part of my reason = for=20 believing that wiping inheritance from E is more likely to kill E than = to kill=20 inheritance.
 
--marcs
------=_NextPart_000_0009_01BDFF84.C8CBB040--