31.10.2019

Natalija Mitkovic

Koja je razlika između Jave i JavaScript-a?

 

Java i Javascript mogu zvučati slično zbog reči „java“, ali ovo dvoje osim toga, nemaju sličnosti. Iako se i Java i Javascript koriste za razvoj web i mobilnih aplikacija, postoje zaista važne razlike između njih.

Javu je kreirao 1991. godine James Gosling i od tada je postao jedan od najpopularnijih programskih jezika na svetu. Posle njegovog stvaranja, grupi inženjera Sun Microsistems-a trebalo je 4 godine da razviju Javu. Pored web i mobilnih aplikacija, Java se takođe koristi u ugrađenim sistemima, desktop aplikacijama i u naučnim aplikacijama. 3 milijarde uređaja širom sveta, uključujući računare, štampače, pametne telefone, bankomate, kućne bezbednosne sisteme, koriste programski jezik Java.

JavaScript, koji je stvoren 1995. kao skriptni jezik za web, bio je poznat pod nazivom Mocha. Brendan Eich-u je trebalo 10 dana da ga razvije. Nakon nekog vremena njegovo ime je promenjeno u LiveScript, a zatim u JavaScript, uglavnom kao marketinška taktika kako bi ga povezivali sa već popularnim programskim jezikom Java. Osim imena, Java i JavaScript nisu ni na koji način povezani.


Glavne razlike između Jave i JavaScript-a

Programska paradigma:

Programska paradigma je način na koji programski jezik pristupa rešavanju problema.

Java je objektno-orijentisan programski jezik (OOP), što znači da se Java zasniva na konceptu „objekata“, sličnom objektima iz stvarnog sveta. Objekat može imati ime, svojstva, atribute ili funkcije. Takođe, može imati svoje podatke i može odlučiti kako će te podatke deliti sa drugim objektima. Zbog svoje OOP arhitekture Java je postala industrijski standard, posebno u domenu preduzetništva. Iako Java takođe podržava funkcionalno programiranje, najčešće se koristi kao OOP jezik.

JavaScript, koji je prvobitno kreiran kao skriptni jezik, sada se takođe koristi kao programski jezik zajedno sa mnoštvom platformi i framework-a, kao što su NodeJs. i ReactJs. JavaScript se takođe može koristiti kao funkcionalni programski jezik, koji se razlikuje od OOP-a. Funkcionalni stil programiranja vrti se oko upotrebe funkcija za izvršavanje zadatka, a funkcije se smatraju „građanima prve klase“. Dakle, JavaScript se smatra programskim jezikom sa više pristupa, jer se može koristiti i kao OOP, proceduralni ili funkcionalni programski jezik. Ovo je pomoglo da se JavaScript prilagodi različitim industrijskim granama, a danas je JavaScript postao jedan od najpopularnijih programskih jezika na svetu. Od FrontEnd-a do programiranja na serverskoj strani (BackEnd-a), od naučnih aplikacija do veštačke inteligencije, JavaScript je brzo porastao na vrh kao preferirani programski jezik.

 


Sintaksa i funkcije

Sintaksa određuje na koji način je pisan određeni programski jezik. Java i Javascript imaju značajne razlike kada je u pitanju sintaksa i karakteristike:

1. Type Checking - Provera tipa 

Programski jezik se može pisati statički ili dinamički. Provera tipa odnosi se na proces verifikacije i primenjivanja „tipa“ promenljive. Javascript je dinamički pisani jezik, što znači da tip promenljive nije poznat dok se program ne kompajlira. Takođe, promenljiva nije vezana za tip pre kompilacije. Promenljive se deklarišu sa ključnim rečima „var“ ili „let“, a prevodilac automatski određuje tip promenljive, na osnovu podataka koje sadrži, poput celog broja ili znaka.

Java je, s druge strane, statički pisana, što znači da svaka varijabla mora biti povezana s „tipom“ kada je deklarisana. To olakšava posao kompajlera i sprečava greške u izvršavanju, jer kompajler može otkriti greške pre nego što se program izvrši.


2. Nasleđivanje 

Nasleđivanje je mehanizam pomoću kojeg jedan entitet može steći svojstva drugog entiteta.

U Javi 'klasa' može naslediti svojstva druge 'klase'. Takođe, može naslediti više klasa, što se naziva višestruko nasleđivanje.

Javascript ne podržava višestruko nasleđivanje, jer je zasnovan na konceptu prototipa. Svaki objekat u JavaScriptu ima prototip, i može ukazivati na drugi objekt od kojeg nasleđuje. To stvara lanac prototipa između dva objekta. Ali svaki se prototip može povezati samo s jednim objektom, i samim tim Javascript ne može podržati višestruko nasleđivanje.

 

3. Preopterećenje (overloading) metoda 

Preopterećenje se odnosi na sposobnost programskog jezika da ima dve ili više metoda sa istim nazivom, koje obavljaju različite zadatke. Da bi se to postiglo, funkcije sa istim imenom moraju imati različite potpise. Java podržava funkciju preopterećenja, dok JavaScript ne. Preopterećenje metoda može doneti fleksibilnost, ali takođe može otežati uklanjanje grešaka.

 

4. Višenitno programiranje (Multithreading)

Višenitni koncept u kontekstu programskog jezika je njegova sposobnost da istovremeno izvršava više zadataka, kako bi se smanjilo vreme izvršenja programa korišćenjem snage CPU-a. Java podržava višenitno programiranje.

Javascript ne podržava multithreading, jer se izvršava u pretraživaču, koji ga ne podržava. Kod se izvršava po redu i mora se izvršiti jedan deo koda, pre nego što bi počelo izvršavanje narednog (singlethreading). Iako višenitno programiranje može učiniti program bržim, on takođe može učiniti program kompleksnijim i otežati uklanjanje grešaka i testiranje. 

 

5. Closure 

Closure je programska konstrukcija gde se funkcija može proslediti kao argument drugoj funkciji. Javascript podržava closure, dok Java ne.

 

 

Kompajliranje i izvršenje

Ovo je još jedna oblast u kojoj se dva jezika značajno razlikuju.

Java programi se kompajiliraju i interpretiraju u bajt-kod pre nego što ih izvrši Java Virtual Machine (JVM). Ovo čini Java platformu nezavisnom, jer različite platforme mogu izvršavati isti bajt-kod uz pomoć JVM.

Javascript se uglavnom interpretira u browser-u, jer je skriptni jezik. Javascript je napisan u skladu sa specifikacijama browser-a, jer se programi napisani za jedan pretraživač ne mogu nužno pravilno izvršavati u drugom.

 

Gore navedene razlike jasno ilustruju činjenicu da su Java i Javascript dva potpuno različita jezika i imaju vrlo malo zajedničkog.

 

 

Izvor: hackr.io , hackernoon.com
 

Komentara: 1

D

Djordje

31.10.2019 10:43:12

Mala ispravka za tačku 5. Closure. Java podržava prosleđivanje anonimnih funkcija i izvršavanje istih. I Java 8 i sve novije verzije

Odgovori

Ostavite Vaš email ako želite da dobijate obaveštenja o novim vestima na sajtu.

13.01.2020

React ili Angular?

I React i Angular se koriste za Frontend development, ali koriste različite programske paradigme, imaju različite karakteristike, funkcionalnosti i performanse.

Korišćenjem ovog sajta prihvatate upotrebu kolačića. Saznajte više