Video
Van concept tot klant: is jouw software idee klaar voor de markt?

In Java – JVM talen

De brede stack van Java Virtual Machine, laat ons toe de juiste oplossing te bouwen voor elk specifiek software probleem. Java is de meest gekende en gebruikte taal, maar wij gaan graag een stapje verder om de juiste taal te gebruiken voor een specifiek probleem.

De Java Virtual Machine

De Java Virtual Machine (JVM) is een onderdeel van de Java Runtime Environment (JRE). Dat is de minimale omgeving die nodig is voor het uitvoeren van Java-applicaties. Voordat een Java-applicatie uitgevoerd kan worden door de JVM, worden deze gecompileerd in bytecode. Dat betekent dat elk programma dat werd gecompileerd naar bytecode uitgevoerd kan worden door elk platform, zo lang er de JVM op geïnstalleerd is.

Foto auteur

Yannick Slegers

Full Stack Developer
, The Beehive
Oktober 2022 4 min leestijd

Welke voordelen heeft JVM?

We hebben niet zomaar gekozen om hoofdzakelijk te werken met JVM. Er zijn tal van voordelen verbonden aan het ecosysteem. We sommen graag de 5 belangrijkste voordelen voor je op.

Write once, run anywhere

De grote kracht van het JVM-ecosysteem is het “write once, run anywhere” principe. In tegenstelling tot native talen zoals C, die gecompileerd worden voor specifieke platformen, worden de talen die met JVM werken, gecompileerd naar bytecode. Dat zorgt ervoor dat elk platform waarop JVM geïnstalleerd is de bytecode kan interpreteren naar de platform specifieke native instructie taal.

Een gangbare API

Vervolgens maakt de JVM gebruik van een gangbare API om gebruik te kunnen maken van platform specifieke resources. Een voorbeeld hiervan is dat je niet moet nadenken over het aanspreken van bestanden op het platform doordat JVM dit voor jou oplost. Door gebruik te maken van een generieke I/O API om toegang te krijgen tot het bestandsysteem word je op dit gebied volledig ontzorgd. Langs de andere kant kan je hier ook gebruik van maken om andere resources mee te beheren zoals geheugen, netwerk, randapparatuur, etc.

Een goed beveiligde applicatie dankzij de built-in securityfeatures

Ook de built-in securityfeatures van de Java Virtual Machine komen goed van pas. Deze zorgen ervoor dat je op een eenvoudige manier toch zeer goed beveiligde applicatie kan gaan ontwikkelen. Het zorgt voor een scheidingslaag tussen de applicatie, bijvoorbeeld Java, en de resources van het Operating System (OS) waartoe de applicatie geen directe toegang zou kunnen verkrijgen

Gegenereerde code altijd correct dankzij validatie

De JVM zorgt ook voor validatie van de code. Elke keer dat de bytecode geladen wordt door de JVM wordt er een validatie gedaan volgens een vastgelegde specificatie in de JVM zelf. Het zorgt ervoor dat de gegenereerde code altijd correct geschreven is en gecompileerd wordt door een gevalideerde compiler. Enkele voorbeelden van validatie is het nagaan van zaken als toewijzing van geheugenlocaties en zondigingen tegen de “JVM constraints”.

Geheugenlocaties worden automatisch toegewezen

Het toewijzen van geheugenlocaties is een zeer belangrijk proces. Dat wordt volledig afgehandeld door de JVM zelf waardoor de ontwikkelaar zich hier geen zorgen over dient te maken. Dat is wel het geval bij platform native talen zoals bijvoorbeeld C. Het volledige beheer van toewijzing en opruiming van geheugenlocaties wordt door een subsysteem van JVM afgehandeld, de Garbage Collector (GC). Dit zorgt ervoor dat de kans op memory leaks drastisch afneemt ten opzichte van native talen zoals C.

“Eén keer schrijven, overal uitvoeren”

JVM-evolutie: verleden, heden, toekomst

In 1995 introduceerde de JVM twee revolutionaire concepten, zoals hierboven reeds beschreven, die sindsdien standaard zijn geworden voor moderne softwareontwikkeling: "Eén keer schrijven, overal uitvoeren" en automatisch geheugenbeheer. Software-interoperabiliteit was in die tijd een gewaagd concept, maar tegenwoordig zouden maar weinig ontwikkelaars er twee keer over nadenken.

We zouden kunnen zeggen dat James Gosling en Brendan Eich de moderne programmering hebben uitgevonden, maar duizenden anderen hebben hun ideeën in de daaropvolgende decennia verfijnd en verder ontwikkeld. Waar de Java Virtual Machine oorspronkelijk alleen voor Java was, is deze tegenwoordig geëvolueerd om vele scripting- en programmeertalen te ondersteunen, waaronder Scala, Groovy en Kotlin. Vooruitkijkend, is het moeilijk om een toekomst te zien waarin de JVM geen prominent onderdeel is van het ontwikkelingslandschap. We kijken alvast uit naar de komende evoluties binnen het JVM-ecosysteem.