Professional Documents
Culture Documents
Az Igazi Programozó
Az Igazi Programozó
Az Igazi Programozó
i g a z i
p r o g r a m o z
1 BEVEZETS
A rgi szp idkben (a szmtgpek "aranykorban") knny
volt
megklnbztetni
az
"igazi
frfiakat"
a
"htulgombolsoktl". Akkor azok voltak az igazi frfiak, akik
megrtettk a programozst, a htulgombolsok pedig azok, akik
nem. Az igazi programoz ilyeneket szlt, hogy "DO I=1,10", meg
hogy "ABEND" (igazndibl szntiszta nagybetkkel beszltek), a
tbbiek pedig azt mondtk, hogy "a szmtgp tl bonyolult
nekem", meg hogy "nem tudok kapcsolatot teremteni a
szmtgppel - nekem tlsgosan szemlytelen". (Amint ezt az
/1/ irodalomban lthatjuk, az igazi frfiak nem flnek attl,
hogy nem tudnak kapcsolatot teremteni, s attl sem, hogy
elszemlytelenednek.
Csakhogy, mint mindig, vltoznak az idk. Manapsg olyan
vilggal kell szembenznnk, amelyben reg nnikknek szmtgp
van a tzhelykben s 12 ves flipperez klykk golyzhatjk ki
a kdbl az igazi frfiakat. Manapsg akrkinek lehet sajt
klnbejrat hzi szmtgpe. Az igazi programozt az a
veszly fenyegeti, hogy kihal, s ZX80-nal felszerelt
kzpiskolsok fogjk helyettesteni.
Tiszta sor, hogy ki kell mutatnunk, mi a klnbsg a
tipikus flipperez kzpiskols s az igazi programoz kztt.
Ha a klnbsget tisztztuk, ez mutat majd valamit a
fiataloknak, valamit, amire trekedhetnek, egy apuka-kpet, ha
gy tetszik. Ugyancsak segtnk megmagyarzni az igazi
programoz fnkeinek, hogy hiba lenne, ha a vezetsk alatt
ll igazi programozkat 12
ves
flipper
csikkel
helyettestenk (jelents brmegtakartst rve el ezltal).
2 NYELVEK
Legszembetnbb klnbsg a plebs s az igazi programoz
kztt a hasznlt nyelv. Az igazi programoz FORTRANban
dolgozik. A htulgombols Pascalban. Egyszer Niklaus Wirth-et,
a Pascal megalkotjt megkrdeztk, hogy hvjk, amire azt
vlaszota, hogy hvhatjk nv szerint "Virt"-nek, s rtk
szerint "Worth"-nek.
(Lefordthatatlan szjtk, a worth
rtket is jelent.) Addik, hogy Niklaus Wirth htulgombols, az
igazi programoz csak egyfle paramtertadsi mdot hasznl,
mgpedig a cim szerintit, amint ezt az OS/370 G s H FORTRAN
fordt teszi. Az igazi programoznak nincs szksge ilyen
absztrakt fogalmakra ahhoz, hagy elvgezze a munkjt tkletesen rzi magt egy krtyalyukasztval, egy FORTRAN
fordtval, meg egy srrel.
gyhogy jegyezzk meg a
kvetkezket:
3 STRUKTURLT PROGRAMOZS
A szmtgptudomny tudsai az elmlt t vben kitalltk
a strukturlt programozst. Azt lltjk, hogy a programokat
knnyebb megrteni, ha bizonyos specilis nyelvi konstrukcikat
s technikkat hasznlunk, br nem rtenek teljesen egyet abban,
hogy melyeket. llspontjukat rendszerint olyan pldkkal
illusztrljk, amelyek elfrnek valami zugfolyirat egy lapjn tisztn ltszik, hogy ez nem elg ahhoz, hogy meggyzzn brkit
is. Mikor kijrtam az iskolt, azt hittem, hogy n vagyok a
legtksebb programoz a vilgon. Verhetetlen ambaprogramot
tudtam rni t klnbz nyelven, s 1000 soros programokat
rtam, amelyek MKDTEK!. (Igazn!!.) Aztn a ngybets letben
az els feladatom az volt, hogy rtsek meg egy 200000 soros
FORTRAN programot, s gyorstsam fel a ktszeresre. Akrmelyik
igazi programoz meg fogja mondani neked, hogy az egsz vilg
strukturlt programozsa sem fog segteni ilyen feladat
megoldsakor, csak az, ha VALBAN tehetsges vagy. Nhny
megfigyels az igazi programozrl, s a strukturlt
programozsrl:
1. Az igazi programoz nem fl a GOTO-tl.
2. Az igazi programoz t lap hossz DO ciklust r anlkl,
hogy belezavarodna.
3. Az igazi programoz szereti az aritmetikai IF-eket
rdekesebb tlk a program.
4 OPERCIS RENDSZEREK
Milyen opercis rendszert hasznl egy igazi programoz?
CP/M-et? Isten ments, a CP/M igazbl egy jtkszer opercis
rendszer, csak anykk s iskolsklykk rtik meg s
hasznljk.
A UNIX sokkal komplikltabb - az tlagos UNIX buhertornak
sose jut eszbe, hogy is hvjk ezen a hten a PRINT parancsot de ha belejvnk, kiderl, hogy a UNIX egy reklmozott
videjtk. Az emberek nem csinlnak komoly munkkat UNIX alatt
- vicceket kldzgetnek szerte a vilgba az UUCP hlzaton, meg
kalandjtkokat rnak.
Nem, az igazi programoz termszetesen OS/370-et hasznl.
Az igazi programoz csak elveszi a JCL kziknyvt, s mris
megtallja (s meg is rti!) az IJK305I zenet lerst. Az
igazi programoz JCL-t tud rni anlkl, hogy egyltaln
kinyitn a kziknyvet. Az igazn dgs programoz hexa
szmolgp nlkl tallja meg a hat megabyteos dumpban a hibt.
(A sajt szememmel lttam!)
Az OS igazn figyelemremlt opercis rendszer. Tbb
napos munkt lehet tnkretenni egyetlen rossz helyre rakott
szkzzel, gyhogy az bersg, az kvnatos. A rendszerhez
hozzfrs tuti eszkze a krtyalyukaszt. Nmelyek ugyan azt
lltjk, hogy az OS/370 alatt idosztsos rendszer is van, de
gondos vizsglat utn arra a kvetkeztetsre jutottam, hogy ez
tveds.
5 ESZKZK
Milyen eszkzket hasznl az igazi programoz? Elmletileg
az igazi programoz a mrnki pultrl is bebillenyzheti a
programjait. Hajdanban, mikor a szmtgpeknek mg voltak
mrnki pultjaik, s ez nmelykor gy is trtnt. A tipikus
igazi programoz az egsz betltt fejbl tudja hexban, s
kijavtja, ha a programja fellirja azt. (Annakidejn a memria
mg memria volt, s nem felejtett el mindent, mikor az ramot
kikapcsoltk. Manapsg vagy elfelejti a dolgokat amikor nem
kne, vagy olyasmire is emlkszik, amit jobb lett volna
elfelejteni.) A legenda szerin Seymour CRAY, a CRAY I s II
szuperszmtgpek tervezje (meg a legtbb CDC gp) a CDC 7600
els opercis rendszert a mrnki pultrl ptygte be, amikor
a gpet elszr bekapcsoltk. Flsleges mondanunk, hogy
Seymour Cray termszetesen igazi programoz.
nem
rgst
9 A JV
Mit mondhatunk a jvrl?
Mindenesetre el kell
gondolkodnunk azon, hogy a programozk jabb genercijnak nem
olyan az letszemllete, mint az eldeiknek. Sokan kzlk nem
is lttak olyan szmtgpet, amelynek egyltaln lett volna
mrnki pultja. Manapsg szinte egyikk sem tud szmolgp
nlkl hexban szmolni. A most vgzettek puhk, megvdtk ket
a programozs valsgtl a forrsszint nyomkvetk, a
zrjeleket szmol szvegszerkesztk meg a "bartsgos"
opercis rendszerek. St, ami a legszrnybb, ezek kzl az
gynevezett szmtgptudsok kzl nmelyek anlkl kerlnek ki
az egyetemrl, hogy megtanultk volna a FORTRANt. El fogjk
rasztani a vilgot a UNIX buzertorok meg a Pascal
programozk?
Nekem gy tnik, hogy az igazi programoz szmra van jv.
Sem az OS/370 sem a FORTRAN nem mutatja a kihals jelt, a vilg
minden Pascal programozja sszes erfesztse ellenre. Mg
olyan kis trkkk is, hogy a FORTRANba strukturlt kdolsi
konvencikat vezessenek be, sikertelenl jrtak.
Persze megjelentek mr a FORTRAN-77 fordtk, de hl'
Istennek mindegyiket vissza lehet kapcsolni a j reg
FORTRAN-66-ba mr az els programsorban, hogy gy forduljanak a
DO ciklusok, ahogy azt az Isten megteremtette.
Mg a UNIX sem olyan rossz az igazi programoznak mint
hajdann volt. A legutbbi UNIX verzik mr egszen gy nznek
ki, mint egy opercis rendszer, olyan, amely mlt az igazi
programoz
rdekldsre.
Kt
klnbz, s kicsit
inkompatibilis user interface, misztikus bonyolult teletype
driver, meg virtulis memria. Ha figyelmen kvl hagyjuk azt a
tnyt, hogy a C "strukturlt", mg a C programozs is
elfogadhat az igazi programoznak. Vgl is nincs ellenrzs,
a vltoznevek ht (tz? nyolc?) karakteresek, s bedobtk a
pointer adattpust is, mintha a FORTRAN s az assembly legjobb
rszei ssze lennnek keverve. s mg nem is szltunk a DEFINE
ravaszabb hasznlatrl.
Nem, a jv nem tnik sttnek. Az elmlt nhny vben a
sajt mg meg is jegyezte, hogy igazi programozk s buhertorok
kerlnek ki a Stanfordrl s a MIT-rl is. Lthatan az igazi
programozs szelleme bennk is l. Amg lesznek betegen
definilt clok, bizarr hibk s teljesthetetlen hatridk,
mindig lesznek igazi programozk, akik rbukkannak a problmra,
s megoldjk, megsprolva a dokumentcit. Sokig ljen a
FORTRAN.
Ksznetnyilvnts
Ksznetemet fejezem
G.-nek s Rich E.-nek,
programozt, Kathy E.-nek,
kezdeti inspircirt.
gpelsrt!)
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.
Nov 82, pp 58-66.
9,