Budućnost kompjutorskog programiranja

Budućnost   kompjutorskog  programiranja
36
0
0

Prvi programi su se pisali na bušenim karticama. Jeli program ispravno napisan moglo se doznati tek kada bi se kartice stavile u čitač i kada bi se vidjelo radi li. Ako program ne radi trebalo je naći grešku analizom naredbi i ponovnim testiranjem. Ako je izvorni program ispravan trebalo ga je compilerima prevesti na strojni kod, te je tek tada spreman za upotrebu.

Nakon nekog vremena razvijeni su programi za čitanje izvornih programa koji su signalizirali koje su naredbe neispravne, pa je popravak izvornog programa postao puno lakši i brži.

Daljnjim razvojem programskih jezika pojavili su se editori za pisanje programa koji grešku u izvornom kodu signaliziraju čim se naredba napiše na ekranu računala. Ovako rade svi današnji editori izvornog koda za sve programske jezike.

Slijedeći razvojni korak u pisanju programa je mogućnost da editor nakon svake naredbe koju napiše programer na padajućem izborniku ponudi slijedeću naredbu koja bi se logički mogla napisati.

Nakon toga u razvoju editora mogao bi se pojaviti grafički editor u kojem bi programer nacrtao blok dijagram nekog programa, a editor bi sam napisao izvorni kod. Na tako napisani kod programer bi mogao intervenirati upisivanjem novih logičkih kontrola i brisanjem viška koda. Kada editori nauče i sami skraćivati kod birajući opcije koda sa najmanjim brojem naredbi bit će moguće i stare programe automatski popravljati radi skraćivanja i bržeg rada programa. Za taj postupak će biti potrebno napraviti bolje decompilere koji rade obrnuti posao od compilera. Compileri izvorni kod pretvaraju u strojni kod, dok decompileri strojni kod pokušavaju pretvoriti u izvorni kod. Iz dekompiliranih programa moći će se napraviti blok dijagram pojedinog programa, a na osnovu toga moći će se napraviti novi program u Assembleru koji radi brže od svih viših programskih jezika. Današnji decompileri mogu znatno rekonstruirati izvorni kod, ali još uvijek ne mogu sve rekonstruirati. Kada decompileri na osnovu rekonstruiranog izvornog koda budu znali nacrtati blok dijagram programa moći će prepoznati i za što je program namijenjen.

Za sva ova usavršavanja programiranja bit će potrebno znatno pojačati brzinu i snagu čipova, kako bi se sve odvijalo puno brže. To će postići tek uvođenjem u serijsku proizvodnu čipova tehnologijom UV lasera. Takvi čipovi imati će na istoj površini stotinjak puta više osnovnih logičkih registara, bit će puno brži i trošit će puno manje energije. Tehnologija je u laboratorijima već razvijena, ali je treba uvesti u industrijsku primjenu. U labaratorijima već postoje i puno snažnije staklene memorije koje mogu trajno čuvati milijune puta veće količine podataka.

Nakon što ovakva tisuću puta jača računala postanu kućni predmeti najvažniji zadatak u programiranju biti će višestruka puno kvalitetnija zaštita računala od hakera i od krađe podataka.

Taj zadatak će se moći uspješno obaviti radeći i na hardveru i na softveru.

Osobna računala će se morati konfigurirati ne kao jedan kompjuter, već kao mala intranet mreža u kojoj je integrirano 5-10 malih virtualnih samostalnih računala od kojih svako radi na drugom operativnom sustavu. Svi zlonamjerni programi napadaju računala koja rade na određenom operativnom sustavu, a ako u mreži imamo računala koja imaju različiti operativni sustav ni jedan virus ne može istovremeno preuzeti čitavu mrežu.

U osobnim računalima organiziranima kao mala intranet mreža bit će potrebno jasna podjela zadataka, te će svi imati različiti stupanj zaštite od hakera i virusa.

Ona virtualna računala koja upravljaju priključenim lokalnim hardverom morati će imati najjaču zaštitu od zlonamjernog koda.

Jedno od virtualnih računala trebati će imati ulogu testiranja svih novih izvršnih datoteka i aplikacija kako bi se vidjelo što ta datoteka ili aplikacija radi. Ako otkrije kako aplikacija može nešto brisati ili negdje slati podatke potrebno je napraviti decompilaciju te datoteke i na osnovu toga nacrtati blok dijagram te aplikacije. Ovo virtualno računalo bi moralo imati barijere preko kojih se aplikacija ne može prebaciti na druga virtualna računala, već im samo može poslati podatak o tome što ta aplikacija radi. Na osnovu toga vlasnik ili administarator bi bio upozoren na ono što ta datoteka ili aplikacija može raditi, te bi mogao odlučiti hoće li instalirati tu aplikaciju, ili otvoriti tu datoteku.

Slijedeći korak u zaštiti osobnih računala bit će automatizirana prilagodba korisniku.

Kada se računalo instalira ono bi moralo nekoliko prvih dana pratiti biometrijske podatke svoga vlasnika, ili nekolicine korisnika. Snimanjem lica, dlanova, otisaka prstiju, zjenica, usana, glasa, otkucaja srca, te načina tipkanja teksta moguće je prepoznati osobu. Na osnovu snimanja ovih podataka u prvih nekoliko dana računalo bi moglo stalno, radeći u pozadini provjeravajući ove podatke, prepoznati tko ga koristi, te na osnovu toga kontrolirati što koji korisnik može raditi.

Na osnovu malih promjena u nekim biometrijskim podacima računalo može prepoznati i neke bolesti ili opasna stanja, te na osnovu toga računalo može upozoriti vlasnika i savjetovati ga što treba raditi.

Oni korisnici koje računalo prepozna kao svoje vlasnike mogli bi raditi sve što žele, dok bi nepoznati korisnici mogli raditi samo minimalne poslove i vidjeti samo aplikacije i datoteke koje je vlasnik označio kao javne.

U slučaju kada vlasnik proda računalo on bi morao uključiti opciju za promjenu vlasništva, pri čemu bi računalo automatski izbrisalo sve osobne podatke bivšeg vlasnika, te njegove zaštićene podatke i aplikacije. Tek nakon toga bi računalo trebalo početi snimati biometrijske podatke novog vlasnika.

Ako netko ukrade računalo mogao bi ga upaliti i vidjeti samo ograničen nivo podataka, a ako ga lopov koristi duže vrijeme računalo bi samo moglo obavijestiti vlasnika o koordinatama gdje se nalazi, te biometrijske podatke osoba koje ga trenutno koriste.

Osim zaštite računala od zlonamjernika potrebno ga je zaštititi i od samih vlasnika koji se ne razumiju u računala. U tom cilju biti će potrebno razviti programe koji u pozadini rade sve ono što rade stručni administratori i serviseri. Svi ti programi bi morali automatski optimizirati upotrebu radne i trajne memorije.

Servisni programi će također morati naučiti raditi sve ono što živa bića rade u snu, a to je pretvaranje dnevne memorije u trajnu memoriju. Čovjek ima kratkotrajno pamćenje koje traje 5 minuta, a nakon toga se nevažni podatci djelomično zaboravljaju. Važnije podatke čovjek pamti preko dana, a u toku sna ti podatci se uspoređuju sa ranijima, te se dio njih pretvara u trajno pamćenje.

Isto to bi trebali raditi servisni programi u računalu.

Svi novi podaci bi se nakon nekog vremena trebali u trenucima dok korisnik ništa ne radi provjeravati i uspoređivati sa ranijim podacima, sažimati, te upisivati u trajnu memoriju. Ako usporedba pokaže kako je neki podatak (tekst, slika, film) već ranije upisan u potpuno istom obliku ne treba ga ponovno upisivati u trajnu memoriju, već je dovoljno staviti samo poveznicu na taj raniji zapis. U slučaju brisanja nekih trajnih podataka računalo treba automatski poslati korisniku podatak o svim kasnijim poveznicama na taj podatak, te tek nakon takvog upozorenja i odobrenja vlasnika obrisati neki podatak.

Servisni programi bi također trebali automatski brinuti o čuvanju rezervne kopije nekih najvažnijih podataka na drugom računalu (serveru) ili negdje u "oblacima", na određeno vrijeme, ili trajno.

Razvojem sve većeg broja aplikacija one troše sve više energije i resursa, te će servisni programi morati preuzeti ulogu reguliranja i njihovog rada. Potrošnja energije od strane raznih aplikacija je vrlo velika, pogotovo kod prijenosnih uređaja, te će programeri morati tome posvetiti puno više pažnje. Kako bi se smanjila potrošnja energije servisne programe će trebati naučiti kako staviti u mirovanje aplikacije koje određeno vrijeme nisu korištene. Ukoliko korisnik odluči upotrijebiti neku staru aplikaciju servisni programi moraju biti u stanju na brzinu tu aplikaciju ponovno aktivirati. Na ovaj način bi se mogla znatno produžiti trajnost baterija u prijenosnim uređajima, te ubrzati njihov rad.

Sa svim ovim poboljšanjima računala, osobito ona prijenosna poput tableta i mobitela postati će najvažniji osobni pomoćnik svakog korisnika koji će svog vlasnika informirati o svemu što ga zanima, prateći biometrijske podatke štititi ga od bolesti i ozljeda, čuvati ga od svakakvih društvenih i drugih opasnosti, te zvati pomoć u slučaju potrebe.