märts 11, 2017

Olulisuse olulisus ehk ikka veel hõbekuulist















Mida enam tarkvaraasjandusega tegeled, sedavõrd väheneb ka sellest kirjutamise soov.
Ometi on minus süvenenud veendumus, et nii ei ole päris õige. Nii ma proovin ikkagi jätkata tarkvara lainel kirjutamist, hoolimata asjaolust, et eestikeelset juttu tikub kodeerimise teemadel järjest harvemaks jääma ja on seda üldse iialgi piisavalt palju olnud?
Veel hirmutavam on english only suhtumise kiire levik. Ühekorraga arvavad kõik tarkvarast kirjutajad, et nad peavad hirmsat moodi hakkama oma blogis englishit purssima.
Ma õnneks ei oska seda keelt - võiksin siis slaavi ekvivalendi järgi talitada, eriti seetõttu, et voorimehe moodi vandumine vene keeles on senini ületamatu olnud...
Kui mingi loengu pidaja enam ei oska tõlkida sõna "implementation" ja paneb seejärel kõik oma slaidid englishkeelsetena hakkam, siis on midagi vist ikka väga viltu?
Sellele kõigele lükatakse praegu aga ainult tagant, meie omade eestlaste poolt, aru saamata, et see on midagi sama tähtsat, nagu mets ja maa, mis pidanuks kuuluma ju meitele...
See on see punkt Brooksi sõnumis, mida me jätame tähele panemata - ainuke, mida saab teha paremaks kodeerimiseks - olulise eraldamine - terade eraldamine sõkaldest.

Ja  keel ja mõtlemine on tähtsad. Neid ei tohi lasta risustada. Kui me ei oska oma kodeerimise asju emakeeles arutada, ei oska me üldse mitte midagi.

Hea on teada, et loll räägib kõike, mida teab ja tark teab, mida räägib. Ma lisaksin, et parema meeskonnatöö huvides tasub järelikult meeskond komplekteerida lollidest. Sest kommunikatsioon loeb. Ja parem kirjutada ja kommenteerida ja dokumenteerida, kui jätta kirjutamata ja dokumenteerimata.

Kuna Brooksi sõnumi lugemisel endiselt on rõhk sõnal HÕBEKUUL, ei ole tänaseni jõutud kohani, et peaks tegelema olulisega. Pilt ei ole aastatega muutunud paremaks, vaid pigem järjest hägusemaks.
Java ei ole asendanund näiteks C++, vaid lihtsalt asunud C++ kõrvale koos C# ja muude asjadega, tõrjudes kõrvale Delphi.
Ühekorraga on meil neid kõiki vaja teada ja need kõik kokku on asjaolud, mida võiks nimetada pigem juhuslikeks, kui olulisteks. C++ hästi oskav kodeerija ei saa paremaks inimeseks, kui õpib ära ka Java, Java äss ei saa väga palju paremaks, õppides ära Delphi ja C# ja nii edasi. See, et mitu keelt teeb sind kõvasti targemaks, on suur müüt. // pean võimalikuks neid sõnu süüa millalgi...
Kokkuvõttes oled lihtsalt raisanud rohkem aega juhusliku ja ebaolulise peale, aga kogusummas muutub see ju millekski oluliseks - olulisuse silmist kaotamine on ju oluline?
Ometi on vaja jõuda koodini, ka autos ei ole oluline, kus paikneb pidur ja sidur, ometi võtab eriti palju aeg pidurdamise reflektoorse refleksi teke. Enne seda aga ei saa rääkida vilunud autojuhist.
Aga kui ühes autos on piduri asemel sidur ja vastupidi (võrdlus Delphi ja C võrdusmärkide osas näiteks). 
Kuna aga ei saa ette öelda, mis asjad kusagil ringlevad, jõuab mingi aja möödudes keskmine kodeerija paratamatult sellest multikultist omandada üsna palju. Aga samavõrra võinuks ta tegelda võib-olla mingite olulisemate asjadega? Näiteks algoritmide analüüsiga Donald Knuthi abiga?
Seda mitmekesisust rikastab veel poliitiline maadejagamine - Linux / MS kõige ilmekama veelahkmena...
OLULINE oleks ükskord võtta aksioomiks teadmine, et hõbekuuli ei tule ja selle asemel tegelda esimese poolega - juhuslik osakaalu vähendamisega.
Mina näen siin aga juhuslikkuse osa tõusvana?

Kui ma millelegi olulisele aga olen pihta saanud, siis vahest on see võrdlus muusika või kokkamisega.
Teooriat on rakenduslikus IT-s kohati täpselt sama palju, kui kokanduses biokeemiat.
Aga võrreldav on kohutav nikerdamine, käsitsinikerdamine ja mite mingisugune erihakklihamasin ei võta seda vähemaks - vähemalt mitte meie Eesti tippkoka Dmitri Roozi puhul.
Nii ma vähemalt lugesin, kui Dmitri jamas selle Prantsuse erikanaga ja sai kokkamise maailmameistrivõistlustel finaali ja seal 14. koha! Selleks tuli tal 32 korda harjutada mingi kana valmistamist, iga korda 4.5 tundi. Ja alles 33 korral siis oli see finaalvõistlus ja siis vahest oli tal see kana valmistamine käpas. 14. maailmas on muuseas ülikõva koht!
Ja võrdlus muusikaga peab ka paika - millist üleinimlikku vaeva peab nägema pianist mõne etüüdi harjutamisel!
Võimalik, et siin IT jääb kokandusele ja muusikale küll alla.
Nii et kunst kunstiks, aga niimoodi ei saa IT-s küll ühtegi programmi valmis, et võtad mingi munavalge ja viskad lõuendile ja ongi pilt missugune!

Ja lõpuks kui kõik keeled, või väga paljud, ja enamus  raamistikud on selged, võtad sa ikkagi ette TAOCP (Donalt Knuthi peateos) või mõne sarnase asja.
Kõige alguses oli Algoritm. Ja siis tulid alles muud asjad, nagu valgus, vesi ja inimesed ...