Zašto Curiosity ima tako slabašnu opremu i nije li bilo bolje na Mars poslati neki pametni telefon koji ima kameru sa više megapixela i više memorije?
Curiosity rover je sleteo na Mars, a većina ljudi koji znaju koliko im megapiksela ima digitalni fotoaparat te koliko im memorije ima pametni telefon (ili barem koji je kapacitet SD kartice koju su ubacili u njega) glasno su se razmetali kako eto oni imaju uređaj u koji imaju bolje kamere, više memorije te jači procesor od te mašinerije koju je NASA poslala tamo gore. To je istina, a postoje opravdani razlozi zašto je to tako.
U vreme kad je počelo konstruisanje računara za rover (2004.) tehnologija nije bila na današnjem stepenu razvoja, a razvoj je zaključen 2008. kada počinju testiranja. Ali ni tada nisu uzimani najnoviji i najjači procesori već oni koji su dovoljno provereni i pouzdani. NASA nije baš u mogućnosti da pošalje servis ako nešto na Marsu na bude radilo kako treba.
Curiosity ima dva identična računara čija memorija je otporna na radijaciju, a za razliku od obične RAM memorije neće izgubiti svoj sadržaj za slučaj nestanka napajanja. Procesor RAD750 radi na samo 200 MHz. Naizgled malo, ali dovoljno. Rover je projektovan i optimizovan za zadatak koji treba obaviti isto kao i softver koji se pokreće u njegovim računarima. Ono od čega boluju današnje moderne aplikacije na računarima, tabletima i pametnim telefonima je neoptimiziranost. Tokom svih ovih godina se pokazalo da je jednostavnije pojačati hardver nego optimizovati softver. Razvojni alati imaju sve više slojeva od onoga što stvaraju oni koji razvijaju aplikacije i zovu izvornim kodom do onoga što je razumljivo računaru i što se zove mašinski jezik.
NASA razvija softver temeljitije nego oni koji razvijaju aplikacije za vaš mobilni. Aplikacije koje koristite na računarima i mobilnim telefonima možda imaju poneku stranicu specifikacija, neke uopšte nemaju. Veliki broj aplikacija se isporučuje, a da nisu detaljno istestirane. Jedno istraživanje kaže da se kod današnjih aplikacija 80% sredstava namenjenih za njihov razvoj potroši nakon što se one prvi put pokrenu. Prva verzija obično ne zadovoljava zahteve, puna je grešaka, pa nakon nje sledi ‘peglanje’, a često i ponovno pisanje pojedinih funkcionalnosti od samog početka. Aplikacije koje pišu u Nasi moraju raditi iz prve, ništa se ne radi bez specifikacije, pa se događa da se za 6000 linija koda napiše dokumentacija od 2500 stranica.
Grupa koja je razvijala softver za Space Shuttle je otkrila 85% grešaka pre prvog testa i 99.9% pre isporuke. U takvim uslovima, čak i sa Nasinim budžetom, ne piše se suvišan kod već baš onoliko koliko treba i ništa više.
Izvorni kod koji pokreće računar rovera na Marsu ima oko 2.5 miliona redova koda. Uglavnom je reč o kodu u programskom jeziku C koji je pisan po vrlo strogim pravilima (npr. zabranjeno je korišćenje rekurzija). Američki lovac F-22 ima softver od 1.7 miliona redova koda napisanog u programskom jeziku Ada. Za F-35 (Lockheed Martin F-35 Lightning) potrebno je oko 6 miliona redova koda, dok se u slučaju novog Boeinga 787 govori o 8 miliona linija koda.
Kod Windowsa XP spominje se 45 miliona linija koda, a kod Windows 7 procene idu od 50 do čak 80 miliona redova koda. Kod Debian Linux distribucije (verzija 5.0, na njoj se temelji i popularni Ubuntu) taj broj ide do 323 miliona redova koda, ali ona sadrži oko 29.000 aplikacija i ne može se samo tako upoređivati sa Windowsima. Ekvivalent tome bi bilo kad bi kod njih uključili i broj linija koda najčešćih aplikacija. Sam Linux kernel ima preko 15 miliona redova koda.
Ali rekordere po broju linija koda nećete naći u svemiru, među satelitima, avionima nego na putevimai. Neki stručnjaci govore da se u automobilima visoke klase može naći i do 100 miliona redova koda. Informatičar iz Mercedesa tvrdi da se u S klasi samo za radio i navigacijski sistem troši 20 miliona redova koda. Drugi opet predviđaju da će se u budućim automobilima nalaziti od 200 do 300 miliona redova koda. Kod današnjih automobila visoke klase od 35-40% čine troškovi softvera i elektronike.
Ali više ne znači i bolje. Da Nasa radi aplikacije poput drugih i rover bi se dičio sa sto miliona redova koda, ali verovatno bi se izgubio negde do Marsa jer bi se pojavio kritični "bug" ili bi se celi sistem jednostavno zaglavio.
Izvor: 24sata.hr