Tiranija kartice

Zašto je tvoj terminal širok baš 80 znakova? Kriva je jedna kartica iz 1928. koju nitko od nas nikad nije ni vidio.

poglavlje 12/3419 min čitanja∞ – 1969

Zamisli New York u ljeto 1928. Burza je stroj za tiskanje novca i svi u to vjeruju, čak i tvoj mesar, koji ti između dva odreska šapće koju dionicu kupiti. Ulicom prolazi novi Ford Model A, sjajan, crn, s onim njuškastim hladnjakom, i cijela avenija okreće glavu za njim — Model T je bio radni konj, Model A je prvi auto koji izgleda kao da je nekome stalo kako izgleda. U dnevnim sobama sjedi kutija s antenom iz koje curi jazz, uživo, iz studija udaljenog tristo kilometara, i to više nikoga ne čudi. Čudo je postalo namještaj.

A onda uđeš u ured. Bilo koji veći ured — osiguravajuće društvo, željeznica, državna uprava, svejedno. Tamo je drugi svijet, tiši, ali isto toliko fasciniran budućnošću. Redovi metalnih ormara pucaju od mapa. Činovnici u vizirima — da, pravim, zelenim, kao da su upravo izašli iz filma o novinskoj redakciji — cijeli dan prepisuju brojeve iz jedne knjige u drugu. Ovo je doba kad je papir bio baza podataka, a čovjek s olovkom njegov procesor. Sporo, skupo, i pogrešno otprilike onoliko koliko bi i ti bio pogrešan da prepisuješ deset tisuća brojeva dnevno.

U taj ured, u to isto ljeto, ulazi čovjek u tamnom odijelu, s kovčegom i osmijehom koji je uvježbavao u vlaku. Ne prodaje Bibliju. Prodaje racionalizaciju. Iza njega stoji tvrtka koja se tek nedavno prekrstila u nešto ambicioznije od svog imena — International Business Machines, ne baš skromno za firmu koja je još prije nekoliko godina brojila sireve i mjerila vrijeme radnicima. Ali Amerika 1928. voli veličinu. Sve treba biti veće, brže, učinkovitije — pruge, tvornice, neboderi — pa zašto ne i uredski posao?

Taj prodavač u kovčegu ne nosi nikakvo čudo. Nosi komad kartona probušen sitnim pravokutnim rupicama, veličine otprilike kao novčanica kojom bi mu činovnik taj proizvod platio — a to seže još u 1887., kad je Herman Hollerith baš na tu mjeru novčanice nakalemio svoju karticu, jer su kutije i ladice za novac te veličine već postojale u svakom uredu, pa se kartica jednostavno uklopila u postojeći namještaj, a IBM je četrdesetak godina kasnije samo baštinio tu odluku. Izgleda smiješno banalno pored radija i Forda. Ali dok jazz svira na krovnim vrtovima Manhattana, ta kartica u kovčegu upravo počinje pisati pravila po kojima će, sto godina kasnije, netko na drugom kraju svijeta pisati kod u prozoru širokom točno osamdeset znakova — i neće imati pojma zašto.

Pa dobro, reći ćeš, otkud baš osamdeset? Zašto ne sedamdeset i pet, ili sto, lijep okrugao broj? Dobro pitanje — zapravo prvo od nekoliko dobrih pitanja koje postavlja onaj tko nikad nije vidio bušenu karticu, a svaki dan otvara terminal koji joj se, i ne znajući, i danas duboko klanja. Odgovor je manje poetičan nego što bi htio: osamdeset stupaca je toliko rupica koliko je IBM-ov inženjer uspio fizički ugurati u jedan red kartončića te veličine, a da razmak između rupica ostane dovoljno širok da ih mehanički čitač — koji tu karticu „čita” propuštanjem električnih igala kroz rupice, ne kamerom, nego doslovno bockanjem — ne zbuni i ne pročita dvije rupice kao jednu. Prije toga se koristio stariji Hollerithov format s tek 45 stupaca, ali IBM je 1928. odlučio da poslovni svijet treba više prostora za brojke i slova, pa je karticu prekrojio na osamdeset — i taj broj se od tog trenutka lijepi za tehnologiju kao žvaka za cipelu. Kad su desetljećima kasnije stigli prvi ekranski terminali umjesto kartica, inženjeri su jednostavno preslikali ono na što su ljudi već bili navikli, pa je i najpoznatiji terminal svih vremena, VT100, dobio ekran širok točno osamdeset znakova. A kad su programeri kasnije počeli pisati pravila o tome koliko kod smije biti širok da stane na ekran i da se čita bez guranja pogleda lijevo-desno, posegnuli su za istim, već posvećenim brojem. Tako je kartončić koji većina današnjih programera nikad nije ni vidjela, a kamoli držala u ruci, i danas taj koji im tiho i nevidljivo diktira gdje će prelomiti redak.

Dobro, imam pitanje. Gledaš u ekran, u onaj crni terminal koji svi programeri toliko vole, i pitaš se — čekaj, zašto se ovaj prozor uvijek prelama baš na osamdesetom znaku? Zašto ne na sedamdeset i pet, zašto ne na sto? I evo te, gledaš u kolegu koji je deset godina u industriji, koji ti je upravo bez zastajkivanja objasnio Big O notaciju, a na ovo pitanje samo slegne ramenima. »Tako je uvijek bilo.« Sjajan odgovor. Baš koristan.

I to je, iskreno, jedno od najboljih pitanja koje laik može postaviti programeru. Ne pita ga o rekurziji ni o tome čemu služi indeks u bazi podataka — pita ga o nečemu što taj programer gleda po osam sati dnevno, cijeli radni vijek, a nikad se nije zapitao odakle je došlo. To je kao da živiš cijeli život u jednom stanu i nikad se nisi pitao zašto su vrata baš te visine. Pa, valjda su vrata takve visine da čovjek kroz njih prođe bez podvijanja glave. Elem, terminal je te širine da kroz njega prođe... kartica. Bušena kartica. Ona koju nitko od nas u životu nije ni dotaknuo.

Zvuči kao urbana legenda, znam. Zvuči kao ona priča da su svemirski shuttleovi širine konjske stražnjice jer su rimske ceste bile široke točno koliko dva konja jedan pored drugog — prenosi se s generacije na generaciju inženjera kao dokaz da bizarna pravila iz prošlosti znaju ostati zabetonirana zauvijek. Neke od takvih priča su izmišljene, uljepšane, prepričane do besmisla. Ova nije. Ova je dosadno, birokratski, dokumentirano istinita — i upravo zato zanimljivija od izmišljene verzije.

Zamisli sad ovo: 1928. godina. Charleston se pleše po podrumima, burza se penje kao da gravitacija ne postoji, i u nekom uredu IBM-a jedan inženjer donosi odluku koja nema nikakve veze s računalima — jer računala, u smislu u kojem ih danas zamišljaš, još ne postoje. Donosi odluku o tome koliko rupica stane u jedan komad kartona. I ta odluka, ta sitna, dosadna, administrativna odluka o formatu papira, putuje kroz devedeset i nešto godina, kroz šest-sedam generacija tehnologije, kroz tri potpuno različite paradigme računalstva — od mehaničkih strojeva za obradu kartica, preko mainframe računala veličine ormara na koja su se spajali prvi terminali, sve do osobnih računala i ekrana koje danas gledaš — i sjedi ti danas na ekranu, u tvom terminalu, kao granica preko koje linter prijeko volje prijeđe crvenom linijom. (Linter je, da razjasnimo, mali digitalni gnjavator koji automatski čita tvoj kod i upozori te kad si prekršio neko stilsko pravilo — recimo kad je linija koda preduga, baš onako kako bi ti netko prekrižio rečenicu jer je predugačka za jedan dah.)

E vidiš, i tu je zagonetka. Ne „kako je to moguće” — to ćemo razriješiti. Zagonetka je zašto se to uopće dogodilo. Zašto jedan format papira, dizajniran za urede s kartotekama i činovnicima u zelenim vizirima, uspije nadživjeti bušene kartice, nadživjeti prve terminale, nadživjeti CRT monitore (one stare, glomazne ekrane s cijevi otraga, teške kao mala televizija) — i sletjeti ravno u 2020-e, u tvoj VS Code, u tvoj style guide na poslu koji ti govori da red koda ne smije prijeći osamdeset znakova, „jer tako se to radi”.

Kako to da nešto tako fizičko, tako opipljivo — komad kartona koji stane u džep sakoa — postane nešto tako nevidljivo, tako apstraktno, da danas programer koji nikad u životu nije vidio bušenu karticu i dalje poštuje njezinu širinu kao neki nepisani zakon prirode? To je pitanje na koje vrijedi odgovoriti. I odgovor, kako to obično biva, počinje s novcem, konkurencijom i jednim čovjekom koji je odlučio da će njegove rupice biti pravokutne, a ne okrugle.

1928: IBM bira pravokutne rupe
§ 02

1928: IBM bira pravokutne rupe

— Dobro, ali zašto baš 1928.? Zašto ne 1890., kad je Herman Hollerith već bušio kartice za popis stanovništva? Jer to su, zapravo, tri potpuno različite paradigme računalstva — Hollerithov mehanički stroj koji je samo brojao rupice, pa poslijeratni mainframeovi veliki kao ormari, pa onda konačno terminali i osobna računala na kojima danas tipkaš — i kartica je nekim čudom prošetala kroz sve tri, a promijenila se tek malo.

Jer 1890. kartica je bila samo praktično rješenje za brojanje ljudi, a 1928. postala je oružje u ratu za urede cijele Amerike. Te je godine IBM izbacio karticu sa 80 stupaca, i to nije bila inženjerska sitnica koju je netko zapisao u bilježnicu i zaboravio. Bio je to potez u konkurentskoj borbi — isti onaj tip poteza koji danas povlači Apple kad promijeni priključak na telefonu, pa cijela industrija dodatne opreme mora iznova disati.

— Čekaj, s kim se to IBM borio? Mislio sam da su bili sami na tržištu.

Ne, imali su ozbiljnog konkurenta — Remington Rand, isti onaj Remington koji ti je poznat po pisaćim mašinama. U to doba su i oni gurali svoj sustav bušenih kartica, naslijeđen preko tvrtke Powers Accounting Machine Company, manje firme čiju su tehnologiju bušenih kartica preuzeli kad su je progutali. Remingtonova kartica imala je 45 stupaca, pravokutne rupice, i bila je, iskreno, pristojno rješenje. IBM-ova stara kartica također je imala 45 stupaca, samo s okruglim rupicama. Pat-pozicija, dakle — nitko nije imao prednost. Onda je netko u IBM-u, a taj netko je gotovo sigurno bio sam Thomas Watson, koji karticu nije doživljavao kao komad kartona nego kao teritorij za osvajanje, odlučio da rat neće ostati u pat-poziciji.

— I riješili su to tako da su samo ubacili više rupa?

Više rupa, manje rupa, druga geometrija rupa — i baš je ta geometrija odlučila stvar. IBM je 1928. patentirao karticu sa 80 stupaca i pravokutnim rupama umjesto okruglih. Zvuči kao kozmetika, ali pravokutna rupa je manja od okrugle za istu količinu probijenog kartona, što znači da možeš ugurati više stupaca na istu površinu papira bez da kartica postane rešeto koje se raspada čim ga dotakneš. IBM je tako s 45 skočio na 80 stupaca — gotovo dvostruko više podataka po kartici, po istoj cijeni papira, po istom trošku poštarine za slanje kutija punih kartica između ureda. To u računovodstvu tridesetih godina nije mala stvar. To je razlika između toga da ti trebaju dva skladišta kartoteka ili jedno.

— Trebala je biti samo IBM-ova stvar, da. Ali onda se dogodilo ono što se uvijek dogodi kad jedna tvrtka proizvede toliko strojeva da ih ima svako drugo poduzeće u Americi: njezin format prestane biti „njihov” i postane jednostavno format, onaj po kojem se rade svi ostali strojevi da bi s njim mogli razgovarati. Kad su šezdesetih i sedamdesetih godina stigli prvi terminali — oni ekrani sa zelenim slovima na crnoj podlozi, bez miša, bez ičeg šarenog, samo tekst — netko je morao odlučiti koliko slovnih mjesta stane u jedan red na ekranu. Umjesto da izmišljaju nešto novo, samo su prepisali ono što je već postojalo i što su svi imali naslagano u skladištima: 80 stupaca s bušene kartice. Tako je terminal dobio 80 znakova u širinu, ne zato što je to bilo optimalno za oči ili za mozak, nego zato što je to bilo optimalno za IBM-ovu proizvodnu liniju iz 1928. A onda su na tim terminalima ljudi pisali kod. Kod se pisao u redovima od najviše 80 znakova, jer više jednostavno nije stalo na ekran — pretekao bi rub i prelomio se u sljedeći red, što je izgledalo kao da ti je netko nasilno prerezao rečenicu. Navika je ostala i kad su ekrani postali veliki i šareni i kad je bušena kartica završila u muzeju: linteri i danas zvocaju na 80 znakova. Kartica je umrla davno. Broj koji je izabrala i dalje ti diktira gdje ćeš prelomiti redak.

Upravo tu je genijalnost — ili podlost, ovisno koliko voliš IBM. Kartica nije samo komad papira, ona je formatna specifikacija cijelog ekosustava. Ako želiš prodavati bušilice, provjerivače ili sortere — strojeve koji bušene kartice izrađuju, provjeravaju ili razvrstavaju — a da pri tome rade s IBM-ovim strojevima, moraš raditi po IBM-ovoj geometriji: 80 stupaca, pravokutne rupe, točan razmak, točna debljina kartona. Patent nije branio komad papira, branio je pravo da budeš centar cijele infrastrukture — svaki tuđi stroj koji je htio „razgovarati” s IBM-ovim strojevima morao je govoriti IBM-ovim jezikom rupa.

— I to je onda postao standard, samo zato što je bio prvi koji je pobijedio u toj rundi?

Točno to. Nitko 1928. nije sjeo i rekao: ovo će oblikovati kako ćemo pisati kod za sljedećih pedeset godina. Thomas Watson, tadašnji šef IBM-a (ne, nije riječ o kasnijem IBM-ovom umjetno inteligentnom Watsonu — ovaj je bio od krvi i mesa, s brkovima i uredom na vrhu zgrade), htio je jednostavno prodati više strojeva od konkurencije, tvrtke Remington. I uspio je toliko dobro da je 80 stupaca postalo de facto jedinica mjere za sve što je slijedilo — a slijedilo je, vjeruj, puno toga.

Kartica diktira sve
§ 03

Kartica diktira sve

Dobro, kaže laik, IBM je 1928. zabetonirao 80 stupaca u metal — ali to je i dalje samo komad kartona s rupicama. Kako to uopće postane diktatura?

Odgovor: jer kartica nije bila samo medij za pisanje, bila je cijeli ekosustav — a taj ekosustav bio je skup, glomazan i posvuda identičan. Zamisli ured iz 1930-ih, ili kasnije iz 1950-ih: prva stanica je bušač, takozvani keypunch, stroj veličine pisaćeg stola za kojim sjedi činovnica i tuca po tipkovnici dok stroj probija rupice u karton, redak po redak, stupac po stupac. Ne griješi se — ili bolje rečeno, griješi se, ali greška ide na sljedeću stanicu.

Čekaj, kaže laik, kakvu sljedeću stanicu? Zar bušanje nije zadnji korak?

Ne. Sljedeća stanica je verifikator — drugi stroj, druga činovnica, koja uzima istu karticu i istu poruku i tuca je iznova. Stroj uspoređuje njezin unos s rupicama koje već postoje na kartici. Ako se ne poklapa — greška, kartica se baca, radi se nova. To je, ako želiš, prvi industrijski sustav provjere pogrešaka u povijesti uredskog rada. Nema procesora koji provjerava paritet bita — one nizove nula i jedinica koje računalo danas samo od sebe prekontrolira u tisućinki sekunde, jednostavnom matematičkom provjerom je li broj jedinica u nizu paran ili neparan, i ako nije onda tu negdje puca greška. Ovdje toga nema. Ima dvije žene koje kucaju isti tekst i stroj koji fizički mjeri jesu li im prsti stigli na isto mjesto.

OK, kaže laik, imamo hrpu provjerenih kartica. Što sad s njima?

Sljedeća stanica: sortirka (sorter). To je stroj koji kartice fizički raspoređuje u pretince — po abecedi, po broju računa, po datumu, po čemu god ti treba — čitajući rupice mehaničkim četkicama koje hvataju električni kontakt, i onda ispuhuje karticu u odgovarajući odjeljak brzinom od nekoliko stotina kartica u minuti. Ako si ikad vidio arhivsku fotografiju stroja koji izgleda kao pola metra visoka komoda s ventilatorom i hrpom kartica koje lete zrakom — to je sortirka, i to je bio glavni alat obrade podataka prije nego što je riječ „podatak” postala nešto što se tipka na tipkovnici.

I sad dolazimo do stvari koju vrijedi zapamtiti, jer ona objašnjava zašto se cijela ta procedura toliko čuvala. Kartica je bila jedinica podatka. Ne dio jedinice, ne fragment — cijela jedinica. Jedna transakcija, jedan zapis o zaposleniku, jedan redak popisa stanovništva — sve stane na jednu karticu, i ta kartica se onda tretira kao — reći ću riječ koju ćeš danas prepoznati — zapis, cijela struktura podataka. Svaki stupac kartice nosi svoju kombinaciju probušenih rupica, tzv. Hollerithov kod, koja predstavlja jedan znak — slovo, broj ili simbol — potpuno analogno tome kako danas kombinacija bitova (nula i jedinica) kodira jedan znak u računalu. Osamdesetak stupaca kartice nosi osamdesetak znakova, dakle desetke bajtova — samo prije nego što je bajt uopće postojao kao koncept.

Čekaj, kaže laik, znači kartica je bajt? Bajt je osam bitova u računalu — nula i jedinica, struja ide ili ne ide — i u njemu nema nikakvog kartona.

Ne fizički, naravno, ali logički — funkcija je identična onoj koju danas ima zapis, odnosno slog podataka: najmanja samostalna jedinica podatka s kojom sustav barata kao s cjelinom. Kartica je bila upravo to za IBM-ov sustav. Ne možeš razderati karticu na pola i dobiti „pola zapisa” — to nema smisla, cijela stvar ili postoji ili ne postoji, i isto vrijedi za zapis danas. Ideja da se podatak drži u fiksnoj, nedjeljivoj, standardiziranoj jedinici postojala je u kartonu desetljećima prije nego što je uselila u silicij.

I onda dolaze 1950-e i 1960-e — doba mainframeova, poput IBM-ovih modela 1401 i 360: velikih, skupih centralnih računala kojima se servisirala cijela tvrtka, a ne osobni uređaj na stolu. Programeri, pravi, s FORTRAN-om i COBOL-om, prvim popularnim programskim jezicima namijenjenima znanstvenim i poslovnim proračunima, otkrivaju da imaju isti problem kao činovnice prije njih: kako unijeti program u stroj? Odgovor: bušena kartica. Jedna kartica, jedan redak koda. Ne slučajno, ne zato što je to najprirodniji način pisanja programa, nego zato što je to bila jedina infrastruktura koja je postojala — spremna, jeftina, posvuda dostupna. I danas, kad programer otvori stari COBOL priručnik ili radi sa zastarjelim (»legacy«) sustavom, naići će na izraz »card image« za redak teksta u datoteci — otisak kartice koja više ne postoji, ali čiji je oblik ostao urezan u format podatka.

Kartica, dakle, nije bila samo format. Bila je cijeli lanac procesa — bušenje, provjera, sortiranje, čitanje — i svaka karika tog lanca bila je fizički oblikovana oko dimenzija koje je IBM zabetonirao 1928. Kad je taj lanac jednom postavljen, u njega su se ulili milijuni dolara opreme, milijuni sati obuke, cijele karijere ljudi koji znaju rukovati sorterom. Promijeniti format kartice ne znači promijeniti komad kartona. Znači promijeniti cijelu tu infrastrukturu, odjednom, svugdje. I to je razlog zašto će sljedeće pitanje — zašto to jednostavno ne promijenimo — imati odgovor koji nikome nije drag.

Kako standard preživi svoj medij
§ 04

Kako standard preživi svoj medij

Dobro, kaže laik, kartica je nestala. Bušilice su u smeću, verifikatori u muzeju, cijeli taj cirkus s vizirima i rupicama otišao je tamo gdje idu sve stvari koje jednom zamijeni čip. Pa zašto onda ja sad, na svom laptopu iz dvadeset i neke, i dalje pišem kod u redovima koji stanu u — čekaj — osamdeset znakova?

Odlično pitanje. Odgovor je otprilike ovakav: standard ne umire kad umre medij koji ga je rodio. Standard se preseli u sljedeći medij, kao duh koji se useli u novu kuću i onda uporno tvrdi da je uvijek tu živio.

Evo lanca, korak po korak. Prvi terminali — ona debela siva kutija s ekranom u zeleno-crnoj boji koju vidiš u filmovima o hakiranju iz osamdesetih — nisu izmišljeni da budu terminali. Izmišljeni su da budu zamjena za kartice, one iste s Hollerithovim kodom. Firma dobije terminal, spoji ga na mainframe, i dalje radi potpuno isti posao kao prije: unosi redove podataka, jedan po jedan, u FORTRAN ili COBOL. Netko u IBM-u ili DEC-u je sjeo i pitao se: koliko znakova treba stati u jedan red na ekranu? I umjesto da smisli novi broj, po fizici ekrana ili logici jezika, samo je prepisao ono što je već postojalo. Osamdeset stupaca. Ekran je postao kartica koja svijetli.

Sad dolazi drugi korak, i tu je fora: kad se terminali gase i dolaze prvi grafički monitori i prozorski sustavi (ono što danas zovemo desktop okruženjem — prozori, ikone, miš), netko opet postavlja isto pitanje: koliko znakova u redu? I opet, umjesto da se pita „a što bi bilo optimalno na ovoj novoj tehnologiji”, programer samo otvori prozor terminalskog emulatora — programa koji na modernom računalu oponaša stari terminal, kao kostim za Noć vještica koji vjerno oponaša original — mjeri ga po navici i, pogodi, osamdeset znakova. Ne zato što je to fizički najbolje za oči na monitoru od sedamnaest inča, nego zato što je to ono na što je navikao. Terminal je kopirao karticu, monitor je kopirao terminal.

I treći korak, onaj koji tebe danas najviše boli: kad se pišu IDE-ovi (integrirana razvojna okruženja, dakle programi u kojima developeri pišu, testiraju i uređuju kôd cijeli dan — zamisli Word, ali za programere) i uređivači kôda — Vim, PyCharm, VS Code, svi ti alati u kojima developeri stvarno provode dane — netko opet mora postaviti zadanu postavku za onu tanku vertikalnu liniju koja ti kaže „ovdje bi trebao prelomiti red, frajeru”. I ta linija je, u većini alata, po zadanim postavkama postavljena na — osamdeset. Ne sedamdeset i pet, ne sto deset. Osamdeset. Broj koji je 1928. izabran zato da IBM-ova kartica bude jedan piksel dosadnija od Remingtonove.

Ovo, usput, nije jedini takav duh koji se skriva u strojevima. Pogledaj tipkovnicu na kojoj sad možda tipkaš ovo što čitaš, ili neku sličnu njoj. Raspored slova QWERTY nije osmišljen da bi se brzo tipkalo — dizajniran je, prema jednoj od teorija, da spriječi preokretne prste na mehaničkim pisaćim mašinama iz 1870-ih, jer su se poluge sa slovima sudarale i zaglavljivale kad bi se tipkalo previše brzo. Mašine s tim problemom ne postoje već pedesetak godina. QWERTY je, unatoč tome, i dalje na svakoj tipkovnici na planetu, uključujući onu na tvom mobitelu, gdje mehaničkih poluga nikad nije ni bilo.

Zaključak, laiče: standard ne treba biti dobar da bi preživio. Treba samo biti prvi koji se ugnijezdi dovoljno duboko da ga sljedeća generacija alata kopira iz lijenosti, a ne iz uvjerenja. Nakon toga, on je jednostavno — „tako se to radi”. Pitaj bilo koga zašto, i dobit ćeš odgovor koji zvuči kao razlog, a zapravo je samo eho.

"A zašto to jednostavno ne promijenimo?"
§ 05

"A zašto to jednostavno ne promijenimo?"

Dobro pitanje, i postavlja ga svaki drugi junior programer otprilike u trećem tjednu posla, onog trenutka kad prvi put naleti na liniju koda razvučenu preko granice ekrana, a linter, onaj digitalni gnjavator koji smo već spominjali, mu zacrveni sve što vidi. Zašto ne uzmemo, ne znam, 120 znakova po liniji? Ili 200? Monitori su ti danas široki kao stol, imaš rezoluciju od četiri tisuće piksela u širinu, a ti i dalje pišeš kod kao da kucaš na uređaju koji čita rupe u kartonu iz 1928. Zašto to jednostavno ne promijenimo?

Kratki odgovor: možemo. Dugi odgovor: da bi to imalo ikakvog smisla, moralo bi se promijeniti istovremeno u tebi, u tvom kolegi, u firmi, u alatu koji koristite oboje, u još pet tisuća firmi koje koriste isti alat, i u dokumentaciji koja to sve opisuje. A tu se cijela stvar sruši — ne zato što je tehnički teško, nego zato što je politički nemoguće. Ovo se zove »cijena koordinacije«, i ona je razlog zašto svijet ne izgleda racionalno, nego izgleda kao ono što jest — hrpa privremenih odluka koje se nitko nije potrudio otkazati.

I tu dolazimo do dijela koji je stvarno lijep, u onom mračnom smislu u kojem je lijepa i entropija: standardi se ne mijenjaju zato što su dobri. Mijenjaju se zato što je promjena jeftinija od statusa quo, a to se, kao što smo vidjeli, gotovo nikad ne dogodi. Osamdeset znakova po liniji nije pobijedilo zato što je optimalno — pobijedilo je 1928. zato što je bilo dovoljno dobro za bušenje kartica, a onda se zabetoniralo kroz sedam desetljeća hardvera koji je vjerno kopirao prethodni hardver. Standard koji preživi svoj medij ne preživi zato što ga je ikad iznova testirao i ponovno dokazao da je najbolji — preživi zato što je u međuvremenu postao temelj na kojem sve ostalo stoji. A ti ne vadiš temelj ispod kuće samo zato što bi voljela drugačiji parket.

Ovo, usput, nije nikakva čudna iznimka informatike — to je opće pravilo svih standarda koji su ikad postali stvarno veliki. Kao i QWERTY koju smo već spominjali — raspored slova ostao je isti, jer sad je problem drugi: ne koliko brzo tipkaš, nego koliko bi te stajalo da cijela planeta istovremeno nauči drugi raspored. Metar je ostao definiran preko brzine svjetlosti u vakuumu, a ne preko neke ljepše brojke, jer promjena bi značila premjeravanje svega što je ikad izmjereno. Standard koji je dovoljno velik ne umire od loše ideje. Umire samo ako se pojavi nešto toliko bolje da vrijedi platiti cijenu prelaska — a „malo šire od osamdeset znakova” nikad nije bilo ni blizu toga.

I u tome je prava poanta cijelog ovog poglavlja, ako uopće postoji neka poanta: privremena rješenja ne postanu vječna zato što su genijalna. Postanu vječna zato što u trenutku kad bi ih trebalo zamijeniti, cijena zamjene već premašuje cijenu trpljenja. Netko je 1928. odlučio koliko rupa stane u jedan komad kartona, taj netko je odavno mrtav, kartoni su odavno u smeću, a njegova odluka je i danas ta koja ti crveni liniju u editoru. Nije to zavjera. Nije to ni glupost. To je samo inercija — najjača sila u softverskoj arhitekturi, jača od svih dobrih namjera koje ikad imaš na prvom danu novog projekta.