Najznačajniji alat u (poznatoj) ljudskoj historiji

…je obični tekst (eng. plain text). Tekst koji nije oblikovan, ukrašavan, koji nema masnih slova, niti kurziva, podvlačenja ili bilo čega sličnog. Samo čisti tekst! (Drugim riječima, i ovo što mi oblikujemo tekst u ovom i drugim člancima je novina ili skoro pa nepotrebno!)

Tako kažu autori knjige Pragmatični programer u 16. potpoglavlju koje nosi naziv – Snaga običnog teksta.

S druge strane koncept juniksoidnih (Unixoid) mašina zasnovan je upravo na tekstualnim datotekama1 u kojima je sačuvan cjelokupan oblik (konfiguracija) za uspješno pokretanje operativnog sistema, ali i mnogih alata, programa i aplikacija koje se nalaze na istom, za razliku od operativnih sistema kompanije Majkrosoft (Microsoft) u kojima je gotovo sve u binarnom obliku. Najznačajniji binarni zapis u MS Windows svakako je registry.

Prednosti

Ono što izdvaja posebnosti ili prednosti korištenja običnog teksta u svijetu računara je svakako to što čovjek u svakom trenutku može ne samo pročitati, brzo pretražiti, nego i urediti bilo koji oblik (konfiguraciju) u rekordnom roku. Nadalje tu su prednosti koje postoje kod linuksoida (Linuxoid), tj. da je moguće pristupiti tzv. negrafičkom, terminalnom okruženju u kom čovjek kao krajnji korisnik može uređivati svaku datoteku bez ikakvih problema, te time otkloniti greške i sistem dovesti u prethodno stanje (u slučaju grešaka) na brz i jednostavan način.

head -n100 data.csv
wc -l data.csv

Praćenje promjena

Kada je u pitanju čuvanje historijskih zapisa, prednost korištenja običnog teksta nad bilo kojim drugim je nemjerljiva. Uz pomoć alata za poređenje (diff) koji su uglavnom sastavni dijelovi alata i/ili platformi i/ili sistema za čuvanje i upravljanje svim promjenama (VCS – Version control system), kao što su najpopularniji git i svn, moguće je vidjeti promjene na samo jednom jedinom simbolu (eng. character) u svakoj pojedinoj liniji!

Čovjek bi teško našao da je razlika između ova dva teksta u slovu “J”, ali računar to radi nevjerovatnom brzinom

Nedostaci

Najveći problem čuvanja bilo čega u datotekama koje imaju oblik (formu) običnog teksta, pa makar to bili i podaci o postavkama nekog super malog programa (a o bazama podataka da i ne govorimo – kao što su CSV) jeste to što ne postoje standardne šeme, odnosno predlošci koje treba slijediti. Naravno, postoje (neki) standardi kao što su YAML ili JSON, pa čak i INI ali je to predaleko od onoga kako se podaci čuvaju tamo gdje moraju biti povezani i imati zavisne relacije između sebe.

Dovoljno je razmisliti o tome kako bi program (u bilo kom programskom jeziku) bio složen i kako bi izvorni kod (source code) izgledao kada bi programer morao da piše sve što mu je potrebno da bi povezao relacije među određenim parametrima. Primjera radi, programski jezik Python ima veoma razvijene biblioteke za učitavanje, kao i pretvaranje iz/u razne oblike za JSON i YAML, ali to opet nije dovoljno zbog relacija među parametrima, pa je programer prinuđen pisati vlastite mehanizme!
Ali, ako bi se ta ista datoteka (običnog teksta) prebacila u binarni oblik te program pokušao prilagoditi, nevjerovatno, ali stvar bi bila višestruko komplikovanija! Ovo je jedan od izazova kojeg su autori pomenute knjige dali na kraju programa koji glasi:

Dizajnirajti malu bazu podataka adresara (ime, telefonski broj i tako dalje) koristeći direktnu binarnu predstavu na programskom jeziku po izboru. Učiniti ovo prije nego što se pročitata ostatak ovog izazova!

– Prevedite taj format u format običnog teksta pomoću XML-a ili JSON-a.
– Za svaku verziju dodajte novo polje promjenljive dužine zvano upute u koje biste mogli unijeti upute do kuće svake osobe.

Koji se problemi pojavljuju u vezi s verzijama i proširivošću? Koji je obrazac bilo lakše izmijeniti? Šta je sa pretvaranjem postojećih podataka?

Popularne primjene svuda oko nas

Ako se neko odvažio da klikne mišem ili prstom (s telefona) na neku od veza koju smo dali u članku vrlo lahko je mogao/la uočiti da je većina veza ka Vikipedija (Wikipedia) člancima. Vikipedija se vodi logikom minimalnizma, a što je veoma nalik praksi korištenja običnog, čistog teksta.

Drugi primjer su guglove usluge, u kojima se teži minimalizmu.

Prošireni (djelimično oblikovani) tekstualni oblici

Nema tog programera danas koji ne zna šta je tzv. jezik onačavanja odnosno Markup language, no malo je programera koji znaju odakle naziv jezika Markup (označavajući), te kako je sve dospjelo u svijet računara danas. Za znatiželjne savjetujemo svega par članaka na Vikipediji iz kojih će se uvidjeti da sve to potiče iz prastarih mašina za štampanje kada su se slova redala ručno. A opet sve to ima svoje duboke korijene u rukopisima pisanim prije više hiljada godina!

Za one koji se bave pisanjem dokumentacije ili pak naučnih radova (posebno ako su oni prepuni formula (matematika, fizika, hemija, …)) jezici poput LaTeX uopšte nisu nepoznanica.

Zatim HTML koji je poznat gotovo kao programski jezik, iako to nije je jedan od obilka proširenog (s veoma malim, ograničenim brojem oblikovanja) običnog teksta.


1 datoteka (eng. file) – koristimo ovaj izraz za prevod engleske file riječi umjesto prilagođene riječi fajl, jer smatramo da je riječ datoteka kovanica od domaćih ustaljenih riječi teka (sveska, bilježnica) i podatak, kao činjenica iskazana u obliku broja, riječi ili slova.

0

Hits: 32