Vad är skillnaden mellan Java och JavaScript?

För dem som bara har börjat med programmering, vare sig det är server-sidan eller klientsidan, är det oundvikligt att du kommer att stöta på programmeringsspråken Java och JavaScript.

Om du har någon erfarenhet av programmering i ett eller annat, vet du att de inte är samma, och du vet säkert skillnaden mellan de två. Men om du bara har börjat kan detta vara förvirrande av vissa anledningar, det första är hur språken heter.

Även om de delar namnet "Java" i deras namn delar de väldigt få attribut och egenskaper. I den här artikeln ska vi titta på några av de viktigaste skillnaderna på språken genom att undersöka några av de höga attributen som varje språk erbjuder.

I slutändan försöker vi hjälpa de som är helt nya för programmering och är inte säkra på vilket språk du vill lära av (eller lära dig först!). I den här artikeln ska vi titta på några av de viktigaste skillnaderna som finns på språken och var var och en är ett försök att ge dig den information som behövs för att hjälpa dig att ta nästa steg i din karriär.

Java och JavaScript

Kanske är det bästa stället att göra när man börjar med att skilja dessa två språk att rita jämförelsen så här:

Java är att JavaScript som skinka är att hamstera.

Tyvärr kan jag inte hävda denna analogi som min egen. I stället är det mynt av Jeremy Keith, men det är en utmärkt punkt: Om det enda som språken har gemensamt är att de delar namnet "Java" i deras namn. 

En likhet är att språken är vad vi kallar "C-style"-språk genom att deras syntaxer är som de för C. Det betyder att de båda har funktioner, parenteser, parenteser och semikolon.

Annat än det finns det dock mycket liten likhet. Under resten av denna artikel kommer vi att titta på varje språk på en mycket hög nivå för att ge dig en uppfattning om vad varje språk erbjuder och funktionerna i varje. 

När du är färdig ska du kunna se skillnad på de två språken och även om de heter samma och har några liknande syntax, det handlar om det enda de har gemensamt.

Så låt oss börja.

Vad är Java?

Vi har täckt Java i andra handledning på denna sida och kommer fortsätta att göra det eftersom språket fortsätter att växa över tiden. 

Java var tänkt under tanken att "skriva en gång, springa var som helst", vilket innebär att du kan skriva ett program på en dator och sedan distribuera det till en enhet som hade Java runtime.

Men vänta: Vad är Java runtime? 

För det första är det viktigt att förstå att Java är ett sammanställt språk, men det är inte sammanställt med binär körbar kod. I stället sammanställs den till bytecode.

Java bytecode är instruktionsuppsättningen för den virtuella Java-maskinen. Varje bytekod är sammansatt av en, eller ibland två byte som representerar instruktionen (opcode), tillsammans med noll eller flera byte för att överföra parametrar.

Låter mindre än spännande, eller hur? Det är okej! Som utvecklare är vi inte ansvariga för att skriva bytekoden. Istället sammanställer Java-kompilatorn vår kod till bytecode.

Denna bytecode körs utöver körtiden, som körs i samband med ett annat operativsystem. Det här operativsystemet kan köras på en mobiltelefon, det kan köras på en annan dator, det kan köras på Windows, OS X, Linux eller något annat system som det är kompatibelt med. Du kan läsa allt om det på den här sidan.

Det låter snyggt, eller hur? Saken är, det är inte utan sina utmaningar. Det verkar mycket lättare än det är, och det här är något som mer avancerade Java-utvecklare tacklar. Det ligger utanför ramen för denna artikel. I stället kommer vi att fokusera på attribut på språket så att vi kan jämföra och kontrastera med JavaScript.

Men först, låt oss titta på några av de fakulteter vi måste jobba i Java. Det är viktigt att notera att vi arbetar på en mycket högre nivå. Till exempel får vi arbeta med följande konstruktörer:

  • Klasser är grunden för något objektorienterat baserat språk. De tillåter oss att definiera vilka egenskaper och beteenden ett objekt kommer att uppvisa när det har blivit instanserat.
  • Funktioner är de delar av klasser som tillåter objekt göra någonting. En klass som representerar a Fil kan låta oss läsa innehållet i det som innehåller det.
  • Egenskaper eller attribut är vad som beskriver en klass. en Fil, till exempel kan ha behörigheter som förmågan att läsa eller skriva till ett filsystem. Det kan också ha en sökväg som representerar var den ligger på filsystemet.
  • Arv är när en klass kan ärva vissa egenskaper från en annan klass. Det betyder att det tar emot alla funktioner och egenskaper från en föräldraklass, och det kan lägga till sin unika funktionalitet.

Om du aldrig har skrivit en kod tidigare kan det hända att det här kan höra som jargong. Förståligt så! Vi har några resurser som är tillgängliga för att hjälpa dig att lära dig vad du behöver veta:

  • Introduktion till datorprogrammering med Java: 101
  • Introduktion till datorprogrammering med Java: 201
  • Introduktion till datorprogrammering med Java: 301

Men innan du hoppar för långt för att fatta beslut om vad du vill lära dig, låt oss ta en titt på JavaScript också.

Vad är JavaScript?

Jag har täckt JavaScript i mycket mer detalj i en tidigare artikel som du kan läsa här, men jag täcker de höga punkterna, som tidigare nämnts, i den här artikeln. För en mycket djupare dyka, ta en titt på vad som anges ovan.

JavaScript, som är kärnan, är ett dynamiskt språk som inte är typiskt, och det tolkas. Detta betyder:

  • Vi som utvecklare kan enkelt förlänga vissa aspekter av språket genom att lägga till vår kod till existerande objekt som objektet Sträng.
  • Språkets otypade natur betyder att vi kan deklarera strängar, boolesker och siffror (mot heltal, floats och decimaler) utan att uttryckligen ange deras typ som vi gör i Java (och andra språk).
  • Språket tolkas, vilket innebär att det inte kompileras till en körbar. Istället tolkas det av en webbläsare eller en annan mjukvara på din dator som översätter dina instruktioner till maskinkod.

Om du är förvirrad av något av detta, oroa dig inte! Vi har alla varit där:

  • Definiera variabler?
  • Implementeringsfunktioner?
  • Skapa objekt?
  • Ställa in villkorliga uttalanden?
  • Och mycket mera.

Det är mycket. Jag vet. Men det fina är att vi har massor av resurser för att få dig snabbare med JavaScript. Och när du lär dig nyanser av språket blir det lättare och lättare att arbeta inom sina gränser.

Kom ihåg att alla "jag är inte säker på vad jag gör" är naturligt, och det är en del av inlärningskurvan. Om du har aldrig sett någon programmering relaterad till JavaScript, så rekommenderar jag starkt att kolla in några av följande kurser:

  • JavaScript Grundläggande
  • Viktiga verktyg för JavaScript-utvecklare
  • Objektorienterad JavaScript med ES6
  • Vad kommer till JavaScript

När du väl känner till språket är det också viktigt att du använder lämpliga verktyg för att utveckla dina applikationer. Detta inkluderar att använda verktyg som en debugger (som de flesta moderna webbläsare inkluderar). Detta är dock utom räckhåll för den här artikeln.

En anteckning om objektorientering

En annan viktig skillnad att göra är att JavaScript och Java båda betraktas som objektorienterade språk men av olika anledningar.

Java tillåter oss att skapa instanser av objekt från klasser som vi skapar. Omvänt är allt i JavaScript ett objekt. Det betyder att det inte finns några klasser. Och eftersom allt är ett objekt, har allt metoder och egenskaper vi kan använda. 

I Java, när du skapar en förekomst av en klass, har du tillgång till de metoder och egenskaper som du exponerar genom klassdefinitionen. Om du har offentliga egenskaper, offentliga funktioner och så vidare kan utvecklaren använda dem.

I JavaScript, när du skapar en variabel, ett objekt eller till och med en funktion, har du möjlighet att ringa funktioner som inte bara finns på det objektet utan på objekt från vilka det givna objektet hämtar dess egenskaper. Detta har att göra med JavaScript-prototypal arv, som du kan läsa mer om i den här artikeln.

Vilken ska jag välja??

Som du kan se från ovanstående innehåll, är de två språken - även om de båda är inspirerade av C om deras syntax - väldigt olika. Varje tjänar också ett annat syfte.

Även om du kan skriva JavaScript på servern med tekniker som Node.js, är de inte samma typ av program som är byggda med Java. Dessutom kan du, trots att du kan skriva program på serverns sida med Java, inte vara samma typ av program som du typiskt skriver med JavaScript.

I stället är det ofta användbart att tänka på att JavaScript är ett språk som bäst passar för utveckling av klienten, för applikationer som körs i en webbläsare eller för ensidiga applikationer. Och det är bäst att tänka på Java som ett programmeringsspråk som bäst används för skrivning av serverns eller stationära applikationer som kan köras på en mängd olika operativsystem och enheter.

Slutsats

Tydligen erbjuder alla dessa språk sina unika uppsättningar fördelar och nackdelar. Ärligt talat tror jag att mycket av det som driver oss att välja ett språk över det andra har att göra med vad vi vill göra när det gäller att bygga lösningar för oss själva och andra.

Om du vill arbeta på webben är JavaScript det troligt ditt bästa val Om du däremot vill skriva skrivbordsapplikationer är Java inte ett dåligt val.

För de som är intresserade är det värt att notera att JavaScript har blivit ett av de faktiska språken för att arbeta på webben. Det är inte utan det är inlärningskurvor, och det finns gott om ramar och bibliotek för att hålla dig upptagen också. Om du letar efter ytterligare resurser att studera eller använda i ditt arbete, kolla vad vi har tillgängligt på Envato-marknaden.

Jag spenderar majoriteten av min tid på att arbeta med WordPress och bygga lösningar ovanpå det; Jag är dock också en fan av JavaScript och bloggar om det från tid till annan. Om du är intresserad av andra kurser och handledning som jag har skrivit för Envato, kolla in min profilsida. Dessutom kan du läsa mer artiklar om WordPress och JavaScript-utveckling på min blogg. Gärna följa med mig på Twitter också på @ tommcfarlin.

Med det sagt, vänligen lämna alla feedback i kommentarfältet nedan.

Lär dig JavaScript: Den fullständiga guiden

Vi har byggt en komplett guide för att hjälpa dig att lära dig JavaScript, oavsett om du precis börjat som webbutvecklare eller vill utforska mer avancerade ämnen.