Tölvumál - 01.10.2013, Blaðsíða 15
15
kom meðal annars fram sú skoðun hans að „gæði forritara eru í öfugu
hlutfalli við þéttleika GOTO skipana í þeim forritum sem þeir skrifa„ [6].
Dijkstra sendi þessar hugleiðingar til tímaritsins Communications of the
ACM en ritstjóri þess var Niklaus Wirth. Til að flýta fyrir birtingu þessara
hugleiðinga þá breytti hann forminu yfir í bréf til ritstjórans ásamt því að
breyta titlinum í „GOTO considered harmful„, eða „GOTO talið
hættulegt„. Fljótlega hófst mikil umræða um gildi GOTO skipunarinnar í
forritun.
Árið 1987 birti Frank Rubin grein í sama tímariti undir nafninu „„GOTO
considered harmful„ considered harmful„, þar sem hann réðist gegn
grein Dijkstra og reyndi að sýna fram á að ómögulegt væri að leysa sum
vandamál innan forritunar án þess að nota GOTO [7]. Moore og félagar
reyndu að svara Rubin með grein sinni „„„GOTO considered harmful„
considered harmful„ considered harmful?„ [8]. Þá fékk Dijkstra nóg af
þessari vitleysu og sendi inn grein sem kallast „On a somewhat
disappointing correspondence„ [9]. Í þeirri grein byrjar Dijkstra á að
fullyrða að Rubin geti ekki verið alvöru tölvunarfræðingur því hann byrjar
að telja lista í 1 en ekki í 0. Að því loknu rífur hann grein Rubins
kerfisbundið í tætlur og setur fram sýnidæmi sem afsanna fullyrðingar
Rubins. Það er hins vegar bersýnilegt að það sem veldur Dijkstra
mestum vonbrigðum í þessari ritdeilu er sú staðreynd að Moore og
félagar hafi verið tilbúnir til að samþykkja eitthvað af rökum Rubin.
Breyting Niklaus Wirth á titli greinar Dijkstra átti eftir að hafa meiri
breytingar í för með sér en lönguvitleysuna í ritdeilunni um GOTO. Ef
leitað er á netinu að forskriftinni „... considered harmful„ þá má finna
þúsundir tilvísana þar sem flestallir hlutir milli himins og jarðar eru taldir
hættulegir. Til gamans má nefna tilraun Eric Mayer til að sporna við
þessari þróun með því að birta grein árið 2002 sem kallast „„Considered
Harmful„ Essays Considered Harmful„ [10].
Dijkstra hafði mikil áhrif á tölvunarfræði, forritun og þróun tölvunnar.
Hann var oft í fararbroddi á miklum umbyltingartímum og þróaði margt
sem við teljum sjálfsagt í forritun í dag. Til að mynda er gagnatagið stafli
(e. stack) hannað af Dijkstra, semafórur (e. semaphores) sem eru
notaðar í flestöllum stýrikerfum til að stjórna aðgengi að takmörkuðum
auðlindum voru settar fram af Dijkstra, lagskipting stýrikerfa, eins og er
reglan í öllum stýrikerfum í dag, var sett fyrst fram í THE stýrikerfinu en
Dijkstra var framarlega í hópnum sem bjó til það kerfi. Einnig má nefna
framlag Dijkstra til sviða eins og self-stabilizing kerfi með dreifðri
stjórnun [11], en fyrir það framlag voru PODC verðlaunin endurskírð
sem Dijkstra verðlaunin árið 2002. Þegar Dijkstra hlaut Turing verðlaunin
þá var ástæðan gefin upp sem: „For fundamental contributions to
programming as a high, intellectual challenge; for eloquent insistence
and practical demonstration that programs should be composed
correctly, not just debugged into correctness; for illuminating perception
of problems at the foundations of program design.„ [12] Í þakkarræðu
sinni, sem kallaðist „hinn auðmjúki forritari„ [13] þá réttlætir Dijkstra
viðhorf sitt til agaðra vinnubragða og lýsir þeirri skoðun sinni að það sé
lífsnauðsynlegt fyrir framtíð tölvunarfræði og forritunar að forrit séu eins
fáguð og hægt er og að aldrei sé slakað á kröfum um fagleg vinnubrögð.
Dijkstra lést 6. ágúst 2002. Hann hefur markað djúp spor í sögu
tölvunarfræðinnar, en bestu eftirmæli hans eru líklega komin frá honum
sjálfum. Í EWD skýrslu númer 1213 sem hann birti árið 1995 þá berst
talið að ódauðleika, og þá setur hann fram eftirfarandi línur: „If 10 years
from now, when you are doing something quick and dirty, you suddenly
visualize that I am looking over your shoulders and say to yourself:
„Dijkstra would not have liked this.„, well that would be enough
immortality for me.„ [14].
Heimildir:
[0] Mikkel Thorup, ‘Undirected single-source shortest paths with positive
integer weights in linear time’, Journal of the ACM 46(3): 362–394,
1999.
[1] Thomas J. Misa and Philip L. Frana. 2010. An interview with Edsger W.
Dijkstra. Commun. ACM 53, 8 (2010), 41-47.
[2] A note on two problems in connexion with graphs, Numerische
mathematik, 1959.
[3] EWD 498, „How Do We Tell Truths that Might Hurt„, http://www.cs.
utexas.edu/~EWD/ewd04xx/EWD498.PDF
[4] EWD 1304, „The end of Computing Science?„, https://www.cs.utexas.
edu/~EWD/ewd13xx/EWD1304.PDF
[5] Alan Kay, 1997 ACM Conference on Object-Oriented Programming,
Systems, Languages and applications (OOPSLA) keynote speech.
[6] „GOTO considered harmful„. A letter to the editor of Communications
of the ACM (1968). Editor Niklaus Wirth
[7] „„GOTO considered harmful“ considered harmful„„ by Frank Rubin
(Comm. ACM, 1987)
[8] „„„GOTO considered harmful„ considered harmful„ considered
harmful?„ by Moore et al (Comm. ACM, 1987)
[9] EWD 1009 „On a somewhat disappointing correspondence.„ (1987),
http://www.cs.utexas.edu/~EWD/ewd10xx/EWD1009.PDF
[10] http://meyerweb.com/eric/comment/chech.html
[11] EWD 426: Self-stabilizing systems in spite of distributed control.
Commun. ACM 17 (1974), 11: 643–644.
[12] http://amturing.acm.org/award_winners/dijkstra_1053701.cfm
[13] EWD 340: „The humble programmer„ (1972), http://www.cs.utexas.
edu/~EWD/ewd03xx/EWD340.PDF
[14] EWD 1213: „Introducing a Course on Calculi„ (1995), http://www.
cs.utexas.edu/~EWD/ewd12xx/EWD1213.PDF
Mynd fengin af http://en.wikipedia.org/wiki/File:Edsger_Dijkstra_1994.jpg