GO (GOLANG) – 03 – komentari

Komentar je tekst koji se ignorise prilikom izvrsavanja programa.
Komentari se koriste da se objasni deo koda.
Takodje mogu da sluze kao podsetnik, u situaciji, kada nakon nekoliko meseci odlucite da napisete novu verziju programa, a ne mozete da se setite sta koji deo programa radi. Zato upisete komentar koji objasnjava cemu sluzi deo koda i lakse cete se setiti sta koji deo programa radi. Isto tako, ukoliko neki drugi programer nastavi da radi na vasem programu, komentari ce mu pomoci da lakse shvati sta koji deo programa radi.
Komentari se takodje mogu koristiti za sprecavanje izvrsavanja koda prilikom testiranja.
Programski jezik Go podrzava komentare u jednom redu ili vise redova.

Jednoredni komentari pocinju sa // iza stoji komentar. Pogledajte primer ispod:

// Ovo je primer komentara.
fmt.Println("Hello World!")

Jednoredni komentari mogu stajati iza funkcije, a ne samo u zasebnom redu. Funkcija ce da se izvrsi, komentar nece smetati izvodjenju funkcije.

fmt.Println("Hello World!") // Ovo je takodje komentar

Komentari u vise redova pocinju sa /* i zavrsavaju se sa */

/* Ovo je komentar
u vise redova.
Ovo je poslednji red komentara. */
fmt.Println("Hello World!")

Ispod je primer komentara koji sprecava izvrsavanje koda.

fmt.Println("Hello World!")
// fmt.Println("Ovaj kod se ne izvrsava.")

A sad malo o programskim jezicima…

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.