Hva er forskjellen mellom Java og JavaScript?

For de som nettopp har startet med programmering, det være seg server-side eller klientsiden, er det uunngåelig at du kommer til å komme over programmeringsspråket Java og JavaScript.

Hvis du har noen erfaring med programmering i den ene eller den andre, vet du at de ikke er de samme, og du vet sikkert forskjellen mellom de to. Men hvis du bare begynner, kan dette være forvirrende av noen grunner, det første er hvordan språkene heter.

Selv om de deler navnet "Java" i navnet deres, deler de svært få attributter og egenskaper. I denne artikkelen skal vi se på noen av de viktigste forskjellene på språkene ved å undersøke noen av de høye attributter hvert språk tilbyr.

Til slutt søker vi å hjelpe de som er helt nye til programmering, og er ikke sikker på hvilket språk du vil lære (eller lære først!). I denne artikkelen skal vi se på noen av de viktigste forskjellene som finnes på språkene, og hvor hver er et forsøk på å gi deg den informasjonen som er nødvendig for å hjelpe deg med å ta det neste trinnet i din karriere.

Java og JavaScript

Kanskje det beste poenget å gjøre når du begynner å skille disse to språkene er å tegne sammenligningen slik:

Java er å JavaScript som skinke er å hamsterere.

Dessverre kan jeg ikke hevde denne analogien som min egen. I stedet er det laget av Jeremy Keith, men det er et utmerket poeng: Om det eneste språkene har til felles er at de deler navnet "Java" i deres navn. 

En likhet er at språkene er det vi kaller "C-stil" -språket ved at deres syntakser er som de for C. Det er at de begge har funksjoner, parenteser, parenteser og semikoloner.

Annet enn det, men det er veldig lite likhet. Gjennom resten av denne artikkelen skal vi se på hvert språk på et svært høyt nivå for å gi deg en ide om hva hvert språk tilbyr og funksjonene til hver. 

Når du er ferdig, bør du være i stand til å se en forskjell på de to språkene, og selv om de heter samme og har noen lignende syntaks, det handler om det eneste de har til felles.

Så la oss komme i gang.

Hva er Java?

Vi har dekket Java i andre opplæringsprogrammer på dette nettstedet og vil fortsette å gjøre det slik språket fortsetter å vokse over tid. 

Java ble oppfattet under ideen om "skrive en gang, løp hvor som helst", noe som betyr at du kan skrive et program på en datamaskin og deretter distribuere det til en hvilken som helst enhet som hadde Java-kjøretiden.

Men vent: Hva er Java-kjøretiden? 

For det første er det viktig å forstå at Java er et kompilert språk, men det er ikke kompilert til binær kjørbar kode. I stedet er det kompilert til bytecode.

Java bytecode er instruksjonssettet til den virtuelle Java-maskinen. Hver bytekode består av en, eller i noen tilfeller to byte som representerer instruksjonen (opcode), sammen med null eller flere byte for å overføre parametere.

Høres mindre enn spennende, ikke sant? Det er ok! Som utviklere er vi ikke ansvarlige for å skrive bytekoden. I stedet samler Java-kompilatoren vår kode til bytecode.

Denne byte-koden utføres på toppen av kjøretiden, som kjører i sammenheng med et annet operativsystem. Dette operativsystemet kan kjøre på en mobiltelefon, det kan kjøre på en annen datamaskin, det kan kjøre på Windows, OS X, Linux eller noe annet system som det er kompatibelt med. Du kan lese alt om det på denne siden.

Det høres pent ut, ikke sant? Saken er, det er ikke uten sine utfordringer. Det virker langt enklere enn det er, og dette er noe som mer avanserte Java-utviklere takler. Det er utenfor rammen av denne artikkelen. I stedet skal vi fokusere på attributter av språket slik at vi kan sammenligne og kontrast med JavaScript.

Men først, la oss se på noen av de fakultetene vi må jobbe i Java. Det er viktig å merke seg at vi jobber på et mye høyere nivå. For eksempel kommer vi til å jobbe med følgende konstruktører:

  • Klasser er grunnlaget for ethvert objektorientert basert språk. De tillater oss å definere hvilke egenskaper og atferd et objekt vil utstille når det har blitt instantiated.
  • Funksjoner er delene av klasser som tillater gjenstander gjør noe. En klasse som representerer en Fil kan tillate oss å lese innholdet i det det inneholder.
  • Egenskaper, eller attributter, er det som beskriver en klasse. EN Fil, for eksempel kan ha tillatelser som evnen til å lese eller skrive til et filsystem. Det kan også ha en sti som representerer hvor den ligger på filsystemet.
  • Arv er når en klasse kan arve bestemte egenskaper fra en annen klasse. Dette betyr at den mottar alle funksjonene og egenskapene fra en foreldreklasse, og det kan legge til sin unike funksjonalitet.

Hvis du aldri har skrevet kode før, kan noe av dette høres ut som jargong. Forståelig så! Vi har noen ressurser som er tilgjengelige for å hjelpe deg å lære deg hva du trenger å vite:

  • Introduksjon til dataprogrammering med Java: 101
  • Introduksjon til dataprogrammering med Java: 201
  • Introduksjon til dataprogrammering med Java: 301

Men før du hopper for langt inn i å ta en avgjørelse om hva du vil lære, la oss også se på JavaScript.

Hva er JavaScript?

Jeg har dekket JavaScript i mye mer detalj i en tidligere artikkel som du kan lese her, men jeg vil dekke de høye punktene, som tidligere nevnt, i denne artikkelen. For en mye dypere dykk, ta en titt på hva som er gitt ovenfor.

JavaScript, i kjernen, er et dynamisk språk som ikke er skrevet, og det tolkes. Dette betyr:

  • Vi, som utviklere, kan enkelt utvide visse aspekter av språket ved å legge til koden til eksisterende objekter som objektet string.
  • Språkets untypede natur betyr at vi kan erklære strenge, boolesker og tall (versus heltall, flyt og decimaler) uten å spesifisere eksplisitt deres type som vi gjør i Java (og andre språk).
  • Språket tolkes, noe som betyr at det ikke er kompilert til en kjørbar. I stedet tolkes det av en nettleser eller et annet program på datamaskinen som oversetter instruksjonene til maskinens kode.

Hvis du er forvirret av noe av dette, ikke bekymre deg! Vi har alle vært der:

  • Definere variabler?
  • Implementeringsfunksjoner?
  • Opprette objekter?
  • Setter opp betingede utsagn?
  • Og mye mer.

Det er mye. Jeg vet. Men det fine er det vi har rikelig av ressurser for å få deg raskere med JavaScript. Og når du lærer nyansene i språket, blir det lettere og lettere å jobbe innenfor sine rammer.

Husk at alle "Jeg er ikke sikker på hva jeg gjør" er naturlig, og det er en del av læringskurven. Hvis du har aldri sett noen programmering relatert til JavaScript, så anbefaler jeg på det sterkeste å sjekke ut et par av følgende kurs:

  • JavaScript Fundamentals
  • Viktige verktøy for JavaScript-utviklere
  • Objektorientert JavaScript med ES6
  • Hva kommer til JavaScript

Når du blir mer kjent med språket, er det også viktig å bruke riktige verktøy for å utvikle dine applikasjoner. Dette inkluderer bruk av verktøy som en debugger (som de fleste moderne nettlesere inkluderer). Dette er imidlertid ikke tilgjengelig for denne artikkelen.

En kommentar om objektorientering

Et annet viktig forskjell å gjøre er at JavaScript og Java begge anses som objektorientert språk, men av forskjellige grunner.

Java lar oss lage forekomster av objekter fra klasser som vi lager. Omvendt er alt i JavaScript et objekt. Det betyr at det ikke er noen klasser. Og fordi alt er et objekt, har alt metoder og egenskaper vi kan bruke. 

I Java, når du oppretter en forekomst av en klasse, har du tilgang til metodene og egenskapene du eksponerer gjennom klassen definisjonen. Hvis du har offentlige eiendommer, offentlige funksjoner og så videre, kan utvikleren bruke dem.

I JavaScript, når du lager en variabel, et objekt eller en funksjon, har du muligheten til å ringe til funksjoner som ikke bare eksisterer på objektet, men også på objekter der det gitte objektet kommer fra egenskapene. Dette har å gjøre med JavaScript-prototypal arv, som du kan lese mer om i denne artikkelen.

Hvilken skal jeg velge?

Som du kan se fra innholdet ovenfor, er de to språkene - men begge inspirert av C om deres syntaks - veldig forskjellige. Hver tjener også en annen hensikt.

Selv om du kan skrive JavaScript på serveren med teknologier som Node.js, er de ikke den samme typen programmer som er bygget med Java. I tillegg, selv om du kan skrive applikasjoner på serversiden med Java, er de ikke den samme typen programmer du vanligvis skriver med JavaScript.

I stedet er det ofte nyttig å tenke på at JavaScript er et språk som passer best for utviklingen av klientene, for applikasjoner som skal kjøre i en nettleser eller for enkeltsidige applikasjoner. Og det er best å tenke på Java som et programmeringsspråk som er best brukt til å skrive server-side eller desktop applikasjoner som kan kjøres på en rekke forskjellige operativsystemer og enheter.

Konklusjon

Tilsynelatende tilbyr hvert av disse språkene sine unike sett med fordeler og ulemper. Ærlig talt tror jeg at mye av det som driver oss til å velge ett språk over det andre, har å gjøre med det vi vil gjøre når det gjelder å bygge løsninger for oss selv og andre.

Hvis du ønsker å jobbe på nettet, er JavaScript det sannsynlig ditt beste valg. Hvis du derimot vil skrive skrivebordsapplikasjoner, er Java ikke et dårlig valg.

For de som er interessert, er det verdt å merke seg at JavaScript har blitt et av de de facto-språkene for å jobbe på nettet. Det er ikke uten det er læringskurver, og det er nok av rammer og biblioteker for å holde deg opptatt også. Hvis du leter etter flere ressurser for å studere eller bruke i arbeidet ditt, sjekk ut hva vi har tilgjengelig på Envato-markedet.

Jeg bruker mesteparten av tiden min til å jobbe med WordPress og bygge løsninger på toppen av det; Jeg er imidlertid også en fan av JavaScript og blogger om det fra tid til annen. Hvis du er interessert i andre kurs og opplæringsprogrammer jeg har skrevet for Envato, vennligst sjekk ut min profilside. Videre kan du lese flere artikler om WordPress og JavaScript-utvikling på bloggen min. Følg med på Twitter også på @tommcfarlin.

Med det sagt, vær så snill å gi all tilbakemelding i kommentarfeltet nedenfor.

Lær JavaScript: Den komplette veiledningen

Vi har bygget en komplett guide for å hjelpe deg med å lære JavaScript, enten du er bare i gang som webutvikler eller du vil utforske mer avanserte emner.