Ocenite etot tekst:


        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
Ocenite etot tekst: