Alguses oli ed
Hallo, maailm!
Jätkan
oma jalutuskäike *nix-i maailmas.
*nix on üldine üldnimetus kõigile süsteemidele, mille aluspõhjaks on Unix. Niisiis ka Os X, linuxid, androidid jpm...
*nix on üldine üldnimetus kõigile süsteemidele, mille aluspõhjaks on Unix. Niisiis ka Os X, linuxid, androidid jpm...
Arvutiasjanduses on Unix-il absoluutselt unikaalne positsioon.
Uskumatu,
aga tõsi: 1969 loodud süsteem on kestnud nüüdseks pea pool
sajandit ja tunneb ennast kindlamini kui kunagi varem. Ja see on väga
suures osas seesama Unix.
Kui MS-DOS -il vaevalt et on enam jäänud mingitkis sarnasust praeguste Windows xx süsteemidega ja vahel isegi vahe kahe järgneva W versiooni vahel on väga suur, siis Unixi baasiks olevad põhilised põhimõtted püsivad.
Kui seda fenomeni millegiga võrrelda, siis vahest Kreeka ja Rooma kultuurilise mõjuga, mis saavutas oma haripunkti alles 19. sajandi lõpuks.
Ja võrrelda tuleks tõesti ka kultuurilises mõttes – arvutiinimeste släng, mõtlemisviis, müüdid, kõik see on eraldamatu Unix -ist ja selle ajaloost ja arvutiasjanduse jaoks on 50 aastat antiik.
Kui MS-DOS -il vaevalt et on enam jäänud mingitkis sarnasust praeguste Windows xx süsteemidega ja vahel isegi vahe kahe järgneva W versiooni vahel on väga suur, siis Unixi baasiks olevad põhilised põhimõtted püsivad.
Kui seda fenomeni millegiga võrrelda, siis vahest Kreeka ja Rooma kultuurilise mõjuga, mis saavutas oma haripunkti alles 19. sajandi lõpuks.
Ja võrrelda tuleks tõesti ka kultuurilises mõttes – arvutiinimeste släng, mõtlemisviis, müüdid, kõik see on eraldamatu Unix -ist ja selle ajaloost ja arvutiasjanduse jaoks on 50 aastat antiik.
Seetõttu,
kui te tõesti tahate midagi mõista arvutiasjanduses, ei pääse te
Unix-ist ja parem on see võtta oma ülikooliõpingute
baasteadmiseks.
Windows on kukutatav, Unix tõenäoliselt (veel) mitte – ja ma väga tahaks, et see jätkuks veel mõistliku aja jooksul.
Selline pikaajalisus seob omavahel juba 3 põlvkonda arvutiinimesi ja sellel on iseenesest määratu tähendus.
Kuid pikk ajalugu on kasvatanud ja alles hoidnud ning koguni VÕIMENDANUD hulgaliselt veidrusi. Ja tahate või mitte – nagu kreeka keele õppimisel on vaja ära õppida need kreeka eed ja sigmad, on Linuxi / Unixi -l vältimatud mõnede imelike lühendite äratundmine ja vähemalt sellise näo tegemine, et tunnete neid une pealt.
Windows on kukutatav, Unix tõenäoliselt (veel) mitte – ja ma väga tahaks, et see jätkuks veel mõistliku aja jooksul.
Selline pikaajalisus seob omavahel juba 3 põlvkonda arvutiinimesi ja sellel on iseenesest määratu tähendus.
Kuid pikk ajalugu on kasvatanud ja alles hoidnud ning koguni VÕIMENDANUD hulgaliselt veidrusi. Ja tahate või mitte – nagu kreeka keele õppimisel on vaja ära õppida need kreeka eed ja sigmad, on Linuxi / Unixi -l vältimatud mõnede imelike lühendite äratundmine ja vähemalt sellise näo tegemine, et tunnete neid une pealt.
Monstrumid,
millest arvutitudengid ei pääse on:
grep
sed
awk
perl
ja
selle kõige taga natukene müstiline termin "regulaaravaldis".
Ja
ärge veel lootke pythoni peale.
C programmeerijatele lisandub veel töövahend make, ja kes veel ei ole C programmeerija, võiks selleks ometi saada!
C programmeerijatele lisandub veel töövahend make, ja kes veel ei ole C programmeerija, võiks selleks ometi saada!
Te
ei pääse!
Kest,
mille sees see elu kulgeb, seda kutsutakse bourne shelliks ühe väga,
väga vana guru Stephen Bourne järgi (s. 1944).
Linuxi
mailmas on sellest saanud bourne again shell ehk lihtsalt bash.
Pühendamatutele
lisan, et see on käsurea aken ja sellega kaasnevad trikid, mida seal
saab teha, ntx ls või koguni rm -rf * natukene rohkem
edasijõudnutele.
Ken
Pier arvas sellest nii:
„Ma
võrdleks oma arvutikarjääri alustamist Unix-iga, ütleme kui
üliõpilane, sellega, kui juhtute sündima Ida Aafrikasse. Seal on
talumatult kuum, teie kehal roomavad täid ja kärbsed, te olete
nälginud ja kannatate paljude ravitavate tõbede käes. Aga nagu
noored Ida-aafriklased ütlevad, on see lihtsalt loomulik olukord ja
nad elavadki nimoodi.
Selleks
ajaks, kui tudengid leiavad, et asjad on teistmoodi, on juba liiga
hilja. Nad juba mõtlevadki, et kesta skriptide kirjutamine on
täiesti loomulik toiming.
AGA
esimene tõsiseltvõetav arglik katse Unix-it kritiseerida ta
ilmselgelt jaburate käskude pärast, mis meelde ei jää ja midagi
ei küsi,
ilmus
alles Donald Normanilt 1981.
http://www.ceri.memphis.edu/people/smalley/ESCI7205F2009/misc_files/The_truth_about_Unix_cleaned.pdf
Ma arvan, et senini üks põhjendatumaid kriitikaid Unixi suunas üldse.
Soovitan
kõigil, nii *nix fännidel kui ka vastastel aeg leida ja see
kriitika läbi lugeda. See on väga asjalik ja sarnaste hädade alla
kannatavad paljud kasutajaliidesed, mitte ainult Unix.
Ken Pieri tsitaat on aga võetud raamatust The Unix haters handbook
Ken Pieri tsitaat on aga võetud raamatust The Unix haters handbook
mis ilmus
millegipärast alles 1994, 25 aastat pärast süsteemi loomist.
{
Mitte
ainult mina ei alusta süsteemi uurimist selle kriitikaga -
leidsin
selle esimese UNIX raamatusoovitusena blogist
Sealolevaid
viiteid 15 blogi autori arvates parimale arvutiraamatule võitegi jääda Eestis otsima.
Tabavusprotsent 0.
}
Kuidas
see kohutav süsteem sai eksisteerida nii kaua aega? Miks lõpuks
raamat sellest kohutavusest tekkis, 25 aastat pärast
viljastamist?
Ja kus oleme meie nüüd, aastal 2015?
Ja kus oleme meie nüüd, aastal 2015?
Unix-i
kaitseks kirjutas seesama Donald Norman unixivihkajate raamatu
eessõnas, et süsteem sündis ajal, mil sellistele asjadele, nagu
kasutajasõbralikkus, lihtsalt ei osatud sellist tähelepanu pöörata
ja ometi oli Unix TOLLAL kasutajasõbralikkuse fenomen. Juba see
asjaolu, et iga asja kohta võis lõputult lugeda manuaale, põrmustas
konkurendid (see ei olnud tollastes arvutisüsteemide maailmas üldse
loomulik asi).
Ja
Unix levis ülikoolidesse ja siit see viirus algas, sest
operatsioonisüsteem oli vähemasti kuni 80-ndate aastateni
kultuslikus seisuses. Seoses süsteemi kommertsialiseerumisega tekkis
süsteemi arengusse kriis, kuid siis tuli Torvalds ning sisuliselt
päästis Unixi. Aga sellel oli oma hind - kultus tekkis taas.
Aga
see ei oleks saanud teoks ilma sisemise loogilisuseta – kui käsurea
käsud või muud välised vidinad võivad Linuxite peres olla
ebaloogilised nimetustelt, on tuum korralik. Vana, kindel,
läbiõpitud, läbiproovitud süsteem, sisaldades arvutiteadmiste
nurgakivid, nagu standardne sisend, standardne väljund ning
operatsioonisüsteemi programmeerimine kõrgkeeles.
Mis
loeb selle kõrval asjaolu, et pärast rm -rf * -i olete vaikivalt
jäänud oma failidest ilma?
Tavakasutajatega
nii ei ole.
Kui
on valida süsteemi vahel, mis selliseid vigureid ei tee, või
süsteemi vahel, mis seda kogu aeg teeb ja kurtmiste korral soovitab
lugeda krüptilist manuaali, siis tavakasutaja ei vali sellist
süsteemi.
Apple
valis tee, mis viis sihile – on võimalik korraliku Unixi peale
ehitada ka kasutajasõbralik süsteem.
Kas
Ubuntu jõuab ükskord niikaugele?
Võimalik
siiski, et see jääb unistuseks, sest Unixi kasutasõbralikkuse
vastu võitlevad needasamad sisemised printsiibidi ja põhimõtted,
mis Keni ja Dennise ja tema kolleegide poolt paika pandi.
Näiteks
lühidus. Kui midagi öelda ei ole, siis Unix ei ütlegi midagi. Mida
üldse kosta idee peale kõik oma failid ära kustutada?
Tänapäeval ei tule selle pealegi, et võid ühe klahviliigutusega, ilma mingi hoiatuseta oma töö viljadest ilma jääda – ja Dennis ja Ken pidasid seda täiesti loomulikuks. Ükskord jääd ilma, teinekord pead meeles. Ja imelik – see süsteem ka toimib, kuigi tundub alguses pisut frusteeriv.
Ja
kasutajatel ei olnud ka valikut.
Vähemalt
kirjutas Brian ed juhendis – lugege ja imestage -
et
PEAAAEGU KÕIK TEKSTISISESTUSED UNIXIS on tehtud ed-ga.
See
võib – olla selgitab vi vaimustuse – kui mina seda "kohutavat"
editori vi esimest korda nägin, lubasin endale seda mitte kunagi
selgeks õppida. Never ära ütle never, sest nüüd tuli seda ikkagi
teha – on selliseid miniunix-eid, kus teisi võimalusi ei ole,
peale ed muidugi. Ja ei olegi midagi häda sellel vi-l!
Ja
vi oligi revolutsioon teeklaasis, sest vi on lühend sõnast visual
ja kasutas vist ühena esimest visuaalset moodi editeerimisel –
see, mida sa näed, seda sa editeerid. Kas võiks mõni asi üldse
teistmoodi olla, küsime pisut üllatunult. Jah, saab küll –
selleks lugege see ülaltoodud juhend läbi.
Kellel
UNIX näppude all ja teie bash ed-d ei tea, siis
apt-get
install ed aitab selle väärtustliku töövahendi teie arvutisse ja
saate nautida jälle ed võlusid.
Nagu üks teine UNIX- ringides ringlev kultustekst ütleb -
Nagu üks teine UNIX- ringides ringlev kultustekst ütleb -
ED
ON TÕELINE TEE NIRVAANASSE
Vaid
ed tundjale ei valmist mingit probleemi aru saada, kuidas g/re/p
tekkis.
g
tähistab globaalsust (ed-s terves fail)m
re
-regular expression – on regulaarse avaldise lühend
p
tähistab printi.
Unix
gurud ütlevad, et grep on filter.
Võta
mingi fail või failid, otsi kõik read, mis vastavad regulaarsele
avaldisele
ja trüki välja / ekraanile / printerile / faili.
ja trüki välja / ekraanile / printerile / faili.
Kolmetähelise
sed etümoloogia on nüüd ka väga arusaadav.
Sed – stream editor – voo (vt. Vallaste arvutisõnastik) editor.
Või oja, nire editeerimine, vahel on kujutlus voost pisut üle pingutatud.
Sed – stream editor – voo (vt. Vallaste arvutisõnastik) editor.
Või oja, nire editeerimine, vahel on kujutlus voost pisut üle pingutatud.
Sed
asendab ja muudab midagi sissetulevas voos.
AGA tõelised programmeerijad (real programmer) sellega ei piirdu.
Sed on võimeline “Turingi masinat” programmeerima. Kui mingi programeerimiskeel aga
Turingi masinaga toime saab, saab ta hakkama kõigega.
AGA tõelised programmeerijad (real programmer) sellega ei piirdu.
Sed on võimeline “Turingi masinat” programmeerima. Kui mingi programeerimiskeel aga
Turingi masinaga toime saab, saab ta hakkama kõigega.
Ja nii ongi netis ringlemas hea hulga sed-i programme.
Neist kuulsaim vahest on “sedoku”, mis mõneks ajaks on nullinud minu vaga soovi javaScriptis sama asi kirja saada.
Milleks –
sed on selleks ju parim vahend ja töö ammu tehtud.
Sedoku
lahendab sudokusid. Pidavat sisaldama siiski mingi kala ja see on
nüüd mõne noore särava geeniuse ülesanne see kala sealt välja
püüda / mis veel vingem, kogu asi täielikult ümber panna.
http://sed.sourceforge.net/local/games/sedoku.sed.html
http://sed.sourceforge.net/local/games/sedoku.sed.html
Kui
aga olete päris algaja, võtke kaasa või õppige pähe kuulsa
“FizzBuzz” ülesande lahend sed-s.
Saate
vähemalt teise ringi, kui mitte edasi, et firmas, kuhu maabute,
tekitada
….
olukord, millest räägib kõikide erialade kunn Kivirähk
Oht
FizzBuzz ülesannet oma tööintervjuul saada on siiski minu arvates
üle pingutatud.
Eksisteerib
siiski selline kurtmine, et noored, need tänapäeva noored ei saavat
sellega hakkama.
Eriti
muidugi, kui ettepanek on see kirja panna sed-s.
Muuseas,
need PÄRIS TÕELISED PROGRAMMERIJAD peavad isegi “sediste”
“pehmodeks”:
http://www.cs.utah.edu/~elb/folklore/mel.html ….
http://www.cs.utah.edu/~elb/folklore/mel.html ….
Tegelikult
on siin toodud lugu päris tõesti sündinud ja selline
programmeerija kusagil 50-ndatel-60-ndatel reaalselt toimetas. Kes
viitsib, uurigu interneti linkidest…
Kui
te nüüd olete sedi selgeks õppinud ja kõvasti harjutanud, enne
muidugi ikkagi need regulaaravaldised, eks, siis nii III kursusel
jõuame millalgi ka awk ja perl juurde.
Awk
EI OLE LIND.
Awk on programmeerimiskeel, mis on saanud (seda pole ju üldse raske ära arvata) oma nime 3 gigandi perenimede järgi:
Awk on programmeerimiskeel, mis on saanud (seda pole ju üldse raske ära arvata) oma nime 3 gigandi perenimede järgi:
:
Alfred Aho, Peter Weinberger ja Brian Kerninghan.
Keel
tasub uurimist mitmel heal põhjusel. Kõigepealt on tema kohta
kirjutatud paar päris head raamatut:
http://www.amazon.com/The-AWK-Programming-Language-Alfred/dp/020107981X
http://www.amazon.com/The-AWK-Programming-Language-Alfred/dp/020107981X
(Siin
keele autorid ise räägivad sellest, mida mõtlesid. Pean oma
riiulisse tellima)
Vabalt
loetav aga on see raamat:
Teiseks
on tegemis andmete poolt juhitava programmeerimiskeelega, mis teeb
mõne ülesanda awkis triviaalseks ja vastavad programmid lühidaks.
Paljud
neist on onelinerid, ühereakad.
Regulaaravaldiste
kultuse pealt sündinuks võib pidada ka programmeerimiskeelt perl,
mida võiks siis pidada awk-i edasiarenduseks.
Kes
veel pole aru saanud, perl on esitähed nimetusest Practical Extraction and Reporting Language.
Autoriks Larry Wall, aasta 1987.
Autoriks Larry Wall, aasta 1987.
Neist
moodustisist millalgi lähemalt edaspidi.
1 Comments:
Eks asi tegelikult ole peakujus kinni.
On neid, kes tahavad kiiresti midagi tehtud saada ja kindlasti vähima võimaliku vaevaga. Keda üldse ei koti, kas ja kuidas asi tegelikult töötab. Neile UNIX ei sobi ega ole kunagi sobinud.
Paraku on ka neid, kes tahavad, et asjad töötaksid ka tegelikult, mitte näiliselt. Et kord omandatud teadmus kestaks kauem kui mõne ülifirma järjekordne libaOS. Neile on UNIX ja selle derivaadid alati sobinud ja jäävadki sobima.
Mis puutub käsunimedesse, siis esimesele grupile meeldivad käsud nimega Trillalaa, Trallalaa ning firmad nimega GoDaddy, Come'O'Mama ja sellised. Teisel grupil on kamakaks kui keeruline nimi, peaasi, et seda oleks võimalik loogiliselt tuletada. Urin UNIXi käsunimede päritolu ümber on minu arvates pärit oligofreenikute hooldekodust - pea iga nimega käib legend kaasas ning oma asi, kui keegi tahab valida sihiliku ignoreerimise tee. See oleks umbes nagu tantrismist võtta vaid nühkimine ja jätta arvestamata kogu mentaalne värk.
Mis puutub maailmanägemisse, siis esimene grupp (UNIXlased) moodustab oma peas korrektselt toimiva maailmamudeli, keeruline see ju on, aga pärast seda toimib masin täies vastavuses mudeliga ja jääb toimima kuniks tänapäevast on saanud antiik. Ümber õppida ja iga päev tuult nuusutada pole vaja. Teine grupp on oluliselt laisem, vaimne jõupingutus pole neile sünnipäralt omane, nende lemmikproge on Microsofti kirjaklamber. Arusaadav siis, et kaebused on erinevad.
Sõnaga, tegemist on filosoofilise teelahkmega. Ühe või teise suuna eelistamine ripub ära struktuurse mõtlemise kultuuri(tu)sest. Kuivõrd see omadus põhiosas päritakse vanematelt, siis siinkohal igaks juhuks sügavuti ei lähe.
Muide, säärast asja nagu tavakasutaja ei eksisteeri. On umbes 20% inimesi, kellele pole probleemiks mistahes süsteem ja siis on ülejäänud 80% GoMamatajaid, kelle arvuti juurde toomiseks tuleb teha imetrikke, kaasa arvatud žestide dekodeerimine ja mõtete lugemine. MA ei ole päris kindel, et need viimased suudavad maailmale sama palju tagasi anda kui võtavad.
Postita kommentaar
<< Home