Bube u svemiru

Svako ko se bavi programiranjem sreo sa sa istim problemom. Napisali ste programski kod, kliknuli da se program pokrene i očekujete rezultat na ekranu. Međutim, prikazuje se greška ili se ne prikazuje ništa. To se svima događa, i početnicima i iskusnim programerima. Greška se nađe u malom programu, ali i u velikom softveru od nekoliko desetina hiljada linija koda. Tvrdoglava mašina na stolu ispred Vas neće da izvrši program, kao da Vam prkosi. Zamislite sada da nevaljali računar nije ispred Vas, nego negdje daleko, pa ga i ne vidite. Ne možete lako provjeriti da li postoji neki fizički kvar, da li dio RAM-a ili spoljne memorije ne radi. Zapravo, zamislite da je računar na kojem programirate izvan Solarnog sistema, da je to najudaljeniji objekat kojeg je ljudska ruka napravila. Udaljen je 24 milijarde kilometara od Zemlje i Vaš kod putuje više od 22 sata do računara. Onda, ako Vaš kod nije popravio problem, čekate narednih 22 sata da provjerite Vaše naredno ažuriranje. Zvuči kao velika frustracija, zar ne? Ipak, da li je tako nešto uopšte moguće?

Upravo takva situacija dešava se redovno programerskom timu zaduženom za održavanje softvera svemirske letjelice Voyager 1.

Voyager 1 je lansiran 1977. godine, zajedno sa opremom za ispitivanje svemira i nadom da će bar pet godina slati podatke na Zemlju. Pedeset godina kasnije, i dalje leti svemirom i šalje podatke na Zemlju. Od svega što je do sada stiglo od Voyagera možemo izdvojiti fotografije Saturna i njegovih mjeseca, podatke o klimi, magnetnom polju i gustini različitih nebeskih tijela, kao i prva mjerenja u međuzvjezdanom prostoru. Voyager je napustio Solarni sistem 25. avgusta 2012. godine.

Voyager 1 se nalazi u ekstremnim uslovima gdje je izložen česticama koje se veoma brzo kreću(kosmički zraci) i mogu oštetiti osjetljivu elektroniku. Upravo takve vrste oštećenja su uticale da dio radne memorije prestane da radi i neka od posljednjih ažuriranja softvera su u vezi sa tim problemom. Bilo je potrebno programirati računar letjelice da koristi samo ispravni dio memorije.

Proces popravljanja programa naziva se debugging, a greška u programu naziva se bag(engl. bug). Taj termin potiče još iz vremena prve generacije elektronskih računara, prije nego što su nastali tranzistori i čipovi. Računare je pokretala tehnologija vakuumskih cijevi. Kako je vakuumska cijev mnogo veća od čipa, tadašnji računari bili su mnogo veći. Zauzimali su prostorije velike kao učionice i bili su teški nekoliko tona. Zbog toplote i svjetla kojeg su emitovali privlačili su različite insekte koji su se uvlačili u računar i često ga kvarili. Naziv bug(buba) i dalje označava grešku u programu iako bube u računarima više nisu fizičke nego su digitalizovane, a taj naziv je popularizovala Grejs Hoper(Grace Hopper), naučnik i mornarički oficir, tvorac prvog računarskog kompajlera.

Sljedećeg puta kada budete imali problem sa ispravljanjem grešaka, nemojte biti frustrirani. Sjetite se programera koji rade na Voyager 1 projektu i shvatite koliko ste privilegovani.

Mladen Stevanović