Vznešené programovanie alebo súkanie špagiet
Boli časy, keď som na osembitoch musel skončiť v assembleri. BASIC zjavne nepokryl ani 10 percent schopností stroja.
Neskôr o kúsok lepšie stroje, PC. BASIC nedokázal nič naviac. Potom odrazu Pascal a schopnosť kompilovať do spustiteľného binárneho kódu? Malý zázrak. A nakoniec sa časti procedúr písali znova v assembleri.
Popri tom exkurzia do krížových assemblerov, ktoré mi prekladali zdrojový kód akéhosi mixu jazykov do strojáku 8080. Už vtedy som pochopil, že kódiť software pre nejaký stroj nemusím priamo na tom stroji.
Pri programovaní loaderov som si uvedomil, že základnou jednotkou programovania je čas.
Nejaká najnižšia možná inštrukcia procesora stojí takt. Minimálnu jednotku, ktorú musím investovať do minimálneho výsledku.
Naučil som sa aj to, že mnou investovaný čas do písania kódu sa delí do počtu jeho použití a tým zúžitkovaného času.
Keď ja strávim desať hodín optimalizovaním chodu kúsku kódu tak, aby behal efektívnejšie, tak musím premietnuť do toho ako často tento kus kódu bude behať.
Pod týmto pravidlom sa musia skloniť aj iné vznešenejšie pravidlá. Čistotná a sterilná programátorská etika, nepíšem ako prasa, vyhýbam sa GOTO, píšem vznešene niekoľkokrát zapúzdrene cez desiatky API, knižníc, frameworkov.
Len preto, aby sa po mne ten kód dal ľahko čítať. Aby som tu jednu procedúru mohol obaliť a prebaliť zmenami bez zásahu do jej vnútra.
Iste. Nemožno nijako poprieť význam zásadovosti, vývoj v oblasti.
No nakoniec vyhrá rutina, ktorá v softwari beží miliónkrát ale trvá jej to len o 2 takty rýchlejšie len preto, že dôraz bol práve na rýchlosť vykonania miesto jej naprogramovania pomocou gigabajtových balíkov frameworkov, funkcií a cez rôzne semibinárne kusy predkompilovaného kódu.
Nepôjdem tisíckrát po ťažkej ceste po hrnček vody. Radšej si našetrím na na sud a pôjdem po ňu len stokrát.
Možno práve tento kúsok prekročí hranicu spoľahlivosti vášho softwaru. Hľadajte ho predtým, než sa rozhodnete software vyrobiť.