AZ IGAZI PROGRAMOZÓ

Az igazi programozó nem Pascalban dolgozik

1. BEVEZETÉS

A régi szép idôkben (a számítógépek "aranykorában") könnyû volt megkülönböztetni az "igazi férfiakat" a "hátulgombolósoktól". Akkor azok voltak az igazi férfiak, akik megértették a programozást, a hátulgombolósok pedig azok, akik nem. Az igazi programozó ilyeneket szólt, hogy "DO I=1,10", meg hogy "ABEND" (igazándiból színtiszta negybetûkkel beszéltek), a többiek pedig azt mondták, hogy "a számítógép túl bonyolult nekem", meg hogy "nem tudok kapcsolatot teremteni a számítógéppel - nekem túlságosan személytelen". (Amint ezt az /1/ irodalomban láthatjuk, az igazi férfiak nem félnek attól, hogy nem tudnak kapcsolatot teremteni, és attól sem, hogy elszemélytelenednek.

Csakhogy, mint mindig, változnak az idôk. Manapság olyan világgal kell szembenéznünk, amelyben öreg nénikéknek számítógép van a tûzhelyükben és 12 éves flipperezô kölykök golyózhatják ki a kádból az igazi férfiakat. Manapság akárkinek is lehet saját különbejáratú házi számítógépe. Az igazi programozót az a veszély fenyegeti, hogy kihal, és ZX80-nal felszerelt középiskolások fogják helyettesíteni.

Tiszta sor, hogy ki kell mutatnunk, mi a különbség a tipikus flipperezô középiskolás és az igazi programozó között. Ha a különbséget tisztáztuk, ez mutat majd valamit a fiataloknak, valamit, amire törekedhetnek, egy apuka-képet, ha úgy tetszik. Ugyancsak segítünk megmagyarázni az igazi programozó fônökeinek, hogy hiba lenne, ha a vezetésük alatt álló igazi programozókat 12 éves flipper öcsikkel helyettesitenék (jelentôs bérmegtakarítást érve el ezáltal).



2. NYELVEK

Legszembetûnôbb különbség a plebs és az igazi programozó között a használt nyelv. Az igazi programozó FORTRANban dolgozik. A hátulgombolós Pascalban. Egyszer Niklaus Wirth-et, a Pascal megalkotóját megkérdezték, hogy hívják, amire azt válaszota, hogy hívhatják név szerint "Virt"-nek, és érték szerint "Worth"-nek. (Lefordíthatatlan szójáték, a worth értéket is jelent.) Adódik, hogy Niklaus Wirth hátulgombolós, az igazi programozó csak egyféle paraméterátadási módot használ, mégpedig a cim szerintit, amint ezt az OS/370 G és H FORTRAN fordító teszi. Az igazi programozónak nincs szüksége ilyen absztrakt fogalmakra ahhoz, hagy elvégezze a munkáját - tökéletesen érzi magát egy kártyalyukasztóval, egy FORTRAN fordítóval, meg egy sörrel. úgyhogy jegyezzük meg a következôket:

  1. Az igazi programozó a szimbólum manipulációt FORTRANban csinálja.
  2. Az igazi programozó a szövegkezelést FORTRANban csinálja.
  3. Az igazi programozó a gépidôelszámolást - már ha megcsinálja egyáltalán - FORTRANban csinálja.
  4. Az igazi programozó a mesterséges intelligencia programokat FORTRANban csinálja.
Amit nem lehet megcsinálni FORTRANban, azt meg lehet csinálni assemblyben. Amit nem lehet megcsinálni assemblyben az nem lehet megcsinálni.



3. STRUKTURÁLT PROGRAMOZÁS

A számítógéptudomány tudósai az elmúlt öt évben kitalálták a strukturált programozást. Azt állítják, hogy a programokat könnyebb megérteni, ha bizonyos speciális nyelvi konstrukciókat és technikákat használunk, bár nem értenek teljesen egyet abban, hogy melyeket. Álláspontjukat rendszerint olyan példákkal illusztrálják, amelyek elférnek valami zugfolyóirat egy lapján - tisztán látszik, hogy ez nem elég ahhoz, hogy meggyôzzön bárkit is. Mikor kijártam az iskolát, azt hittem, hogy én vagyok a legtökösebb programozó a világon. Verhetetlen amôbaprogramot tudtam írni öt különbözô nyelven, és 1000 soros programokat írtam, amelyek MÜKÖDTEK!. (Igazán!!.) Aztán a négybetûs életben az elsô feladatom az volt, hogy értsek meg egy 200000 soros FORTRAN programot, és gyorsitsam fel a kétszeresére. Akármelyik igazi programozó meg fogja mondani neked, hogy az egész világ strukturált programozása sem fog segíteni ilyen feladat megoldásakor, csak az, ha VALO'BAN tehetséges vagy. Néhány megfigyelés az igazi programozóról, és a strukturált programozásról:

  1. Az igazi programozó nem fél a GOTO-tól.
  2. Az igazi programozó öt lap hosszú DO ciklust ír anélkül, hogy belezavarodna.
  3. Az igazi programozó szereti az aritmetikai IF-eket - érdekesebb tôlük a program.
  4. Az igazi programozó önmódosító kódot ír - különösen akkor, ha meg bír vele spórolni 20 nanoszekundumot egy kis ciklus közepén.
  5. Mivel a FORTRANban nincs strukturált REPEAT, UNTIL vagy CASE utasítás, az igazi programozónak nem kell ügyelnie arra, hogy ne használja ezeket. (De persze szükség esetén szimulálhatja ôket GOTO-val.)

Az adatstruktúráknak is sok figyelmet szentelnek újabban, bizonyos körökben egyre népszerûbbek az absztrakt adattípusok, pointerek, listák, stringek. Wirth (a fent említett hátulgombolós) volt képes megírni egy egész könyvet errôl /2/, amiben azt mondja, hagy a programot nem akárhogy kell megírni, hanem az adatstruktúrákra kell építeni. Viszont amint ezt minden igazi programozó tudja, az egyetlen használható adatstruktúra a tömb. Stringek, listák, struktúrák, halmazok: ezek mind a tömb speciális esetei, és ugyanúgy is kezelhetjük ôket, anélkül, hogy a programozási nyelvünket túlbonyolítanánk velük. A legrosszab mindamellet ezekben az adatstruktúrákban az, hogy ráadásul külön deklarálni is kell ôket, pedig az igazi programozási nyelvekben, amint azt mindannyian tudjuk, implicit típusdefinició van a (6 betûs) váltzónév elsô karaktere alapján.



4. OPERÁCIÓS RENDSZEREK

Milyen operációs rendszert használ egy igazi programozó? CP/M-et? Isten ments, a CP/M igazából egy játékszer operációs rendszer, csak anyókák és iskoláskölykök értik meg és használják.

A UNIX sokkal komplikáltabb - az átlagos UNIX buherátornak sose jut eszébe, hogy is hívják ezen a héten a PRINT parancsot - de ha belejövünk, kiderül, hogy a UNIX egy reklámozott videójáték. Az emberek nem csinálnak komoly munkákat UNIX alatt - vicceket küldözgetnek szerte a világba az UUCP hálózaton meg kalandjátékokat írnak.

Nem, az igazi programozó természetesen OS/370-et használ. Az igazi programozó csak elôveszi a JCL kézikönyvét, és máris megtalálja (és meg is érti!) az IJK305I üzenet leírását. Az igazi programozé JCL-t tud írni anélkül, hogy egyáltalán kinyitná a kézikönyvet. Az igazán dögös programozó hexa számológép nélkül találja meg a hat megabyteos dumpban a hibát. (A saját szememmel láttam!)

Az OS igazán figyelemreméltó operációs rendszer. Több napos munkát lehet tönkretenni egyetlen rossz helyre rakott szóközzel, úgyhogy az éberség, az kívánatos. A rendszerhez hozzáférés tuti eszköze a kártyalyukasztó. Némelyek ugyan azt állítják, hogy az OS/370 alatt idôosztásos rendszer is van, de gondos vizsgálat után arra a következtetésre jutottam, hogy ez tévedés.



5. ESZKÖZÖK

Milyen eszközöket használ az igazi programozó? Elméletileg az igazi programozó a mérnöki pultról is bebillenyûzheti a programjait. Hajdanában, mikor a számítógépeknek még voltak mérnöki pultjaik, és ez némelykor így is történt. A tipikus igazi programozó az egész betöltôt fejbôl tudja hexában, és kijavítja, ha a programja felülirja azt. (Annakidején a memória még memória volt, és nem felejtett el mindent, mikor az áramot kikapcsolták. Manapság vagy elfelejti a dolgokat amikor nem kéne, vagy olyasmire is emlékszik, amit jobb lett volna elfelejteni.) A legenda szerin Seymour CRAY, a CRAY I és II szuperszámítógépek tervezôje (meg a legtöbb CDC gépé) a CDC 7600 elsô operációs rendszerét a mérnöki pultról pötyögte be, amikor a gépet elôször bekapcsolták. Fölösleges mondanunk, hogy Seymour Cray természetesen igazi programozó.

Kedvenc igazi programozóm a Texas Instruments egyik rendszerprogramozója. Az egyik nap távolsági hívást kapott egy usertôl, akinek fejreállt az operációs rendszere egy fontos munka mentésének a közepén. Jim telefonon keresztül megjvította a kárt, lemez i/o utasításokat iratva be a userrel a mérnöki pultról, aztán hexában kijavította a rendszer táblázatokat, a regisztereket meg telefonon olvasták neki. Erkölcsi tanulság: bár az igazi programozó szerszámkészletében van egy lyukasztó és egy sornyomtató, szükség esetén meg bír lenni egy telfonnal meg egy mérnöki pulttal is.

Némely cégeknél a szövegszerkesztés többé nem úgy néz ki, hogy tíz mérnök áll sorba egy 029-es lyukasztóhoz. Igazándiból abban az épületben, ahol én dolgozom, nincs is lyukasztó. Az igazi programozó ilyen helyzetben szövegszerkesztôkkel dolgozik. A legtöbb rendszerben többféle szövegszerkesztô van, és az igazi programozónak gondosan ki kell választania azt, amelyik a legjobban illik az egyéniségéhez. Sokan úgy gondolják, hogy a világon a legjobb szövegszerkesztôket a Xerox palo altói kutatóközpontjában fejlesztették ki, az Alto és Dorado gépekre. /3/ Sajnálatos módon nincs olyan igazi programozó, aki olyan gépet használt volna, ahol az operációs rendszert Smalltalknak hívják, és természetesen olyan sem, aki az egér farkát rángatná.

Némely dolgot ezekbôl a Xerox editorokból megcsináltak olyan gépen is, ahol az operációs rendszernek rendes neve van. Ilyen az EMACS és a VI. A gond ezekkel az editorokkal az, hogy az igazi programozó szerint az "azt kapod amit látsz" elv éppen olyan hibás az editoroknál, mint a nôknél. Nem, az igazi programozó az "ezt akartad, hát nesze" editort szereti - bonyolultat, titokzatosat, veszélyeset. TECO-t, példának okáért.

Megfigyelték, hogy egy TECO parancssorozat jóval érzékenyebb a vonal zajára, mint az olvashatóbb szöveg. /4/ Az egyik izgalmas játék amit a TECO-val játszani lehet, hogy beírjuk a nevünket parancsnak, aztán megpróbáljuk kitalálni, mit csinál. Gyakorlatilag bármaly gépelési hiba valószínûleg tönkreteszi a programot, vagy rosszabb esetben finom, misztikus hibákat helyez egy már mûködô szubrutinba.

Ebbôl kifolyólag az igazi programozók kerülik egy majdnem mûködô program editálását - úgy gondolják, hogy egyszerûbb belenyúlni a bináris kódba a SUPERZAP programmal (vagy ennek megfelelôjével a nem IBM gépeken). Ez a recept annyra jó. hogy az IBM gépeken sok mûködô programnak már nincs is köze az eredeti forráskódhoz. Sokszor az eredeti forrás már nincs is meg. Most mikor egy ilyen programba bele kell nyúlni, a fônök nem tehet mást, minthogy hív egy igazi programozót. Nincs olyan hátulgombolós strukturált programozoó, akinek egyáltalán fogalma lenne arról, hol is kell kezdeni. Ezt hivják "biztosított munkahelynek".

Néhány olyan szerszám, amit az igazi programozó nem használ:

  1. FORTRAN preprocesszorok, mint a MOTRAN és a RATFOR. Gyermekké tesznek. Lásd a fenti megjegyzéseket a strukturált programozásról.
  2. Forrásnyelvi debuggerek - az igazi programozó TUD dumpot olvasni.
  3. Indextúlcsordulást jelzô fordítók. Tönkreteszik a kreativitást, az EQUIVALENCE izgalmasabb használatát, és lehetetlenné teszik a rendszerterület negatív indexekkel módosítását.
  4. Forráskód nyilvántartó rendszerek. Az igazi programozó a forráskódot zárt szekrényben tartja, mert nyilvánvaló, hogy a tulajdonos nem hagyhatja ôrizetlenül szanaszéjjel értékes programjait. /5/



6. AZ IGAZI PROGRAMOZÓ MUNKA KÖZBAN

Hol dolgozik az igazi programozó? Milyen programok ,méltók ilyen tehetséges egyéniség erôfeszítésére? Biztosak lehetünk abban, hogy az igazi programozót nem fogjuk rajtakapni, amint éppen számlázóprogramot ír COBOLban, vagy az elôfizetôk címlistáját szortolja valami folyóiratnak. Az igazi programozó betû szerint eget-földet rázó feladatot kíván.

  1. Igazi programozók azok, akik a Los Alamos laborban dolgoznak, és atombomba szimulációkat futtatnak CRAY I/II gépeken.
  2. Igazi programozók fejtik meg az NSA-nál az orosz adásokat.
  3. Jórészt több ezer igazi programozó erôfeszítésének köszönhetô, hogy a mieink hamarább eljutottak a Holdra mint a ruszkik (és vissza is jöttek!).
  4. Igazi programozók dolgoznak a Boeingnél és írják a cirkáló rakéták operációs rendszereit.
A legtökösebb igazi programozók közül néhány a Jet Propulsion laborban dolgozik Kaliforniában. Sokan közülük fejbôl tudják a Voyager és a Pioneer ûrszondák operációs rendszerét.

Nagy, földi FORTRAN programok és kis, a szondán levô assembly programok kombinációival a navigáció és a rögtönzés hihetetlen mutatványát vitték véghez, 10 km-es pontossággal érve a Szaturnuszhoz 6 év repülés után, kijavítva vagy átkapcsolva a tönkrement rádiókat, érzékelôket, telepeket. Állítólag egy igazi programozónak sikerült a Voyager szondán néhány száz byte használatlan területre besuvasztani egy mintafelismerô programot, amely megkereste, megtalálta és lefényképezte a Jupiter egy ismeretlen holdját.

A jelenlegi tervek szerint a Galileo ûrszonda gravitációval segített pályán fog menni a Mars mellet a Jupiter felé. Ez a pálya 80+-3 km-re halad el a Mars felszíne mellett. Ilyen pontosságú navigációt senki sem bízna egy Pascal programra (vagy egy Pascal programozóra).

Amint ez sejthetô, a világ sok igazi programozója dolgozik az amerikai kormánynak (Jórészt a hadügyminisztériumnak). Ennek nyilván íguy is kell lennie. újabban sötét felhô jelent meg az igazi programozó láthatárán. úgy tünik, hogy a Hadügyminisztériumban valami magas polcra került hátulgombolósok az találták ki, hogy minden katonai programnak valami teljesen egységes "Ada" nevezetû nyelvben kell íródnia (Copyright DoD). Egy ideig úgy tûnt, hogy az Ada olyan nyelv, amely az igazi programozással ellentétes - vannak benne struktúrák, adattípusok, szigorú típusellenôrzés meg pontyosvesszôk. Szóval olyan nyelv, ami kiszorítja a kreativitást az igazi programozóból. Szerencsére a Hadügyminisztérium által elfogadott nyelv elég érdekes ahhoz, hogy az igazi programozó számára is elviselhetô legyen - bolyolult, és tartalmaz olyan lehetôségeket, amelyekkel meg lehet kavarni az operációs rendszert, újrarendezni a memóriát. És Edsgar Dijkstrának nem tetszik. /6/ (Dijkstra, amint ezt az olvasó bizonyára tudja, a "GOTO utasítás közismert ártalmasságáról" cimû cikk szerzôjeként szerzett hírnevet, amely mérföldkô volt a programozásmódszertan fejlôdésében, és a Pascal programozók meg a hátulgombolósok tapsa kísérte.) Egyébként az igazi programozó akármilyen nyelvben is bír FORTRAN programokat írni.

Az igazi programozó kompromisszumot is köthet, és dolgozhat valami kevésbé triviális feladaton is, mint az emberek kipusztítása, feltéve, hogy eleget fizetnek. Példának okáért néhány igazi programozó videojátékokat ír az Atarinak. (De persze nem játszik velük, mert az igazi programozó mindig tudja, hogyan kell megverni a gépet, és ebben nincs semmi érdekes.) A Lucasfilmnél mindenki igazi programozó. (Igazán hülyeség lenne nem megcsapolni ötven milló Startrek-szurkoló pénzét.) A számítógépes grafika területén az átlagnál kevesebb az igazi programozó, valószínûleg azért, mert még sem sem jött rá, mire is jó a számítógépes grafika. Másrészt viszont a grafikát FORTRANban csinálják, úgyhogy elég sok ember grafikázik, így kerülve el azt, hogy COBOLban kelljen adatfeldolgoznia.



7. AZ IGAZI PROGRAMOZÓ JÁTÉK KÖZBEN

Az igazi programozó azzal játszik, amivel dolgozik. Igazából folytonosan csodálkozik, hogy a munkaadója fizet azért, hogy ô azt csinálja, amit egyébként is tenne (de persze óvakodik attól, hogy ezt hangosan is kifejezze). Mindenesetre néha kilép a szobájából egy kiss friss levegôt szívni, meg pár üveg sörért. Néhány tipp, mirôl ismerkszik meg az igazi programozó a számítógéptôl távol:

  1. Buliban azok az igazi programozók, akik a sarokban ülve az operációs rendszerek védelmérôl beszélgetnek, meg arról, hogy hogyan lehet azt megkerülni.
  2. A meccsen az az igazi programozó, aki minden rúgást összehasonlít a futtatott szimulácó listájával.
  3. A strandon az az igazi programozó, aki folyamatábrákat rajzol a homokba.
  4. Temetésen az igazi programozó mondja azt, hogy "Szegény George, pont befejezte volna azt a szortoló rutint, ha el nem viszi a szívroham."
  5. Az ABC-ben az az igazi programozó, aki maga akarja a lézerceruzával leolvasni a pálcakódot a konzervekrôl, mondván, hogy a kártyáit se bízta sose a lyukasztókra.



8. AZ IGAZI PROGRAMOZÓ TERMÉSZETES SZOKÁSAI

Milyen környezetben érzi jól magát az igazi programozó? Ez ugye fontos kérdés az igazi programozó fônökeinek. Tekintve, hogy az igazi programozó mennyibe kerül, érdemes ôt olyan környezetbe helyezni, ahol a legjobban végzi a munkáját. A tipikus igazi programozó élettere termináljának közvetlen közelére terjed ki. Ezen teminál körül a következôk találhatók:

  1. Az összes program listája, amelyen az igazi programozó valaha is dolgozott, nagyjából idôrendi sorrendben, elfogalva a szoba összes sík felületét.
  2. Vagy fél tucat csésze félig üres csésze hideg kávé. Esetleg csikkek is úszhatnak a kávéban, ha nem lehetett megtalálni a listák között a hamutartót. Néha a csészékben narancslé van.
  3. Hacsak nem különlegesen jó, OS JCL kézikönyvek és a Principles of Operation, néhány érdekesebb részletnél kinyitva.
  4. A falon egy sornyomtató naptár (az 1969-es évre).
  5. A padlón szétszórva csokispapírok.
  6. A fiók alján egy folyamatábrarajzoló sablon, amit az elôzô lakô hagyott itt. (Az igazi programozó programokat ír, nem pedig dokumentációt.)
Az igazi programozó 30, 40. vagy akár 50 órát is tud dolgozni egyfolytában, intenzív nyomás alatt. Igazából így szeret dolgozni. A hosszú válaszidô nem zavarja az igazi programozót - legalább szundíthat egy kicsit, míg lemegy a fordítás. Ha nincs elég nyomás az igazi programozón, úgy igyekszik rendezni a dolgokat, hogy a feladat valami kis, de érdekes részével fogalalkozik kilenc hétig, majd a maradékot az utolsó héten fejezi be, két vagy három, 50 órás maratonban. Ezzel nem csak az ôrületbe kergeti a fônökét, aki úgy gondolja, hogy a projekt sosem lesz kész, hanem ugyancsak jó ürügye van arra, hogy ne kelljen dokumentációt csinálnia. Általában:
  1. Az igazi programozó nem dolgozik 9-5-ig. (Hacsak nem este 9-tôl reggel 5-ig.)
  2. Az igazi programozó nem visel nyakkendôt
  3. Az igazi programozó nem hord digócipôt.
  4. Az igazi programozó ebédre jön be /7/.
  5. Az igazi programozó vagy tudja a felesége nevét, vagy nem. Mindenesetre az ASCII (vagy EBCDIC) kódtáblát fejbôl tudja.
  6. Az igazi programozó nem tud fôzni. Az ABC nincs nyitva reggel 3-kor. Az igazi programozó ropin meg kávén él.



9. A JÖVÖ

Mit mondhatunk a jövôrôl? Mindenesetre el kell gondolkodnunk azon, hogy a programozók újabb generációjának nem olyan az életszemlélete, mint az elôdeiknek. Sokan közülük nem is láttak olyan számítógépet, amelynek egyáltalán lett volna mérnöki pultja. Manapság szinte egyikük sem tud számológép nélkül hexában számolni. A most végzettek puhák, megvédték ôket a programozás valóságától a forrásszintû nyomkövetôk, a zárójeleket számoló szövegszerkesztôk meg a "barátságos" operációs rendszerek. Sôt, ami a legszörnyûbb, ezek közül az úgynevezett számítógéptudósok közül némelyek anélkül kerülnek ki az egyetemrôl, hogy megtanulták volna a FORTRANt. El fogják árasztani a világot a UNIX buzerátorok meg a paszkál programozók?

Nekem úgy tûnik, hogy az igazi programozó számára van jövô. Sem az OS/370 sem a FORTRAN nem mutatja a kihalás jelét, a világ minden Pascal programozója összes erôfeszítése ellenére. Még olyan kis trükkök, hogy a FORTRANba strukturált kódolási konvenciókat vezessenek be, is sikertelenül jártak.

Persze megjelentek már a FORTRAN-77 fordítók, de hál Istennek mindegyiket vissza lehet kapcsolni a jó öreg FORTRAN-66-ba már az elsô programsorban, hogy úgy forduljanak a DO ciklusok, ahogy azt az Isten megteremtette.

Még a UNIX sem olyan rossz az igazi programozónak mint hajdanán volt. A legutóbbi UNIX verziók már egészen úgy néznek ki, mint egy operációs rendszer, olyan, amely méltó az igazi programozó érdeklôdésére. Két különbözô, és kicsit inkompatibilis user interface, misztikus bonyolult teletype driver, meg virtuális memória. Ha figyelmen kívül hagyjuk azt a tényt, hogy a C "strukturált", még a C programozás is elfogadható az igazi programozónak. Végül is nincs ellenôrzés, a változónevek hét (tíz? nyolc?) karakteresek, és bedobták a pointer adattípust is, mintha a FORTRAN és az assembly legjobb részei össze lennének keverve. És még nem is szóltunk a DEFINE ravaszabb használatáról.

Nem, a jövô nem tûnik sötétnek. Az elmúlt néhány évben a sajtó még meg is jegyezte, hogy igazi programozók és buherátorok kerülnek ki a Stanfordról és a MIT-rôl is. Láthatóan az igazi programozás szelleme bennük is él. Amíg lesznek betegen definiált célok, bizarr hibák és teljesíthetetlen határidôk, mindig lesznek igazi programozók, akik rábakkannak a problémára, és megoldják, megspórolva a dokumentációt. Sokáig éljen a FORTRAN.



Köszönetemet fejezem ki Jan E.-nek, Dave S.-nek, Rich G.-nek és Rich E.-nek, mert segítettek jellemezni az igazi programozót, Kathy E.-nek, hogy rávett, és ATD!AVSDS:MARK-nak a kezdeti inspirációért. (Meg magamnak, Dave N.-nak a gépelésért!)


  1. Feirstein, B.: "Real Men Dont Eat Quiche", New York, Pocket Books, 1982.
  2. Wirth, N.: "Algorithms + Data Structures = Programs", Prentice-Hall, 1976.
  3. Ilson, Awe.: "Recent Research in Text Processing", IEEE Trans. Prof. Commun., Vol PC-23, No. 4, Dec 4th 1980.
  4. Finseth, C.: "Theory and Practice of Text Editors - or - a Cookbook for An EMACS", B.S. thesis, MIT/LCS/TM-165, Massachusetts Institute of Technology, May 1980.
  5. Weinberg, G.: "The Psychology of Computer Programming", New York, Von Nostrand Reinhold, 1971, p.110.
  6. Dijkstra, E.: "On the GREEN Language submitted to the DoD", Sigplan notices, Vol 3 No. 10, Oct 1978.
  7. sdcarl!lin, "Real Programmers", UUcp-net, Thurs Oct 21 16:55:16 1982.
  8. Rose, Frank.: "Joy of Hacking", Science 82, Vol 3 No. 9, Nov 82, pp 58-66.
  9. "The Hacker Papers", Psychology Today, August 1980.