Humor Humor

«Vissza

Az igazi Programozó

Az igazi programozó nem Pascalban dolgozik

 

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 nagybetû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 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 helyettesítenék (jelentõs bérmegtakarítást érve el ezáltal).

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, azt nem lehet megcsinálni.

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 gyorsítsam 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 VALÓ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) képes volt 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 legrosszabb mindamellett 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áltozónév elsõ karaktere alapján.

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.

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 megjaví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 rendszertá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 telefonnal 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ármely 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 annyira 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 programozó, 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/

AZ IGAZI PROGRAMOZÓ MUNKA KÖZBEN

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 mellett a Jupiter felé. Ez a pálya 80+-3 km-re halad el a Mars felszíne fölött. 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 így 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 - bonyolult, é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 ötvenmilló 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.

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 ismerszik 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 vonalkódot a konzervekrõl, mondván, hogy a kártyáit se bízta sose a lyukasztókra.

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 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.

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 Pascal 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 is, hogy a FORTRANba strukturált kódolási konvenciókat vezessenek be, 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ábukkannak a problémára, és megoldják, megspórolva a dokumentációt. Sokáig éljen a FORTRAN.

Köszönetnyilvánítás

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!)

Irodalom

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.