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.
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.
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:
Fil
kan låta oss läsa innehållet i det som innehåller det.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.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:
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å.
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:
Sträng
.Om du är förvirrad av något av detta, oroa dig inte! Vi har alla varit där:
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:
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 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.
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.
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.