Poslednjih nekoliko dana sam ponovo poceo da ekperimentisem sa programiranjem. Instalirao sam i probao Rust i Go. O programskom jeziku Rust sam procitao dosta pozitivnih tekstova i komentara, da je pouzdan, bezbedan, brz, a u isto vreme, nije (toliko) komplikovan kao C/C++. Linus Torvalds, koliko vidim, predvidja da ce Rust ubrzo da bude jedan od razvojnih alata za Linux kernel. I za Go sam citao dosta pozitivnih tekstova, da je brz, da se lako uci. I eto, resio sam da ih isprobam.
Da bi ste instalirali Rust, idite na https://www.rust-lang.org/learn/get-started i pratite uputstva. Rust mozete probati i bez instalacije, iz Vaseg web pregledaca. Na adresi https://play.rust-lang.org/ se nalazi online Rust playground, gde mozete testirati Rust. Da sam odmah otisao na Rust playground, ustedeo bih bar pola sata da shvatim kako da napisem print. :) Ono sto mi se odmah nije svidelo je zvanicno uputstvo, iskreno, potrosio sam nekih sat vremena dok nisam shvato kako da napisem Hello World i da definisem neke varijable. Da sam otisao pravo na Rust playground… :) Salu na stranu, imate zvanicno uputstvo za pocetnike u Rust-u na adresi https://doc.rust-lang.org/book/. Mozda je najbolje, da odmah odete na sledecu adresu, umesto na zvanicno uputstvo, jer su stvari lepo objasnjene za totalne pocetnike. https://www.programiz.com/rust/getting-started.
Jos jedna stvar koja mi se ne svidja kod Rust-a je sto je kompajlirani fajl jako veliki. Cak i test kod Hello World kada se iskompajlira sa podrazumevanim parametrima, je veliki oko 3.7 MiB. Sa nekim optimizacijama sam uspeo da ga smanjim na 1.5 MiB, ali to je i dalje mnogo. Ovo je u Linuxu, ali mislim da je slicna stvar i u Windows verziji.
Go mozete preuzeti sa adrese https://go.dev/dl/ kada se otvori web strana, mozete izabrati verziju za koji operativni sistem zelite da preuzmete instalaciju. Poput Rust-a, i Go mozete probati online iz web pregledaca na adresi https://play.golang.com/. Kada se iskompajlira, sa podrazumevanim parametrima, program Hello World je dugacak oko 1.7 MiB. Uz pomoc optimizacija, fajl sam uspeo da smanjim na 1.2 MiB.
U ovom tekstu sam hteo da pisem samo o Rust i Go, medjutim, zaintrigiralo me je koliki su Hello World fajlovi u drugim programskim jezicima. Ovde pre svega mislim na velicinu kompajliranog fajla. Kada se Hello World kompajlira u Lazarusu, da radi u terminalu (dakle ne iz grafickog okruzenja, kako bi poredjenje bilo ravnopravno), sa default parametrima, velicina kompajliranog fajla je oko 416 KiB. Uz pomoc optimizacija, fajl sam uspeo da smanjim na 187 KiB. Necu detaljnije da se zadrzavam oko Lazarusa, jer sam o njemu vec pisao. Samo cu dodati da ga mozete preuzeti sa adrese https://www.lazarus-ide.org/index.php?page=downloads
Apsolutni sampion, sto se tice male velicine kompajliranog fajla, od testiranih kompajlera je, Free Basic. Da, dobro ste procitali Free Basic! Velicina izlaznog fajla je manja od 42 KiB. Jako dobar i optimizovan kompajler. Steta sto skoro niko ne zna za Free Basic. Free Basic mozete preuzeti sa adrese https://sourceforge.net/projects/fbc/files/. Po kvalitetu sigurno zasluzuje vecu popularnost. Takodje za razliku od ostalih programskih jezika, Free Basic je daleko najjednostavniji. Source kod je samo u jednoj liniji: print “Hello World!”
U narednom periodu, kada malo bolje savladam Rust i Go, preradicu moj Python program za testiranje brzine ostalim programskim jezicima, pa cu testirati brzine. Python vs Rust vs Go vs Lazarus vs Free Basic.