Din orice unghi ai
privi-o, lumea informatică este o imensă babilonie. Din perspectiva
nespecialistului, primul care sare în ochi (sau, mă rog, în urechi) este
jargonul tehnic. Pe lângă mulţimea parcă nesfârşită de
acronime, care mai de care mai fistichii, o sumedenie de cuvinte au fost
inventate sau deturnate pentru a descrie lucruri care n-au binevoit să se
plieze unui concept deja numit. Pentru vorbitorii altor limbi decât engleza
biruitoare, se adaugă un strat suplimentar de confuzie. Le pot însă
oferi o consolare: nici anglofonii nu pricep mai nimic din păsăreasca
informaticienilor.
Nici specialiştilor
nu le este mai uşor. Jargonul este fluid, o mulţime de expresii noi
pătrund şi prea puţine admit să-l
părăsească. Obiceiul vechi de a dezvolta neologisme pe baza
rădăcinilor latineşti sau eline a fost repede abandonat de o
mulţime de tehnicieni peste care noţiunile noi cădeau atât de
repede încât nici nu mai aveau vreme să caute într-un dicţionar. O
molie (Oniscus murarius) care a nimerit într-un releu al unui computer
Mark II, provocând o pană, a ajuns să denumească generic
defecţiunile sistemelor software (bug), pentru ca apoi întregul
proces de depanare să se numească debugging. Adesea acronimele
şi abrevierile s-au transformat în cuvinte care tind să-şi
piardă legăturile cu originea... Nu întotdeauna când cineva îţi
vorbeşte despre "sri-dabăl-iu" realizezi imediat că-i vorba
despre WWW, adică World Wide Web.
Dar babilonia nu este
doar lingvistică, ci şi tehnologică. Teoretic, orice se poate
calcula, se poate calcula folosind trei operaţii extrem de simple: adunarea
unei unităţi, scăderea unei unităţi (doar până la
zero) şi comparaţia cu zero. Însă, din motive de
eficienţă, fiecare procesor implementează un set de
instrucţiuni mult mai larg, aşa încât calculatoarele începutului erau
inerent incompatibile şi se programau în limbajul maşinii. Valurile
succesive de inovaţii au adăugat extensii care au sporit diversitatea
şi au adăugat un nou nivel de complexitate, indus de nevoia de a
păstra compatibilitatea cu versiunile anterioare.
Sistemele de operare au
urmat aceeaşi cale a diversităţii. La începuturi, fiecare
computer avea propriul sistem de operare. Nici nu putea fi vorba de a rula un
acelaşi program pe computere de tipuri diferite. O doamnă din US
Navy, pe nume Grace Murray Hopper are revelaţia că programarea calculatoarelor
ar trebui să fie mai uşoară, aşa că de la limbajul
maşinii se ajunge la limbaje de programare de nivel mai înalt. Teoretic,
cu compilatoare corespunzătoare, ar putea eventual permite portarea
programelor sursă de pe o platformă de calcul pe alta.
Dar n-a fost să fie.
Împreună cu procesoarele şi cu sistemele de operare, limbajele de
programare au sporit exponenţial babilonia. În scurt timp au apărut
sute de limbaje de programare şi, mai grav, fiecare dintre ele în zeci de
dialecte, variante şi versiuni. Organismele de standardizare asistau
neputincioase la un proces frenetic şi incontrolabil de diversificare.
Probabil că diversitatea era inerentă începuturilor, când ritmul
inovaţiilor este de nestăpânit iar orice standard devine vetust
încă înainte de a fi publicat. Însă, în mod cert, producătorii
s-au întrecut la rândul lor în sabotarea deliberată a standardelor în
scopuri comerciale. Evident, marii clienţi rămâneau prizonierii
tehnologiilor promovate de furnizorii lor. Dacă ai şuruburi speciale,
îţi trebuie şi piuliţe la fel de speciale.
Sistemul de operare Unix
a reprezentat o speranţă a reconcilierii. Istoria sa este
edificatoare şi porneşte din tentativa ratată de MIT, AT&T
şi General Electric de a dezvolta un super-sistem de operare numit MULTICS.
După ce proiectul este abandonat, un tânăr inginer de la AT&T se
distrează pe un computer DEC PDP-7 încercând să scrie un joc, botezat
Space Travel. Pentru asta, Ken Thompson dezvoltă rudimentul unui
sistem de operare mult mai puţin ambiţios decât MULTICS, pe care
colegii l-au denumit în glumă UNICS, iar apoi Unix. Dar când maşina
iniţială se dovedeşte prea lentă iar Ken
hotărăşte să treacă pe una mai puternică,
constată că trebuie să ia totul de la început şi că
treaba asta se va repeta pentru fiecare altă platformă. Aici
intervine un prieten al lui Ken, pe nume Dennis Ritchie, care inventează
un limbaj de programare care să fie de nivel suficient de înalt pentru a
fi eficient, dar totodată suficient de jos - adică apropiat de
maşină - pentru a permite dezvoltarea
funcţionalităţilor specifice unui sistem de operare. Limbajul
s-a numit C iar ideea era următoarea: odată de sistemul de operare
era scris în C şi nu într-un limbaj specific maşinii, pentru orice
nou tip de maşină era suficient să fie dezvoltat un compilator
de C, urmând ca acesta să transpună sistemul de operare în limbajul
maşinii respective.
Ideea a funcţionat
iar Unix-ul a dobândit un succes instantaneu, fiind adoptat cu entuziasm de
mediul academic şi apoi de industrie. Sistemul a fost portat cu
uşurinţă pe cele mai diverse platforme hard-soft şi
ameninţa să devină, împreună cu limbajul C, un standard
universal. Dar n-a fost aşa, pentru că în scurt timp au apărut o
mulţime de variante - numite poetic "arome" (flavors) - care,
desigur, au început să nu se mai înţeleagă între ele. Însă
catastrofa s-a produs odată cu invazia microcalculatoarelor, care nu aveau
forţa să susţină un sistem de tip Unix şi au readus
situaţia la haosul iniţial: fiecare cu alt sistem de operare, cu alte
standarde, cu alte soluţii. Toate incompatibile. După o vreme apele
s-au mai limpezit şi au ieşit la iveală învingătorii: Unix
în diverse arome pe marile computere şi pe puternicele staţii grafice
bazate pe procesoare RISC, DOS şi Windows pe PC-uri bazate pe platforma
IBM, MacOS pe Macintosh-urile produse de Apple.
Limbajele de programare
au continuat să se diversifice în voie, fiecare tentativă de
standardizare fiind aproape imediat contrazisă de extensiile
producătorilor. Poate că SQL este exemplul cel mai elocvent. Unul
dintre puţinele standarde stabile în acest domeniu este versiunea ANSI a
limbajului C. Însă portabilitatea şi interoperabilitatea s-au izbit
în continuare de zidul soluţiilor, formatelor şi protocoalelor
proprietare.
Ce s-a mai întâmplat apoi
se cam ştie. Marile computere au murit eroic iar odată cu ele a murit
şi procesarea centralizată. Microcomputerele au împânzit lumea iar
când frenezia descentralizării s-a domolit, au început să se lege în
reţele locale pentru a suplini rolul marilor computere. Însă
re-centralizarea s-a dovedit dureroasă şi costisitoare iar
jucătorii pieţei au înţeles că trebuie să admită
o anumită deschidere. Sintagma open systems a fost în vogă pe
la jumătatea ultimului deceniu al secolului trecut, dar rezultatele au
fost modeste. Cuplul Intel/Microsoft a ajuns să facă legea şi
să impună standardele de facto şi un discret monopol în
piaţa informatică.
Marea noutate în peisajul
sfârşitului de mileniu a fost sistemul de operare Linux şi pleiada de
aplicaţii open source. Însă toate acestea n-ar fi fost
posibile fără expansiunea galopantă a Internetului. Iar aceasta
n-ar fi fost galopantă dacă un tânăr inginer englez, Tim
Berners-Lee, n-ar fi avut o memorie precară, ce-l împiedica să
reţină oamenii, proiectele şi computerele alocate acestora la
marele institut european de cercetări pentru fizica particulelor (CERN) de
lângă Geneva. A inventat un program care utiliza tehnica hipertextului
pentru a memora relaţii între informaţii diverse. A reuşit
să convingă conducerea institutului că programul său ar
putea fi extrem de util şi la nivel instituţional. Tim primeşte
un computer Next şi este lăsat să dezvolte sistemul. Rezultatul
s-a numit World Wide Web şi este pe cale să revoluţioneze lumea.
CERN nu s-a cramponat de
proprietatea asupra sistemului iar Tim a publicat standardele pe care se baza -
protocolul HTTP şi formatul HTML. Au fost dezvoltate programe server
şi programe client (numite browser) iar sistemul s-a răspândit
fulgerător. Ceea ce este extrem de important este că nevoia de vizibilitate
a garantat stabilitatea şi caracterul public al standardelor, în ciuda
unor tentative de deturnare.
O
găselniţă esenţială a fost tehnologia CGI (Common
Gateway Interface), care permite serverelor Web să comunice cu alte
programe şi să furnizeze clienţilor pagini HTML generate
dinamic. Browser-ele Web pot deveni astfel interfaţa standard cu
utilizatorul a unor aplicaţii dintre cele mai diverse, indiferent de
platforma pe care rulează serverele, aplicaţiile şi clienţii.
Diversitatea începe
astfel să se împace cu compatibilitatea iar Web-ul tinde să
devină un nou turn Babel. Însă răsturnat: nu vom avea
niciodată o limbă comună, dar ne vom putea totuşi
înţelege.