Stila sastāvdaļa: Unix kā literatūra
Tomass Skovils The Elements Of Style: UNIX As Literature
Ja Unix ļaudis nav savādāki par citiem, kāpēc tik daudzi no tiem ir brīvmākslinieki?
Unix atšķiras ar vārda mīlestību.
1980-to gadu beigās es strādāju reģionālas Silīcija ielejas telefonu kompānijas izpētes un izstrādes daļā. Vairums laboratorijā strādājošo bija doktori un apdāvināti hakeri. Kā jūs varat nojaust, mēs strādājām praktiski tikai ar Unix.
Grupas vadītājs bija izņēmums. Viņam nebija ne akadēmiskā grāda, ne arī kādu sasniegumu tehnoloģijās. Un šķita, ka arī viņš pats to apzinās. Mums bija aizdomas, ka viņš jutās (kā mēs uzskatījām, nepelnīti) neērti par savu izglītību un intelektu. Kādu dienu grupā paklīda baumas, kas apstiprināja mūsu aizdomas – mūsu vadītājs tik tiešām ir nobijies no grupas inteliģences un ir nolēmis situāciju labot. Viņa lēmums gan bija negaidīts: "Man nepieciešams kļūt par intelektuāli," viņš teica "es mācīšos Unix."
Nav brīnums, ka mēs to lielākoties uztvērām ar nelielu jautrību. Ar to domājot: "Ō jā. Unix var padarīt viņu par gara milzi, tāpat kā putnubiedēkli par ķēniņu." Es ciniski iedomājos variāciju par Čārlza Atlasa reklāmu: "Šie rūdītie inženieri nekad vairs neiemīs manu seju dubļos."
Bet mans otrais es bija saprotošs: "Boss tomēr nav galīgs muļķis, jo Unix cilvēki ar kaut ko ir savādāki". Tomēr to, ko bija pamanījis mans tā laika priekšnieks, es pilnībā sapratu tikai daudzus gadus pēc tam. Es vēl joprojām uzskatu, ka viņš kaut ko bija pārpratis, tomēr tagad saprotu, ka viņš nekļūdījās tik ļoti, kā man tas šķita toreiz.
Protams, Unix kopienai ir savs profesionālais idiotisms un dīvains skats uz lietām, bet mana pieredze rāda, ka tajā ir aizdomīgi plaši pārstāvēti poligloti, mākslas un zinātņu pārstāvji. Atzīstu, mani pierādījumi ir nenoteikti un balstīti uz gadījumiem. Piemēram, ja rakstot sistēmas komandas, man pār plecu raugās kolēģis, es varu ierakstīt sekojošu apzināti sarežģītu kodu:
then
echo ^G
fi
# Kam atskanēs zvans?
Unix kolēģi visticamākais sapratīs un atspēlēs manu gājienu tā, kā to nekad nedarītu VMS un IBM lieldatoru datu centros vai DOS aizgaldos.
Tā kā es pats esmu brīvmākslinieka tips (lai arī esmu to gudri noslēpis savā CV), es nesapratu, kāpēc tas ir tā. Mans sākotnējais skaidrojums, ka vainīga ir Unix vēsturiskā saistība ar universitāšu datu apstrādes centriem kā Bērkliju, šķita patiess daudzus gadus. Tomēr pārāk daudzi Unix mīlētāji ir nākuši no skolām ar nelielu vai nekādu datoru pieredzi. Kādai saistībai bija jābūt, bet ticamāka skaidrojuma man nebija.
Nespējot rast izskaidrojumu, es sāku regulāri jautāt Unix noliedzējiem, kas viņiem nepatīk Unix vidē. Tas deva labāku skaidrojumu.
Viena daļa paustās nepatikas bija ar izteikti populistisku smaku – cilvēki noliedza Unix ar tādu pašu aizvainojumu, ar kādu proletārieši noliedza tādas izsmalcinātas lietas kā operu vai baletu. Un viņiem bija taisnība – līdz pat nesenam laikam Unix bija skaitļošanas augstieņu neskartā zeme. Un izplatītākā, praktiskākā un nepriviliģētākā skaitļošanas šķira protestēja pret šo Unix privilēģiju auru. Vēsturiski Unix iesvētītie bija slēgta kasta, kas sliecās dižoties ar savām grūti nopelnītajām zināšanām. Tomēr modernajā pasaulē šī klašu atšķirības strauji samazinās. Tagad Unix inženieri ir bieži sastopami, ir pieejamas lētas vai bezmaksas Unix variācijas, kuras var darbināt uz lētas aparatūras. Pilnīgi noteikti Unix ļaudis vairs nav tik izlutināti kā Windows NT laikā.
Otra standarta mantra, ko skaitīja parasti bija: "Unix ir sarežģīts, to ir grūti iemācīties. Ir jāatceras pārāk daudzas lietas. Tas ir nepārskatāms un nevajadzīgi mistisks."
Bet paši lielākie iebildumi bija par to, ka tas ir pārāk orientēts uz tekstu. Cilvēki patiesi ienīda komandrindu ar visiem tās rīkiem, nesaprotamiem slēdžiem un Unix argumentiem, ko nākas atcerēties. Viņi necieta rakstīšanu. Viens nepareizs burts un Unix viss jāsāk no jauna. Interesanti, ka šie iebildumi visvairāk nāca no grafiskās saskarnes orientētiem Macintosh vai Windows sistēmu lietotājiem. Cilvēkiem, kas bija aizmukuši no DOS komandu skriptiem vai bija vadījuši savas dienas pie citu ne-Unix sistēmu teksta termināļiem, parasti šādu iebildumu nebija.
Lai arī es sapratu, ka var nepatikt atcerēties apzināti nesaprotamus rīku nosaukumus kā cat un grep, es vēl arvien nesapratu, kāpēc viņi apvainojās par rakstīšanu.
Unix programmētāji izteic sevi ar bagātu sistēmas rīku vārdnīcu un komandrindas argumentiem, izmantojot elastīgu un dažādu sintaksi un gramatiku. Unix entuziastiem valoda ir otrā daba. Reiz es dzirdēju sarunu Palo Alto restorānā: "Šeit mēdz būt garneles ar makaroniem zem desmit dolāriem. Tā, skatāmies... cat menu | grep shrimp | test -lt $10..." lai arī ne pilnībā sintaktiski pareiza (un ne pārāk dzirkstoša), šāda pusdienu saruna starp NT kolēģiem noteikti nebūtu ikdienišķa.
Unix komandrindā teksts, STDIN, STDOUT un STDERR ir galvenais saskarnes veids. Unix sistēmas rīki ir kā vārda meistaru lego klucīši. Caurules un filtri savieno vienu rīku ar nākamo un starp tiem nemanāmi plūst teksts. Čaulā darbojoties awk/lex atvasinājumiem un rīkiem, burtiski top vārdu deja.
Strādājot komandrindā, rokas nepārtraukti atrodas uz tastatūras bez regulāras sniegšanās pēc peles – tā ir poza, kas ir raksturīga rakstniekiem (īpaši tiem vecajiem vilkiem, kas savā laikā strādāja ar elektriskajām rakstāmmašīnām un teletaipiem). Tas prasa tās pašas iemaņas, kas ir nepieciešamas stāsta rakstīšanai. Abos gadījumos ir nepieciešamas kompozīcijas iemaņas. Abos ir nepieciešamas pamatīgas sintakses un gramatikas zināšanas, abos tiek atalgots spēcīgs un kodolīgs izteiksmes veids.
Riskējot palikt nesaprasts gan no inženieru, gan no rakstnieku puses, es uzsveru, ka arī Unix piedāvā to, ko vērtē literatūrā: skaidru un vienotu stilu, ko rakstnieki sauc par valodu. Nav nepieciešams ilgs Unix lietošanas laiks, lai saprastu, ka Unix pamats ir dažu labi saskaņotu prātu rezultāts. Es nekad neesmu saticis Denisu Ričiju, Braienu Kerniganu vai Kenu Tomsonu, bet pēc pusotras dekādes darba ar Unix, es jūtu viņus kā savus draugus, un saprotu viņu domāšanu.
Jūs varētu iebilst, ka arī Unix var būt vizuāli orientēts kā citas operētājsistēmas. Modernajiem Unix piedāvājumiem grafiskā saskarne noteikti ir vērā ņemama. Tomēr praksē Unix kodols lietotājus pārvērš – pēc laika viņi nevis pamet komandrindu, bet gan turpina Unix tradicionālās vārdu kultūras kopšanu. Apskatiet kādu Unix darbstacijas ekrānu. Vairumā gadījumu pusi no ekrāna aizņem termināļu logi ar komandrindas uzaicinājumu un fonā pildītu darbu izdrukām.
Vārdu un attēlu kultūras atšķirības asi parādās Unix un Windows pasaulēs. Kad dažus gadus atpakaļ parādījās Redmondas giganta kvēli daudzinātais Unix bende, es to saņēmu ar atvērtu prātu. Tomēr Windows NT mani nesajūsmināja. Tajā dziļi iekšā bija kaut kas tāds, kas man nepatika. Man bija neizsakāma sajūta (atvainojos Ģertrūdei Šteinai), ka tas nav tas. Protams, galvenās sistēmu un tīklu pārvaldības lietas es jau biju apguvis strādājot ar Unix, tomēr jāatzīst, ka reģistra urķēšana pēc dažām dienām manī radīja īgnumu. Bet pēc īsā kāpiena pa zināšanu līkni es skatījos uz Unix ar sajūtu, ka esmu pazemināts no ekskavatorista par zāles grābēju. NT vienkārši nedeva vietu rīcībai.
NT pilnīgi noteikti bija pārāk balstīta uz attēlu kultūru, lai es ar to justos ērti: bezgalīgās norādi-un-klikšķini grafiskajos dialoglogos, peles kursora medīšana pa ekrānu, viens uznirstošais logs pēc otra, prasīja pārāk daudz manas uzmanības. Darbības bija tikai reaģēšana. Katrs uzdevums ar grafisko saskarni palaidās ar nezināmiem pieņēmumiem kā vizualizēt (līdz ar to, arī kā konceptualizēt) darbību. Es nespēju domāt "ārpus kastes" tāpēc, ka viss bija kaste. Nebija neviena cita veida, kā uzdevumu veikt savādāk.
Jāatzīst, ka dažās jomās NT padarīja manu dzīvi vieglāku. Es atklāju, ka es mazāk atceros (rīku nosaukumus, komandu argumentus, sintaksi) un vairāk atpazīstu (risinājuma soļus kā izvēles rūtiņas, izvēlnes un pogas). Es mazāk laika pavadīju rakstot. Mana labā roka pavadīja daudz vairāk laika uz peles, ganot pa ekrānu kursoru, nekā uz tastatūras. Bet pēc pāris mēnešiem es sāku justies noguris un iztukšots, ar sajūtu, kāda rodas pēc pārāk ilgas blenšanas televizorā vai spēļu spēlēšanas. Pārāk daudz es biju reaģējis, bet pārāk maz biju analizējis un izteicies. Īsumā – attēlu kultūrā es biju izdedzis.
Vienīgais gaismas atspulgs ceļojumā pa NT vidi bija augošā Perl popularitāte. Sākumā Perl atrada ceļu uz NT kā CGI tīmekļa risinājums, bet cilvēki ātri atklāja tā spēku un pielāgoja to arī ārpus tīmekļa vides: sistēmu pārvaldībai, versiju kontrolei, attālinātai failu un tīkla pārvaldībai. Jocīgi ir tas, ka pats Perl ir kā Unix apakškopa, kura iespējas ir ietērptas ātrā un prastā skriptu valodā. Literāros salīdzinājumos: ja Unix ir "Zaļā zeme", tad Perl ir "Velniņi".
Tomass Skovils spēkojas ar Unix kopš 1983. gada.
©1998 Miller Freeman, Inc.
Papildu literatūra
Created by Valdis Vītoliņš on 2011-03-31 14:55
Last modified by Valdis Vītoliņš on 2021-04-13 14:32