Nastoyashchie prgrammisty ne ispol'zuyut Paskal'
Istochnik: DATAMATION Jul.?? pp.207-209
=============================================
Ed Post
Wilsonville, Orezon
V proshlom, vo vremena zolotoj ery |VM bylo legko otlichat'
mal'chika ot muzha (inache ih nazyvayut "sosunki" i "nastoyashchie
muzhchiny", sootvetstvenno). Togda nastoyashchie muzhchiny byli te, kto
ponimal v programmirovanii, s sosunki - te, kto ne ponimal.
Nastoyashchij programmist legko proiznosil takie frazy, kak "DO 10
I = 1, 10" ili "AVOST", a vse ostal'nye nechto vrode "|VM slish-
kom slozhna dlya menya" i "YA ne mogu polagat'sya na |VM - oni slish-
kom bezlichny". Predydushchaya rabota, B. Feirstein, "Nastoyashchie muzh-
chiny ne upotreblyayut fruktovyj pirog", izdanie PocketBook, 1982,
otmechaet, chto nastoyashchie muzhchiny ni na chto ne polagayutsya i ne
boyatsya byt' obezlichennymi.
No vremena menyayutsya. Segodnya my zhivem v mire, v kotorom
malen'kie starye damy mogut priobresti komp'yutezirovannuyu
mikrovolnovuyu pech', 12-letnie pacany mogut vybit' iz kolei
nastoyashchih muzhchin pri igre na |VM v asteroidy i v ochko i, voobshche,
lyuboj chelovek mozhet kupit' i ponyat' svoj sobstvennyj personal'-
nyj komp'yuter. Nastoyashchij programmist v opasnosti, on mozhet byt'
zamenen studentami vysshej shkoly.
Odnako, sushchestvuet raznica mezhdu studentom-pervokursnikom,
osvoivshim na |VM igru v ochko i nastoyashchim programmistom. Znanie
etih razlichij mozhet pomoch' detyam poznat' k chemu stremit'sya -
model' povedeniya, stereotop otca. |to takzhe pomozhet sohranit'
rabochie mesta dlya nastoyashchih programmistov.
Samyj prostoj sposob opredelit', kto yavlyaetsya nastoyashchim pro-
grammistom - po ispol'zuemomu yazyku programmirovaniya. Nastoyashchie
programmisty ispol'zuyut Fortran. Sosunki ispol'zuyut Paskal'.
Niklausa Virta, razrabotchika Paskalya, odnazhdy sprosili: "Kak vy
proiznosite svoyu familiyu?". "Vy mozhete obrashchat'sya ko mne po
familii, proiznosya ee 'Virt', ili obrashchat'sya ko mne po znacheniyu,
'Vort'", - otvetil on. [Igra slov : Nicklaus Wirth proiznositsya
tak zhe, kak anglijskoe slovo Worth - stoyashchij, cennyj]
Ishodya iz etoj remarki, lyuboj srazu pojmet, chto Niklaus Virt
- sosunok. Edinstvennyj mehanizm peredachi parametrov, prinima-
emyj nastoyashchim programmistom - eto peredacha parametrov po zna-
cheniyu, kak eto realizovano v kompilyatorah Fortrana G i H dlya
|VM IBM/370. Nastoyashchim programmistam dlya vypolneniya raboty ne
nuzhny abstraktnye koncepcii: dlya schast'ya im dostatochno perfora-
tora, kompilyatora Fortran-IV i piva. Nastoyashchie programmisty
pishut programmy raboty so spiskami, obrabotki strok, ucheta re-
sursov (esli oni voobshche eto delayut) i iskusstvennogo intelekta
na Fortrane.
Esli vy ne mozhete vypolnit' eti raboty na Fortrane, vypolni-
te ih na assemblere. Esli zhe ih nel'zya vypolnit' na assemblere,
ih ne stoit delat' voobshche.
V poslednie neskol'ko let akademikov ot vychislitel'noj teh-
niki vovlekli na stezyu strukturnogo programmirovaniya. Oni
utverzhdayut, chto programmy stanovyatsya bolee ponyatnymi, esli
ispol'zuyutsya special'nye yazykovye metody i konstrukcii. Oni,
konechno, ne mogut dogovorit'sya mezhdu soboj, kakie tochno kon-
strukcii sleduet ispol'zovat', a primery, illyustriruyushchie ih
tochku zreniya, vsegda pomeshchayutsya na odnoj stranichke neizvestnyh
zhurnalov. Kogda ya okonchil shkolu, ya schital sebya samym luchshim
programmistom v mire. YA mog napisat' nepobedimuyu programmu igry
v krestiki-noliki v trehmernom prostranstve na pyati razlichnyh
yazykah programmirovaniya, a takzhe napisat' programmu, sostoyashchuyu
iz 1000 strok, kotoraya by rabotala. Zatem ya popal v real'nyj
mir. Moej pervoj zadachej bylo prochitat' i ponyat' fortranovskuyu
programmu emkost'yu 200000 strok, a zatem uvelichit' skorost' ee
raboty v 2 raza. Lyuboj nastoyashchij programmist skazhet vam, chto
vse strukturirovannoe programmirovanie mira ne pomozhet vam
reshit' problemy vrode etoj - reshenie etoj zadachi trebuet
nastoyashchego talanta.
Neskol'ko nablyudenij o nastoyashchih prigrammistah i strukturnom
programmirovanii:
- nastoyashchie programmisty ne boyatsya ispol'zovat' GOTO;
- nastoyashchie programmisty mogut bez smushcheniya napisat' cikl DO
na pyati stranicah;
- nastoyashchie programmisty lyubyat arifmeticheskie operatory IF,
t.k. ih ispol'zovanie delaet programmu bolee interesnoj;
- nastoyashchie programmisty ispol'zuyut samomodificiruyushchij kod,
osobenno v teh sluchayah, kogda eto ekonomit 20 nanosekund v
seredine ochen' korotkogo cikla;
- nastoyashchie programmisty ne nuzhdayutsya v kommentariyah : tekst
programmy vse ob®yasnyaet;
- poskol'ku v Fortrane otsutstvuyut strukturnye operatory IF,
REPEAT ... UNTIL ili CASE, nastoyashchim programmistam ne
nuzhno bespokoit'sya, chto oni ih ne ispol'zuyut; krome togo
eti operatory mozhno pri neobhodimosti simulirovat' s
pomoshch'yu prisvaivaemyh GOTO.
V poslednee vremya v presse mussiruyutsya struktury dannyh.
Abstraktnye tipy dannyh, struktury, ukazateli, spiski i stroki
stali populyarny v opredelennyh krugah. Virt, sosunok, napisal
dazhe celuyu knigu ("Algoritmy + Struktury dannyh = Programmy",
Prentice Hall, 1976 [russkij perevod - izd. "Mir", 198?]), v
kotoroj utverzhdaet, chto mozhno napisat' programmu na baze struk-
tur dannyh, ne ispol'zuya drugie sposoby. Kak vse nastoyashchie
programmisty znayut, edinstvennoj poleznoj strukturoj dannyh
yavlyaetsya massiv. Stroki, spiski, struktury i nabory - eto vse
raznovidnosti massivov i ih mozhno rassmatrivat' kak massivy bez
uslozhneniya vashego yazyka prigrammirovaniya. Huzhe vsego s etimi
hitrymi tipami dannyh to, chto vy dolzhny ih opisyvat', a
nastoyashchie yazyki programmirovaniya, kak my vse znaem, obladayut
vozmozhnost'yu neyavnogo zadaniya tipa, osnovannogo na pervoj bukve
6-simvol'nogo imeni peremennoj.
V kakoj operacionnoj sisteme rabotaet nastoyashchij programmist?
V CP/M ? Bozhe sohrani! Pomimo vsego prochego, eto v osnovnom ig-
rushka, a ne operacionnaya sistema. Dazhe malen'kie starye damy i
abiturienty mogut rabotat' v CP/M i ponyat' ee.
UNIX, konechno, bolee slozhnaya sistema - tipichnyj posledova-
tel' UNIX'a nikogda ne mozhet zapomnit', kak na etoj nedele na-
zyvaetsya komanda PRINT - no kogda on nakonec doberetsya do nee,
UNIX stanovitsya voshititel'noj videoigroj. Lyudi ne delayut ser'-
eznyh rabot v sisteme UNIX, oni rassylayut shutki po vsemu miru
po USENET ili pishut priklyuchencheskie romany i nauchnye stat'i.
Net, nastoyashchij programmist ispol'zuet OS/370. Horoshij pro-
grammist mozhet najti i ponyat' opisanie tol'ko chto poluchennogo
soobshcheniya ob oshibke IJK305I v rukovodstve po JSL. Po-nastoyashchemu
znamenityj programmist mozhet najti oshibki v raspechatke 6-mega-
bajtnoj oblasti pamyati, ne ispol'zuya kal'kulyator shestnadcati-
richnoj sistemy schisleniya.
OS/370 po nastoyashchemu udivitel'naya sistema. V nej mozhno
unichtozhit' raboty stoimost'yu neskol'ko cheloveko-dnej s pomoshch'yu
odnogo nepravil'no pomeshchennogo probela, tak-chto shtat program-
mistov vsegda dolzhen byt' na cheku. Nailuchshij sposob obshcheniya s
sistemoj - cherez perforator. Nekotorye utverzhdayut, chto v OS/370
sushchestvuet sistema razdeleniya vremeni, no posle vnimatel'nogo
izucheniya ya prishel k vyvodu, chto oni oshibayutsya.
Kakie instrumenty ispol'zuet nastoyashchij programmist v svoej
rabote? Teoreticheski, nastoyashchij programmist mozhet zapuskat'
svoi programmy, nabiraya ih na perednej paneli |VM. V dobrye
starye vremena, kogda |VM imeli perednie paneli, etot metod is-
pol'zovalsya vremya ot vremeni. Tipichnyj nastoyashchij programmist
znal naizust' nachal'nyj zagruzchik v shestnadcatirichnoj sisteme i
vosstanavlival ego s pul'ta, kogda on razrushalsya ego program-
moj. Bolee togo, pamyat' byla pamyat'yu - ee soderzhimoe ne propa-
dalo pri vyklyuchenii pitaniya. V nastoyashchee vremya pamyat' libo za-
byvaet fakty, kogda vy etogo ne hotite, libo pomnit o veshchah,
kotorye davno sledovalo by zabyt'. Hodit legenda, chto Seymour
Cray, izobretatel' super-|VM Cray-1 i bol'shinstva |VM firmy
Control Data, vvel s pul'ta naizust' pervuyu operacionnuyu siste-
mu |VM CDC 7600 pri pervom vklyuchenii etoj |VM. Konechno, Cray -
nastoyashchij programmist.
Odnim iz moih lyubimyh nastoyashchih programmistov byl Dzhim -
sistemnyj programmist firmy Texas Instruments. Odnazhdy, emu po
mezhdugorodnomu telefonu pozvonil pol'zovatel', ch'ya sistema raz-
rushilas' v processe ochen' vazhnoj raboty. Dzhim ispravil sistemu
po telefonu, zastavlyaya pol'zovatelya nabirat' na perednej paneli
|VM komandy obrashcheniya k disku, ispravlyat' sistemnye tablicy v
shestnadcatirichnoj sisteme i schityvat' emu po telefonu soderzhi-
moe registrov. Moral' etoj istorii: hotya nastoyashchij programmist
obychno vklyuchaet v nabor svoih instrumentov perforator i ACPU,
on mozhet v ekstrennyh situaciyah obojtis' perednej panel'yu |VM i
telefonom.
V nekotoryh firmah redaktirovanie tekstov programm bol'she ne
predstavlyaet soboj ochered' iz 10 inzhenerov, ozhidayushchih osvobozh-
deniya perforatora 029. Bolee togo, zdanie gde ya rabotal ne
soderzhit voobshche ni odnogo perforatora. Nastoyashchij programmist v
takih usloviyah dolzhen vypolnyat' rabotu s pomoshch'yu tekstovogo
redaktora. Bol'shinstvo sistem predlagayut na vybor neskol'ko
tekstovyh redaktorov, no nastoyashchij programmist dolzhen byt'
ochen' ostorozhen v vybore, otrazhayushchego ego individual'nost'.
Mnogie dumayut, chto nailuchshie tekstovye redaktory v mire
napisany v issledovatel'skom centre firmy Xerox v Palo Alto dlya
raboty s |VM marok Alto i Dorado. K sozhaleniyu, ni odin nastoya-
shchij programmist ne budet rabotat' na |VM s operacionnoj siste-
moj pod nazvaniem Smalltalk (korotkij razgovor) i konechno zhe ne
budet besedovat' s |VM s pomoshch'yu "myshki".
Nekotorye iz koncepcij etih redaktorov firmy Xerox byli rea-
lizovany v redaktorah, rabotayushchih v operacionnyh sistemah s bo-
lee solidnymi nazvaniyami, takimi kak EMACS i VI. Delo v tom,
chto nastoyashchij programmist schitaet plohim sleduyushchij princip re-
daktora: "To, chto vy vidite, to vy i poluchite". Nastoyashchij prog-
rammist zhelaet redaktor s principom: "Vy eto prosili, vot vam";
t.e. redaktor, kotoryj byl by slozhnym, shifrovannym, moshchnym,
neproshchayushchim i opasnym. Redaktor TECO - chtoby byt' tochnym.
Bylo zamecheno, chto posledovatel'nost' komand TECO bolee na-
pominaet pomehi v linii peredachi, chem chitaemyj tekst. Odna iz
samyh razvlekatel'nyh igr s TECO - napechatat' v kachestve ko-
mandnoj stroki svoyu familiyu i popytat'sya dogadat'sya, chto ona
sdelaet. Tochno tak zhe lyubaya sluchajnaya opechatka pri rabote s
TECO mozhet razrushit' vashu programmu, ili, huzhe togo, vnesti ne-
ulovimye i misticheskie oshibki v uzhe rabotayushchuyu programmu.
Iz-za etogo nastoyashchie programmisty neohotno redaktiruyut uzhe
rabotayushchie programmy. Oni schitayut bolee prostym neposredstvenno
latat' dvoichnyj ob®ektnyj kod, ispol'zuya prekrasnuyu programmu
pod nazvaniem SuperZap (ili ee ekvivalent na ne-IBM mashinah).
|tot metod nastol'ko horosh, chto mnogie programmy, rabotayushchie na
|VM firmy IBM, ne imeyut nichego obshchego so svoim sobstvennym
tekstom na Fortrane. V bol'shom kolichestve sluchaev pervonachal'-
nyj simvol'nyj tekst programmy voobshche ne sushchestvuet. Kogda
nastupaet vremya podpravit' takogo roda programmu, nikakoj
administrator dazhe ne dumaet poslat' na etu rabotu kogo-libo,
krome nastoyashchego programmista - nikakoj sosunok (strukturnyj
programmist) ne budut znat' dazhe s chego nachat'. |to nazyvaetsya
zashchita ot nesankcionirovannogo dostupa.
Nekotorye ne ispol'zuemye nastoyashchim programmistom sredstva
programmirovaniya vklyuchayut:
- preprocessory Fortrana, takie kak Mortran i Ratfor; eti
kulinarnye recepty v programmirovanii horoshi dlya vypechki
fruktovogo piroga;
- otladchiki dlya raboty s tekstom programmy; nastoyashchie pro-
grammisty mogut svobodno chitat' raspechatku operativnoj
pamyati;
- kompilyatory s proverkoj granic massiva; eti kompilyatory
dushat tvorchestvo, zapreshchaya naibolee interesnye varianty
operatora EQUIVALENCE i prepyatstvuyut modifikacii operaci-
onnoj sistemy s pomoshch'yu otricatel'nyh indeksov massivov.
Krome vsego prochego, kontrol' granic massiva ne effektiven;
- sistemy soprovozhdeniya i arhivizacii simvol'nyh tekstov
programm; nastoyashchij programmist hranit tekst svoih
programm v zakrytom na zamok yashchike (na perfokartah), t.k.
vladelec ne mozhet ostavit' svoi programmy bez ohrany.
Gde zhe rabotaet tipichnyj nastoyashchij programmist ? Kakie pro-
grammy dostojny takih talantlivyh individumov ? Vy mozhete byt'
uvereny, chto nastoyashchij programmist ne umret za napisaniem pro-
grammy "Zarplata" na Kobole ili sortiruya spisok pochtovyh
otpravlenij zhurnala People. Nastoyashchij programmist zhelaet zadachi
s vazhnost'yu zemletryaseniya.
Nastoyashchie programmisty rabotayut na nacional'nuyu laboratoriyu
v Los-Alamose, sozdavaya programmy na super |VM Cray-1, modeli-
ruyushchie atomnuyu bombu. Oni tak zhe rabotayut na Agenstvo po Naci-
onal'noj Bezopasnosti, rasshifrovyvaya peredachi russkih.
V bol'shoj stepeni iz-za usilij tysyach nastoyashchih programmistov,
rabotayushchih v NASA, nashi rebyata dobralis' do Luny i vernulis'
obratno, operediv kosmonavtov. |VM v kosmicheskom korable "SHatl"
byli zaprogrammirovany nastoyashchimi programmistami, i eti zhe
istinnye professionaly rabotayut na firmu Boing, sozdavaya opera-
cionnye sistemy dlya krylatyh raket.
Odna iz privodyashchih v blagogovejnyj trepet rabot nastoyashchih
programmistov vypolnena v Laboratorii reaktivnogo dvizheniya,
Kaliforniya. Mnogie znayut vsyu operacionnuyu sistemu kosmicheskih
korablej "Pioner" i "Voyadzher" naizust'. S pomoshch'yu simbioza
bol'shih nazemnyh fortranovskih programm i maden'kih bortovyh
assemblernyh, oni mogut sovershat' neveroyatnye chudesa v navi-
gacii i improvizacii - takie, kak popast' v okno shirinoj 10 km
v kol'ce Saturna posle 6-ti let poleta v kosmose i pochinit' ili
obojti neispravnye sensornye platformy, radioperedatchiki ili
akkumulyatory. Utverzhdayut, chto odin nastoyashchij programmist umud-
rilsya zasunut' prgrammu raspoznavaniya obrazov v neskol'ko sot
bajt neispol'zovannoj pamyati korablya "Voyadzher", kotoraya osu-
shchestvlyala poisk, obnaruzhila i sfotografirovala novuyu lunu
YUpitera.
Odna iz planiruemyh zadach dlya korablya "Gallilej" - ispol'zo-
vat' prityazhenie Marsa na traektorii poleta k YUpiteru. |ta
traektoriya prohodit v 80 +/- 3 km ot poverhnosti Marsa. Nikto
ne sobiraetsya doverit' paskalevskoj programme ili programmistu
takuyu navigacionnuyu zadachu.
Mnogie iz nastoyashchih programmistov vsego mira rabotayut na
pravitel'stvo SSHA, v osnovnom v Ministerstve Oborony. Tak i
dolzhno byt'. Odnako, nedavno na nebosklone nastoyashchih program-
mistov poyavilas' chernaya tucha. Kazhetsya, chto kto-to iz vysoko-
postavlennyh sosunkov v Ministerstve Oborony reshil, chto vse
oboronnye programmy dolzhny byt' napisany na nekoem velikom
unificirovannom yazyke ADA. Nekotoroe vremya kazalos', chto ADA
byla prednaznachena stat' yazykom, kotoryj shel vrazrez so vsemi
pravilami nastoyashchego programmirovaniya. |to yazyk so strukturoj,
tipami dannyh, strogim sintaksisom i tochkami s zapyatoj. Koroche,
on byl razrabotan dlya sderzhivaniya tvorchestva tipichnogo nasto-
yashchego programmista. K schast'yu, yazyk odobryaemyj Ministerstvom
Oborony, obladaet dostatochno interesnymi svojstvami, kotorye
delayut ego priemlemym - on neveroyatno slozhen, vklyuchaet v sebya
sposoby porchi operacionnoj sistemy i pereraspredeleniya pamyati,
i |dgar Dejkstra (Edsgar Dijkstra) ne lyubit ego. Dejkstre, kak
vy dolzhny znat', avtoru kraeugol'noj raboty po metodologii
programmirovaniya "GOTO - schitat' vrednymi", applodiruyut pro-
grammisty na Paskale i podobnye im sosunki. Da i potom, zakore-
nelyj nastoyashchij programmist mozhet napisat' fortranovskuyu pro-
grammu na lyubom yazyke.
Nastoyashchij programmist mozhet pojti na kompromis so svoimi
principami i rabotat' nad veshchami nemnogo bolee trivial'nymi,
chem raspad zhizni, pri uslovii, chto zdes' dostatochno platyat.
Naprimer, sushchestvuet neskol'ko nastoyashchih programmistov,
razrabatyvayushchih video-igry v Atari. No oni sami v igry ne
igrayut. Nastoyashchij programmist znaet, kak vyigrat' u mashiny, i v
etom net pryanogo udovol'stviya. Kazhdyj rabotayushchij v LucasFilm
yavlyaetsya nastoyashchim programmistom, potomu, chto nuzhno byt'
sumasshedshim, chtoby otvergnut' den'gi 50-ti milionov poklonnikov
Zvezdnyh vojn (Star Wars).
Dolya nastoyashchih programmistov, zanyatyh mashinnoj grafikoj,
neskol'ko nizhe normy v osnovnom potomu, chto nikto poka ne nashel
ej primeneniya. S drugoj strony, vsya mashinnaya grafika vypolnena
na Fortrane, tak chto sushchestvuet opredelennoe chislo lyudej,
zanimayushchihsya grafikoj dlya togo, chtoby izbezhat' programmirovaniya
na Kobole.
V obshchem sluchae nastoyashchij programmist razvlekaetsya tak zhe,
kak i rabotaet - s pomoshch'yu |VM. On ne perestaet udivlyat'sya
tomu, chto ego rabotodatel' platit emu za to, chto on vse ravno
by delal dlya razvlecheniya, hotya on dostatochno ostorozhen, chtoby
vyskazat' eto mnenie vsluh. Inogda nastoyashchij programmist
vyhodit iz kontory, chtoby glotnut' svezhego vozduha ili kruzhechku
-druguyu piva. Sushchestvuet neskol'ko priznakov, po kotorym mozhno
uznat' nastoyashchego programmista za predelami mashinnogo zala :
- na vecherinke nastoyashchie programmisty eto te, kto sidit v
uglu, obsuzhdaya zashchitu operacionnyh sistem i kak ee obojti;
- na futbol'nom matche nastoyashchij programmist sravnivaet hod
igry s "proigrovkami", raspechatannymi na fal'covannoj 11-
ili 14-dyujmovoj bumage;
- na plyazhe nastoyashchij programmist risuet blok-shemy na peske;
- nastoyashchij programmist hodit v disko-klub, chtoby posmotret'
miganie lampochek;
- na pohoronah nastoyashchij programmist izrekaet : "Bednyj
Dzhordzh. A ved' on pochti zastavil rabotat' programmu
sortirovki, kogda ego hvatil insul't";
- v bakalejnom magazine nastoyashchij programmist nastaivaet
na sobstvennoruchnoj proverke banok na lazernom apparate,
t.k. on ne verit, chto operatory mogut pravil'no otperfo-
rirovat' dannye s pervogo raza.
V kakih usloviyah luchshe vsego rabotaetsya nastoyashchemu program-
mistu ? |to ochen' vazhnyj vopros dlya nachal'nikov nastoyashchih
programmistov. Uchityvaya vysokuyu stoimost' soderzhaniya odnogo
takogo v shtate, luchshe sozdat' emu ili ej optimal'nye usloviya.
Tipichnyj nastoyashchij programmist zhivet pered displeem |VM.
Vokrug etogo displeya raspolozheny listingi programm, nad
kotorymi on kogda-libo rabotal. Oni skladirovany v kuchi
priblizitel'no v hronologicheskom poryadke na kazhdoj ploskoj
poverhnosti kontory. Vy tak zhe obnaruzhite poldyuzhiny, ili okolo
togo, napolovinu vypityh chashek s holodnym kofe. Inogda v kofe
mozhno obnaruzhit' plavayushchie "habariki" sigaret. V nekotoryh
sluchayah v chashkah nahoditsya vyzhatyj apel'sin. I tol'ko v teh
sluchayah, kogda programmist ne ochen' horosh, vy uvidite
ekzemplyary rukovodstva OS JSL i principov raboty, otkrytyh na
osobo interesnyh stranicah. Prikleennyj klejkoj lentoj, na
stene visit raspechatannyj na ACPU kalendar' s sobachkoj Snuppi
za 1969 god. Na polu razbrosany obertki ot hleba s syrom i
zemlyanymi orehami (takogo, kotoryj stanovitsya cherstvym uzhe v
pekarne, tak chto ne mozhet stat' huzhe v torgovyh avtomatah). I,
nakonec, v verhnem levom yashchike stola, pod korobochkoj Oreos,
nahoditsya linejka-shablon dlya vycherchivaniya blok-shem, ostavlen-
naya predydushchim vladel'cem stola. Nastoyashchie programmisty pishut
programmy, a ne dokumentaciyu, kotoruyu oni ostavlyayut shtatu
soprovozhdeniya.
Nastoyashchij programmist mozhet rabotat' po 30, 40 i dazhe 50
chasov nepreryvno, pod intensivnym nazhimom. Na samom dele, on i
predpochitaet tak rabotat'. Plohoe vremya otklika ne bespokoit
nastoyashchego programmista; on poluchaet vozmozhnost' vzdremnut'
mezhdu translyaciyami. Esli grafik vypolneniya raboty ne ochen'
zhestkij, to nastoyashchij programmist predpochitaet delat' svoyu
zhizn' bolee zahvatyvayushchej, rabotaya pervye 9 nedel' nad
malen'koj, no interesnoj chast'yu problemy. Zatem, on zakanchivaet
vypolnenie vsej ostal'noj chasti za 2 ili 3 50-chasovyh marafona.
|to ne tol'ko vpechatlyaet nachal'nika, no i sozdaet udobnoe
opravdanie ne delat' dokumentaciyu. V obshchem sluchae, ni odin
nastoyashchij programmist ne rabotaet s 9 do 5, za isklyucheniem teh,
kto rabotaet v nochnuyu smenu. Nastoyashchie prgrammisty ne nosyat
galstukov. Nastoyashchie programmisty prihodyat na rabotu vovremya -
k obedu. Nastoyashchij programmist mozhet znat', a mozhet i ne znat'
imya svoej suprugi. On, odnako, znaet naizust' tablicu ASCII
(ili EBCDIC) simvolov. Nastoyashchie programmisty ne umeyut gotovit'.
Bakalejnye magaziny ne chasto otkryty v 3 chasa nochi, tak chto oni
dolzhny umet' vyzhivat' na pechen'e i kofe.
Zaglyadyvaya v budushchee, nekotorye nastoyashchie programmisty
schitayut, chto novejshee pokolenie programmistov imeet ne takie zhe
vzglyady na zhizn', kak ih starshie tovarishchi. Mnogie iz nih
nikogda ne videli perednej paneli |VM. Edva-li kto-libo iz
vypusknikov v nashi dni mozhet proizvodit' vychisleniya v
shestnadcatirichnoj sisteme bez kal'kulyatora. Segodnyashnie
vypuskniki kolledzhej slaby - oni zashchishcheny ot real'nostej zhizni
simvol'nymi otladchikami, redaktorami tekstov, kotorye podschity-
vayut skobki, i loyal'nymi k pol'zovatelyu operacionnymi sistemami.
Huzhe togo, nekotorye iz etih patentovannyh uchenyh umudrilis'
"zashchitit'sya" bez izucheniya Fortrana ! Neuzheli nam predpisano
svyshe stat' otrasl'yu fanatikov UNIX'a i paskalevskih program-
mistov ?
Iz sobstvennogo opyta, ya dumayu, mozhno smelo skazat', chto
budushchee prekrasno dlya nastoyashchih programmistov. Ni OS/370, ni
Fortran ne vyskazyvayut ni kakih priznakov otmiraniya, nesmotrya
na usiliya programmistov na Paskale. Dazhe takie izoshchrennye
ulovki, kak dobavlenie konstrukcij strukturnogo programmiro-
vaniya v Fortran, provalilis'. Da, konechno, nekotorye izgotovi-
teli |VM vypustili kompilyatory Fortrana-77, no kazhdyj iz nih
ostavil vozmozhnost' perejti v rezhim kompilyatora Fortrana-66 s
pomoshch'yu udaleniya odnoj perfokarty - chtoby kompilirovat' cikly
DO kak predpisano bogom.
Dazhe UNIX mozhet byt' ne tak uzh ploh dlya nastoyashchih program-
mistov, kak v proshlom. Poslednyaya realizaciya UNIX'a obladaet
potencial'nymi vozmozhnostyami, cennymi dlya lyubogo nastoyashchego
programmista. Ona imeet dva razlichnyh i slegka nesovmestimyh
pol'zovatel'skih interfejsa, arkan i slozhnyj drajver terminala,
i virtual'nuyu pamyat'. Esli prenebrech' tem, chto on strukturnyj,
to dazhe programmirovanie na yazyke "C" mozhet byt' po dostoinstvu
oceneno nastoyashchim programmistom. V konce koncov, v nem net
proverki tipov, imena peremennyh imeyut 7 (10 ?, 8 ?) simvolov v
dlinu i vveden poleznyj tip dannyh "ukazatel'" (pointer).
Poluchaetsya, kak budto soedineny voedino luchshie chasti yazyka
Fortran i Assemblera, ne govorya uzhe o bolee tvorcheskih primene-
niyah operatora #DEFINE.
Net, budushchee ne tak uzh i mrachno. V poslednie neskol'ko let
dazhe populyarnaya pressa soobshchala o novom urozhae blestyashchih
fanatikov, vypushchennyh iz takih mest, kak Stenford i Massachuset-
skij Tehnologicheskij Institut, v real'nyj mir. Po vsemu vidno,
chto duh nastoyashchego programmirovaniya zhivet v etih molodyh yunoshah
i devushkah. Poka sushchestvuyut ploho postavlennye zadachi, strannye
oshibki i nerealistichiskie raspisaniya mashinnogo vremeni, budut
nahoditsya nastoyashchie programmisty, zhelayushchie vzyat' na sebya i
reshit' problemu, ostaviv dokumentaciyu na potom.
Da zdravstvuet Fortran !
Perevod : Pyatkin A.S. -- Leningrad
Last-modified: Thu, 12 Feb 1998 08:05:22 GMT