Wat is het verschil tussen Java en JavaScript?

Voor degenen die net begonnen zijn met programmeren, zowel aan de serverkant als aan de clientzijde, is het onvermijdelijk dat je de programmeertalen Java en JavaScript tegenkomt.

Als je wat ervaring hebt met programmeren in het een of het ander, dan weet je dat ze niet hetzelfde zijn en je waarschijnlijk het verschil tussen beide kent. Maar als u net begint, kan dit om een ​​aantal redenen verwarrend zijn, omdat de eerste de naam van de taal is.

Hoewel ze de naam 'Java' in hun naam delen, delen ze heel weinig kenmerken en kenmerken. In dit artikel gaan we enkele van de belangrijkste verschillen in de talen bekijken door enkele van de hoogwaardige kenmerken te bekijken die elke taal biedt.

Uiteindelijk proberen we diegenen van jullie te helpen die helemaal nieuw zijn in programmeren en niet zeker weten welke taal je wilt leren (of eerst leren!). In dit artikel gaan we enkele van de belangrijkste verschillen in de talen bekijken en waar deze van toepassing zijn, een poging om u te wapenen met de informatie die nodig is om u te helpen de volgende stap in uw carrière te zetten.

Java en JavaScript

Misschien is het beste punt om te maken wanneer je begint met het onderscheiden van deze twee talen om de vergelijking als volgt te tekenen:

Java is naar JavaScript zoals ham hamster is.

Helaas kan ik deze analogie niet als de mijne claimen. In plaats daarvan wordt het bedacht door Jeremy Keith, maar het is een uitstekend punt: het enige dat de talen gemeen hebben is dat ze de naam "Java" in hun naam delen. 

Een overeenkomst is dat de talen zijn die we "C-stijl" talen noemen, in die zin dat hun syntaxis gelijk is aan die van C. Dat wil zeggen, ze hebben allebei functies, haakjes, haakjes en puntkomma's.

Anders dan dat, is er zeer weinig gelijkenis. In de rest van dit artikel gaan we elke taal op een zeer hoog niveau bekijken om u een idee te geven van wat elke taal biedt en de kenmerken van elke taal.. 

Als u klaar bent, ziet u een verschil in de twee talen en, hoewel ze op dezelfde manier worden genoemd en hebben sommige soortgelijke syntaxis, dat is ongeveer het enige dat ze gemeen hebben.

Dus laten we beginnen.

Wat is Java?

We hebben Java behandeld in andere tutorials op deze site en zullen dit blijven doen omdat de taal in de loop van de tijd blijft groeien. 

Java is bedacht onder het idee van "één keer schrijven, overal uitvoeren", wat betekent dat je een programma op een computer kunt schrijven en het vervolgens kunt gebruiken op elk apparaat met Java-runtime.

Maar wacht: wat is de Java-runtime? 

Ten eerste is het belangrijk om te begrijpen dat Java een gecompileerde taal is, hoewel het niet is gecompileerd tot binaire, uitvoerbare code. In plaats daarvan is het gecompileerd naar bytecode.

Java-bytecode is de instructieset van de Java Virtual Machine. Elke bytecode is samengesteld uit één of in sommige gevallen uit twee bytes die de instructie (opcode) vertegenwoordigen, samen met nul of meer bytes voor het doorgeven van parameters.

Klinkt minder dan spannend, toch? Dat is goed! Als ontwikkelaars zijn wij niet verantwoordelijk voor het schrijven van de bytecode. In plaats daarvan compileert de Java-compiler onze code naar bytecode.

Deze bytecode wordt uitgevoerd bovenop de runtime, die wordt uitgevoerd in de context van een ander besturingssysteem. Dit besturingssysteem kan op een mobiele telefoon worden uitgevoerd, het kan op een andere computer worden uitgevoerd, het kan op Windows, OS X, Linux of elk ander systeem waarop het compatibel is, worden uitgevoerd. Je kunt er alles over lezen op deze pagina.

Het klinkt netjes, toch? Het punt is, het is niet zonder uitdagingen. Het lijkt veel gemakkelijker dan het is, en dit is iets dat door meer geavanceerde Java-ontwikkelaars wordt aangepakt. Het valt buiten het bestek van dit artikel. In plaats daarvan gaan we ons richten op kenmerken van de taal, zodat we deze kunnen vergelijken en contrasteren met JavaScript.

Maar laten we eerst eens kijken naar enkele van de faculteiten die we op Java moeten werken. Het is belangrijk op te merken dat we op een veel hoger niveau werken. We gaan bijvoorbeeld aan de slag met de volgende constructeurs:

  • Klassen vormen de basis van elke op objecten georiënteerde taal. Hiermee kunnen we definiëren welke kenmerken en gedragingen een object zal vertonen zodra het is geïnstantieerd.
  • Functies zijn de onderdelen van klassen waarvoor objecten kunnen worden gebruikt doe iets. Een klasse die een vertegenwoordigt het dossier kunnen ons toestaan ​​de inhoud te lezen van wat het bevat.
  • Eigenschappen of attributen zijn wat een klasse beschrijft. EEN het dossier, kunnen bijvoorbeeld machtigingen hebben zoals de mogelijkheid om te lezen of te schrijven naar een bestandssysteem. Het kan ook een pad hebben dat aangeeft waar het zich in het bestandssysteem bevindt.
  • Overerving is wanneer een klasse bepaalde eigenschappen van een andere klasse kan erven. Dit betekent dat het alle functies en eigenschappen van een bovenliggende klasse ontvangt, en het kan zijn unieke functionaliteit toevoegen.

Als je nog nooit eerder code hebt geschreven, kan een deel hiervan als jargon klinken. Begrijpelijk! We hebben enkele bronnen die beschikbaar zijn om u te helpen te leren wat u moet weten:

  • Introductie tot Computer Programming met Java: 101
  • Inleiding tot computerprogrammering met Java: 201
  • Inleiding tot computerprogrammering met Java: 301

Maar voordat u te ver gaat in het nemen van een beslissing over wat u wilt leren, laten we ook eens naar JavaScript gaan.

Wat is JavaScript?

Ik heb JavaScript in veel meer detail behandeld in een vorig artikel dat je hier kunt lezen, maar ik zal de hoogtepunten, zoals eerder vermeld, in dit artikel behandelen. Bekijk voor een veel diepere duik wat hierboven is verstrekt.

JavaScript is in de kern een dynamische taal die niet is getypeerd en die wordt geïnterpreteerd. Dit betekent:

  • Wij, als ontwikkelaars, kunnen eenvoudig bepaalde aspecten van de taal uitbreiden door onze code toe te voegen aan reeds bestaande objecten zoals het object Draad.
  • De niet-typerende aard van de taal betekent dat we strings, booleans en getallen (ten opzichte van gehele getallen, drijvers en decimalen) kunnen declareren zonder expliciet hun type te hoeven vermelden zoals we dat in Java (en andere talen) doen.
  • De taal wordt geïnterpreteerd, wat betekent dat het niet in een uitvoerbaar bestand is gecompileerd. In plaats daarvan wordt het geïnterpreteerd door een webbrowser of een ander stukje software op uw computer dat uw instructies omzet in machinecode.

Als je in de war bent door dit alles, maak je geen zorgen! We zijn er allemaal geweest:

  • Variabelen definiëren?
  • Functies implementeren?
  • Objecten maken?
  • Voorwaardelijke verklaringen opstellen?
  • En veel meer.

Het is veel. Ik weet. Maar het mooie is dat we dat hebben overvloed van middelen om je op de hoogte te houden met JavaScript. En als je eenmaal de nuances van de taal hebt geleerd, wordt het gemakkelijker en gemakkelijker om binnen zijn grenzen te werken.

Onthoud dat alle "ik weet niet zeker wat ik doe" natuurlijk is, en het maakt deel uit van de leercurve. Als je dat hebt gedaan nooit heb ik enige programmering met betrekking tot JavaScript gezien, dan raad ik aan om een ​​aantal van de volgende cursussen te bekijken:

  • JavaScript-fundamentals
  • Essentiële tools voor JavaScript-ontwikkelaars
  • Object-georiënteerd JavaScript met ES6
  • Wat komt er aan JavaScript

Als u eenmaal vertrouwd bent met de taal, is het ook belangrijk om de juiste hulpmiddelen te gebruiken voor het ontwikkelen van uw toepassingen. Dit omvat het gebruik van hulpmiddelen zoals een debugger (die de meeste moderne browsers bevatten). Dit is echter niet van toepassing op dit specifieke artikel.

Een opmerking over objectgerichtheid

Een ander belangrijk onderscheid dat moet worden gemaakt, is dat JavaScript en Java beide als objectgeoriënteerde talen worden beschouwd, maar om verschillende redenen.

Met Java kunnen we instanties van objecten maken van klassen die we maken. Omgekeerd is alles in JavaScript een object. Dat betekent dat er geen klassen zijn. En omdat alles een object is, heeft alles methoden en eigenschappen die we kunnen gebruiken. 

Als u in Java een instantie van een klasse maakt, hebt u toegang tot de methoden en eigenschappen die u via de klassendefinitie blootlegt. Als u openbare eigenschappen, openbare functies, enzovoort heeft, kan de ontwikkelaar deze gebruiken.

Als u in JavaScript een variabele, een object of zelfs een functie maakt, hebt u de mogelijkheid om functies aan te roepen die niet alleen op dat object bestaan, maar ook op objecten waarvan het gegeven object zijn eigenschappen afleidt. Dit heeft te maken met de prototypische overerving van JavaScript, waarover u meer kunt lezen in dit artikel.

Welke moet ik kiezen?

Zoals u aan de bovenstaande inhoud kunt zien, zijn de twee talen heel verschillend, hoewel beide door C zijn geïnspireerd met betrekking tot hun syntaxis. Elk heeft ook een ander doel.

Hoewel u JavaScript op de server kunt schrijven met technologieën zoals Node.js, zijn dit niet hetzelfde type toepassingen die met Java zijn gebouwd. Bovendien, hoewel u toepassingen op de server met Java kunt schrijven, zijn het niet hetzelfde type toepassingen dat u doorgaans met JavaScript schrijft.

In plaats daarvan is het vaak handig om na te denken over JavaScript als taal die het meest geschikt is voor ontwikkeling aan de clientzijde, voor toepassingen die in een webbrowser worden uitgevoerd of voor toepassingen met één pagina. En het is het beste om Java te beschouwen als een programmeertaal die het best kan worden gebruikt voor het schrijven van server-side of desktop-applicaties die op verschillende besturingssystemen en apparaten kunnen worden uitgevoerd.

Conclusie

Blijkbaar biedt elk van deze talen hun unieke sets van voor- en nadelen. Eerlijk gezegd denk ik dat veel van wat ons drijft om de ene taal te kiezen boven de andere, te maken heeft met wat we willen doen in termen van oplossingen voor onszelf en anderen.

Als u op het web wilt werken, is JavaScript dat waarschijnlijk je beste keuze. Als je daarentegen desktoptoepassingen wilt schrijven, dan is Java geen slechte keuze.

Voor geïnteresseerden is het vermeldenswaard dat JavaScript een van de de-facto talen van het werken op het web is geworden. Het is niet zonder zijn leercurve, en er zijn ook genoeg kaders en bibliotheken om je bezig te houden. Als u op zoek bent naar extra bronnen om te studeren of te gebruiken in uw werk, kijk dan wat we beschikbaar hebben op de Envato-marktplaats.

Ik breng het grootste deel van mijn tijd door met WordPress te werken en er oplossingen bovenop te bouwen; ik ben echter ook een fan van JavaScript en blog er van tijd tot tijd over. Als je geïnteresseerd bent in andere cursussen en tutorials die ik heb geschreven voor Envato, kijk dan op mijn profielpagina. Verder kun je meer artikelen over WordPress en JavaScript-ontwikkeling lezen op mijn blog. Volg me ook op Twitter op @tommcfarlin.

Met dat gezegd, laat alstublieft alle feedback achter in de commentaarfeed.

Leer JavaScript: de complete gids

We hebben een complete handleiding samengesteld om u te helpen JavaScript te leren, of u net bent begonnen als een webontwikkelaar of dat u meer geavanceerde onderwerpen wilt verkennen.