Na ovo pitanje možemo odgovoriti iz perspektive njegove vrijednosti na berzi, broja njegovih korisnika, ili pak metafizičkog uticaja. Međutim, Google je prije svega ogromni kompjuterski softver. Možemo ga posmatrati kao kod.
Rejčel Potvin iz kompanije Google govorila je upravo o tom njegovom svojstvu na konferenciji inženjera u Silicijumskoj dolini.
Ona procjenjuje da softver potreban da pokreće sve internet usluge ovog giganta – od Google Search do Gmail i Google Maps – predstavlja oko dvije milijarde linija koda.
Poređenja radi, Microsoft Windows operativni sistem – jedan od najkompleksnijih softvera ikad napravljenih za PC – ima oko 50 miliona linija koda. Dakle, pravljenje Googlea je ekvivalent pravljenju 40 Windowsa.
Dvije milijarde linija koje pokreću Google čine Google Search, Google Maps, Google Docs, Google+, Google Calendar, Gmail, YouTube i svaki drugi Google internet servis, pa opet, sve one su na jednom repozitorijumu i na dohvat ruke su za 25.000 Google inženjera.
Unutar te kompanije kod se tretira kao ogromni operativni sistem. “Iako to ne mogu da dokažem, mislim da je ovo najveći repozitorijum na svijetu”, kaže Potvin.
Google je ekstreman slučaj, ali je primjer toga koliko je softver postao složen u doba interneta i kako smo promjenili alate i filozofiju kodiranja kako bismo mu se prilagodili.
Iako kompletan pristup kodu imaju samo zaposleni u Googleu, polako se krećemo ka tome da svaki korisnik interneta može da doprinese tom kodu i to u velikoj mjeri. Samo na taj način možemo pratiti brzu evoluciju modernih internet servisa.
Ali, kako upravljati tako ogromnim kodom?
Google je napravio svoj sistem verzioniranja izvornog koda pod nazivom Piper. On funkcioniše u kompletnoj infrastrukturi koju je Google izgradio, a sistem se proteže na 10 različitih centara podataka.
Zanimljivo je što se kod može koristiti i kombinovati u raznim projektima.
“Kad pokrenete novi projekat, imate mnoštvo programskih biblioteka koje su vam dostupne. Gotovo sve je već urađeno”, kaže Potvin. Šta više, inženjeri mogu napraviti samo jednu promjenu u kodu i automatski je primjene na sve Google servise.
Ipak, postoje ograničenja tog sistema. Potvin kaže da je kod izuzetno osjetljiv – sličan Googleovom PageRank algoritmu pretrage i nalazi se u odvojenim repozitorijumima koji su dostupni nekolicini zaposlenih. Takođe, Google čuva kod za svoja dva operativna sistema Android i Chrome na različitim verzijama kontrolnih sistema. Ipak, najvećim dijelom je monolitan i omogućava slobodan protok gradivnih elemenata softvera, ideja i rešenja.
Ne samo da je potrebno veliko znanje i vještina za baratanje takvim kodom, nego i velika snaga računara. Piper obuhvata oko 85 terabajta podataka (85.000 gigabajta), a Googleovi inženjeri svakodnevno prave oko 45.000 izmjena u repozitorijumu.
Dok se Linux proteže na 15 miliona linija koda i 40.000 softverskih datoteka, Googleovi inženjeri modifikuju 15 miliona linija koda u 250.000 datoteka svake nedelje.
Istovremeno, Piper mora da uklanja “otpad” koji programeri ostavljaju za sobom, da njihovo “pismo” učini razumljivim, da spriječi preklapanje do kog može doći kada dva programera istovremeno mijenjaju kod i pritom uklone bagove u repozitorijumu. Pošto je to ogroman posao, jedan dio su preuzeli automatizovani botovi u okviru alata nazvanog Perforce.
To ne znači da botovi pišu kod, nego da njeguju “zdravlje koda”, kako to kaže Potvin.
Facebook i Google sada zajedno rade na open source verziji kontrolnog sistema koji će moći da koriste svi ljudi. On se zasniva na postojećem Mercurial sistemu.
“Želimo da provjerimo da li Mercurial možemo dovesti na nivo Googleovog repozitorijuma”, kaže Potvin, ukazujući da Google vrijedno radi zajedno sa programerskim guruom Brajanom O’Salivenom i drugima koji nadgledaju kodiranje na Facebooku.
To djeluje kao megalomanski projekat, budući da Facebook i Google barataju sa ogromnim brojem linija koda, ali djeluje da će im u bliskoj budućnosti to poći za rukom.
B92/Informer.ba