Razlika između sastavljenih i tumačenih jezika

Uobičajeno pitanje koje ljudi postavljaju u programiranju je "koji jezik treba da naučim?"

Odgovor na ovo pitanje je skoro nemoguće odgovoriti. Ako želite da naučite da programirate za karijere, onda je dobra ideja da vidite šta svi drugi koriste i nauče to.

Na primjer, u posljednjih nekoliko godina veliki broj ljudi koristi ili .NET stack koji je uključio ASP.NET, C #, JavaScript / JQuery / AngularJS. Ovi programski jezici su deo Windows skupa alata i dok je .NET dostupan Linuxu, on se ne koristi široko.

U svijetu Linuxa, ljudi koriste Java, PHP, Python, Ruby On Rails i C.

Šta je kompilirani jezik?

#include int main () {printf ("Hello World"); }

Ovo je vrlo jednostavan primer programa napisanog na C programskom jeziku.

C je primer sastavljenog jezika. Da bi pokrenuli gornji kod, moramo ga pokrenuti preko C kompajlera.

Uopšteno, da biste to uradili, pokrenite sljedeću naredbu u Linuxu:

gcc helloworld.c -o zdravo

Gornja komanda pretvara kôd iz čitljivog formata u strojni kod koji računar može pokrenuti prirodno.

"gcc" je sam kompilirani program (gnu c kompajler).

Prikupljeni program se može pokrenuti jednostavno tako što se ime programa pokreće na sledeći način:

./zdravo

Prednosti korišćenja kompajlera za kompajliranje koda je to što obično radi brže od tumačenog koda, jer ne treba da radi na licu dok aplikacija radi.

Prikupljeni program je takođe proveren za greške dok se prikupljaju. Ako postoje komande koje kompajler ne voli onda će biti prijavljeni. Ovo će vam omogućiti da ispravite sve greške kodiranja pre nego što ste u potpunosti pokrenuli program.

Samo zato što je program uspješno kompajliran ne znači da će se logično pokrenuti način na koji očekujete, pa je ipak potrebno testirati vašu aplikaciju.

Međutim, retko je sve savršeno. Ako imamo C program sastavljen na našem Linux računaru, ne možemo kopirati taj kompilirani program na naš Windows računar i očekivati ​​izvršenje izvršne verzije.

Da bi dobili isti C program koji se pokreće na našem Windows računaru, moraćemo ponovo kompajlirati program pomoću kompajlera C na Windows računalu.

Šta je tumačeni jezik?

print ("hello world")

Gornji kod je python program koji će prikazati riječi "hello world" kada se pokrene.

Da pokrenemo kod, ne treba prvo da je kompajlirate. Umesto toga, možemo jednostavno pokrenuti sljedeću naredbu:

python helloworld.py

Navedeni kôd ne mora prvo biti sastavljen, ali zahteva da se python instalira na bilo kojoj mašini koja treba da pokrene skriptu.

Python tumač uzima ljudski čitljiv kod i pretvara ga u nešto drugo pre nego što napravi nešto što mašina može čitati. Sve ovo se dešava iza scene i kao korisnik, sve što ćete videti su reči "hello world".

Uopšteno govoreći, smatra se da će tumačeni kodovi raditi sporije od sakrivenog koda, jer mora aktivno izvršiti korak preokrenavanja koda u nešto što mašina može rukovati na ljeto, nasuprot sakupljenom kodu koji se može pokrenuti.

Iako se ovo može činiti kao loše stanje, postoji niz razloga zbog kojih su tumačeni jezici korisni.

Jednom je mnogo lakše dobiti program napisan u python-u za rad na Linux-u, Windows-u i MacOS-u . Sve što treba da uradite je uveriti se da je python instaliran na računaru na koji želite da pokrenete skriptu.

Još jedna prednost je što je kod uvek dostupan za čitanje i može se lako promijeniti tako da radi na način na koji želite. Sa kompiliranim kôdom, morate pronaći gdje se kôd čuva, menja, kompajlira i preradi program.

Sa tumačenim kodom, otvorite program, promenite ga i spremno je ići.

Dakle, koje biste koristili?

Smatramo da će vaša odluka programskog jezika biti odlučena da li je to kompilirani jezik ili ne.

Ova lista bi mogla biti u potrazi jer sadrži 9 najpopularnijih programskih jezika.

Iako neki jezici jasno umiru kao što su COBOL, Visual Basic i ActionScript, postoje i drugi koji su bili na ivici umiranja i napravili dramatičan povratak, kao što je JavaScript.

Generalno, naš savjet bi bio da ako koristite Linux, trebali biste naučiti Java, Python ili C i ako koristite Windows uči .NET i AngularJS.