Obavijesti

Kolumne

Komentari 15

Koliko linija koda je potrebno napisati da bi došli na Mars?

24sata placeholder

Zašto Curiosity ima tako slabašnu opremu i nije li bilo bolje na Mars poslati neki pametni telefon koji ima kameru s više megapixela i više memorije?

Curiosity rover je sletio 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đaju 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 vrijeme kad je počelo konstruiranje računala za rover (2004.) tehnologija nije bila na današnjem stupnju 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 provjereni 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čunala č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 projektiran i optimiziran za zadatak koji treba obaviti isto kao i softver koji se pokreće u njegovim računalima. Ono od čega boluju današnje moderne aplikacije na računalima, tabletima i pametnim telefonima je neoptimiziranost. Tijekom svih ovih godina se pokazalo da je jednostavnije pojačati hardver nego optimizirati 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čunalo i što se zove strojni jezik.

NASA razvija softver temeljitije nego oni koji razvijaju aplikacije za vaš mobitel. Aplikacije koje koristite na računalima i mobitelima možda imaju pokoju stranicu specifikacija, neke uopće 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 namijenjenih za njihov razvoj potroši nakon što se one prvi put pokrenu. Prva verzija obično ne zadovoljava zahtjeve, puna je grešaka, pa nakon nje slijedi ‘peglanje’, a često i ponovno pisanje pojedinih funkcionalnosti od samog početka. Aplikacije koje pišu u Nasi moraju raditi od 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 prije prvog testa i 99.9% prije isporuke. U takvim uvjetima, čak i s 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čunalo rovera na Marsu ima oko 2.5 milijuna redova koda. Uglavnom je riječ o kodu u  programskom jeziku C koji je pisan po vrlo strogim pravilima (npr. zabranjeno je korištenje rekurzija). Američki lovac F-22 ima softver od 1.7 milijuna redova koda napisanog u programskom jeziku Ada. Za F-35 (Lockheed Martin F-35 Lightning) potrebno je oko 6 milijuna redova koda, dok se u slučaju novog Boeinga 787 govori o 8 milijuna linija koda.

Kod Windowsa XP spominje se 45 milijuna linija koda, a kod Windows 7 procjene idu od 50 do čak 80 milijuna redova koda. Kod Debian Linux distribucije (verzija 5.0, na njoj se temelji i popularni Ubuntu) taj broj ide do 323 milijuna redova koda, ali ona sadrži oko 29.000 aplikacija i ne može se samo tako uspoređivati s 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 milijuna redova koda.

Ali rekordere po broju linija koda nećete naći u svemiru, među satelitima, avionima nego na cesti. Neki stručnjaci govore da se u automobilima visoke klase može naći i do 100 milijuna redova koda. Informatičar iz Mercedesa tvrdi da se u S klasi samo za radio i navigacijski sustav troši 20 milijuna redova koda. Drugi opet predviđaju da će se u budućim automobilima nalaziti od 200 do 300 milijuna redova koda. Kod današnjih automobila visoke klase od 35-40% čine troškovi softvera i elektronike.

Ja predviđam da će se u budućnosti početi proizvoditi automobili koji neće imati elektroniku u sebi već samo čistu mehaniku. Samo što oni neće biti namijenjeni širokim narodnim masama već će biti čista ezoterija za bogataše.

Ali više ne znači i bolje. Da Nasa radi aplikacije poput drugih i rover bi se dičio sa sto milijuna redova koda, ali vjerojatno bi se izgubio negdje do Marsa jer bi se pojavio kritični bug ili bi se cijeli sistem jednostavno zaglavio.

Igre na sreću mogu izazvati ovisnost. 18+.
Vidi sve članke ovog autora
Sve što je bitno, na dohvat ruke
Skini aplikaciju za najbolje iskustvo portala. Čitaj, komentiraj i budi uvijek u toku s najnovijim vijestima.
Komentari 15
Oči su ogledalo duše, a evo što otkrivaju o vašoj osobnosti
CRNE, PLAVE, SIVE...

Oči su ogledalo duše, a evo što otkrivaju o vašoj osobnosti

Iako boju očiju prvenstveno određuje količina i raspodjela pigmenta melanina, od davnina se boju očiju povezuje i s osobnošću. Otkrijte što vaše oči govore o vama...
Mornar za 24sata: Gattuso sad mora uvjeriti igrače da su bolji i od Cityja! To je radio Katalinić
HAJDUKOVA LEGENDA

Mornar za 24sata: Gattuso sad mora uvjeriti igrače da su bolji i od Cityja! To je radio Katalinić

Dinamu je problem igrati na više frontova, a Hajduk je lani malo "zabucao", požurio s pumpanjem euforije. Sad je tu Rakitić, koji nakon finala SP-a i LP-a igra po livadama i ne žali se. A jak Hajduk ne ide s jednim pomoćnim terenom...
Iloni brzo stigle zaruke, Mirjana napustila Zlatka, a Milena se svađala s Katicom: 'Ti si zmija!'
NOVE PERIPETIJE U 'LJUBAV JE NA SELU'

Iloni brzo stigle zaruke, Mirjana napustila Zlatka, a Milena se svađala s Katicom: 'Ti si zmija!'

Milenina i Katičina borba za Ivu u Puli opasno se zahuktava. Milena je izazvala Katicu da nabroji pet dodirnih točaka koje ima s farmerom, no njezini je se odgovori nisu previše dojmili