Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie

Microsoft gaat deelnemen aan Java Community Process voor Java-specificaties

Microsoft heeft een Java Specification Participation Agreement getekend en gaat daarmee deelnemen aan het Java Community Process om specificaties voor Java te ontwikkelen. De stap volgt op de release van de Microsoft Build van OpenJDK.

Met de toetreding tot het JCP-overlegorgaan kan Microsoft Java Specification Requests indienen en zo voorstellen om bepaalde specificaties en technieken toe te voegen aan Java. Suggesties voor Java-api's doorlopen een procedure en gedurende deze procedure worden de suggesties door experts en andere leden beoordeeld. Ook zijn er publieke reviews gedurende het traject, voordat er uiteindelijk gestemd wordt over voorstellen en deze een release kunnen krijgen.

Het Java Community Process bestaat al sinds 1998 en is bedoeld als open overlegorgaan voor de ontwikkeling van Java. In 2010 stapte de Apache Foundation uit het overleg uit onvrede over Oracles invloed, nadat Oracles roadmap voor Java 7 en 8 werd goedgekeurd. Iedereen kan in principe inschrijven en deelnemen aan JCP. Microsoft meldt dit te doen als onderdeel van zijn strategie om meer te investeren in Java.

In april van dit jaar maakte Microsoft een preview van zijn Microsoft Build van OpenJDK beschikbaar, een long-term support-distributie van de open Java-devkit. Deze week bracht het bedrijf OpenJDK 11.0.13 en OpenJDK 17.0.1 uit. Deze versies distribueert Microsoft op korte termijn naar Azure-diensten voor klanten, zoals naar Azure App Service, Azure Functions en Azure Spring Cloud.

Microsoft meldt verder de overstap naar lts-releases om de twee jaar te ondersteunen. Oracle maakte in december bekend dat het om de twee in plaats van drie jaar lts-releases voor zijn commerciële Oracle JDK-binaries gaat uitbrengen. Microsoft gaat hier dus in mee wat betreft zijn OpenJDK-builds.

Tijdlijn voor traject van een JSR bij de JCP

Wat vind je van dit artikel?

Geef je mening in het Geachte Redactie-forum.

Door Olaf van Miltenburg

Nieuwscoördinator

05-11-2021 • 12:18

61 Linkedin

Reacties (61)

Wijzig sortering
Even afgezien van de vele, VELE legacy applicaties die er onderhouden worden. Is Java eigenlijk niet zwaar achterhaald tegenwoordig?

Bv. Ik verbaas me er ook nog steeds over dat JetBrains applicaties ook nog Java zijn...

[Reactie gewijzigd door Nimja op 5 november 2021 12:24]

Als (o.a.) Java developer ben ik benieuwd naar wat het achterhaald zou moeten maken?
De oorspronkelijke voordelen van Java (draaiend in VM, cross-platform, strict) zijn ingehaald door basic web technologies voor frontend applicaties.

En voor server-side lijken de meeste bedrijven meer naar Python of C te leunen.

https://madnight.github.io/githut/#/pull_requests/2021/3 - Java is zeker wel actief, maar al een hele tijd ingehaald.

Ik ben gewoon (als programmeur) benieuwt of Java nog voordelen heeft over de competitie?
Als voormalig C programmeur kan ik je vertellen dat server-side code zelden of nooit in C geschreven wordt. Zelfs niet in de 90s.

De server zelf soms wel, maar de applicatielogica voor je web applicatie of je REST interface in C schrijven heb ik nog nooit gezien.
Die waren er wel degelijk en het waren ook niet de kleinste sites. CGI was ooit echt niet ongebruikelijk en werd niet enkel gebruikt voor Perl en bash.

n=1 (minstens)
De reactie is een reactie op de opmerking dat bedrijven meer naar pyhton en c toegaan. Hoewel ik inderdaad in bepaalde situaties meer python zie komen is mijn gevoel dat die of "nieuwe markten " bedienen ala alle fancy data science dingetjes of dat python markt aandeel van php afsnoept en niet echt van Java.

C daarentegen zie je tegenwoordig niemand meer direct gebruiken (wel als module in python). Ik heb laatst nog een C++ rest api bekeken maar ook daar krijg ik het gevoel dat je vooral richting python, java, .net, php en tegenwoordig nodejs wordt gestuurd
Genoeg mensen/projecten die nog gewoon C "direct" gebruiken hoor, moet je natuurlijk wel buiten je eigen kringen kijken. Volgens mij kun je op GitHub filteren op activiteit per taal, misschien voor de grap eens naar kijken. ;]
"Ingehaald" is een groot woord. Java wordt ook op het web veel gebruikt, echter zie je dat niet als consument, omdat het serversided draait. Zo draait Tweakers bijvoorbeeld ook Java. (Voor de duidelijkheid, ik heb het niet over JavaScript.)
En voor server-side lijken de meeste bedrijven meer naar Python of C te leunen.

https://madnight.github.io/githut/#/pull_requests/2021/3 - Java is zeker wel actief, maar al een hele tijd ingehaald.
De link die je er onder plaatste ondersteunt die bewering niet. Sterker nog, in die Top-10 heeft Java veruit de sterkste groei.

Je bewering hangt ook sterk af met wat jij onder "server-side" verstaat. Heb je het over Linux command line tools die op een Linux server draaien, dan heb je gelijk. Daar wordt en werd Java al weinig gebruikt, simpelweg omdat Java ook niet direct bedoeld is om zo gebruikt te worden.
Heb je het echter over "server-side" enterprise applicaties/services, dan is het een compleet ander verhaal. Daar wordt Java er veel gebruikt.

[Reactie gewijzigd door Cyb op 5 november 2021 14:56]

Tweakers is vooral PHP staat me bij toch?
Ze gebruiken (of gebruikten) zover ik weet o.a. PHP en Java. Weet niet hoe de verhouding verdeeld is, maar ze vullen elkaar dacht ik aan i.p.v. dat de één een vervanger is van de ander of iets dergelijks.
(Ik had ik mijn post staan "draait op Java", wat net iets anders is dan wat ik bedoel. Heb het nu aangepast naar "draait Java".)
Java wordt verschrikkelijk veel gebruikt server-side (en is denk ik naast Go en Node) een van de grootste programmeertalen daarvoor.

Ik ben heel benieuwd naar je bron voo Python en C ...
Language statistics op Github en andere sites :)
Java wordt ontzettend veel gebruikt als backend technologie bij grote bedrijven omdat het zo robuust is etc. Daarnaast bestaat het al vrij lang dus veel programmeurs met ervaring, veel resources etc. Bewezen technolgie heet dat (net zoals Python)

Voor wat betreft je grafiekje, verreweg de meeste bedrijven zetten hun spullen niet in Github dus zeggen die cijfers niet zoveel.
Ik ben gewoon (als programmeur) benieuwt of Java nog voordelen heeft over de competitie?
De voordelen, de reden om voor Java te kiezen (of een andere JVM gebaseerde taal) zijn vooral zaken die niet direct gerelateerd zijn aan het 'programmeren'. Namelijk stabiliteit van de JVM, beschikbaarheid van programmeurs, beschikbare kennis en ervaring, rijk ecosysteem van opensource oplossingen en libraries.

Ook voor bijvoorbeeld cloud native applicaties (met reduced memory footprint) hoef je niet meer uit te wijken naar andere talen. Er zijn frameworks en compilers beschikbaar zodat je dat ook prima in Java kunt doen.

Edit: Dat neemt niet weg dat als ik C# Kotlin of Dart heb gebruikt, dat daarna Java soms wat minder elegant in gebruik aanvoelt. Nullsafe operator, I'm looking at you. :Y)

[Reactie gewijzigd door SnowmanXL op 5 november 2021 13:36]

Serverside bij grote bedrijven zoals banken en verzekeraars is allemaal Java. C wordt/werd bijna niet gebruikt. Bij grote bedrijven is Java sinds de mid negentiger jaren de opvolger van Cobol.
De meeste mensen weten niet dat java ook serverside kan draaien. Ze denken terug aan de tijd dat je Java Runtime Environment moest installeren op al je computers met alle ellende van dien (juiste versie, nul security, update en onderhoud was problematisch). Toen dat niet meer kon en iedereen juichte, had men het idee dat java achterhaald was. Soortgelijke situatie als Macromedia Adobe Flash.

Dat was ten minste ook hoe ik er destijds over dacht. Toen ik nog meer aan de desktop kant werkte...

Kort door bocht: mensen denken bij Java eerder aan de Java Runtime Environment, niet de programmeertaal.

[Reactie gewijzigd door dycell op 5 november 2021 14:13]

Java heeft voor mij vooral een slechte naam omdat de populaire applicaties die er gebruik van maakten (kan me op het moment enkel de azureus Bittorrent cliënt herinneren) enorm veel geheugen slurpen.

Daarnaast tijdens mijn schooldagen vond ik GUI werk erin (swing) verschrikkelijk om mee te werken t.o.v. C# wat een stuk makkelijker was. Als je er geen GUI mee probeert te maken werkte het echter prima. En het geheugengebruik was vooral aan de applicaties zelf te wijden ipv Java als geheel.
Het is inderdaad jammer dat iemand ooit heeft verzonnen dat je er GUI's mee kan maken :p
Ik denk niet dat ik overdrijf als ik zeg dat waarschijnlijk de helft van alle productie services in de wereld op Java draaien. Zaken als MS Azure, AWS en GCP draaien het overgrote deel van infrastructuur processen op Java bijvoorbeeld.
MS Azure lijkt ook vooral heel veel node en C#.
Het feit dat Microsoft hun eigen Java runtime maakt spreekt toch voor het feit dat Java een niet te verwaarlozen aandeel op Azure heeft.

Azure wordt veel gebruikt door bedrijven die naar de cloud willen migreren en voor hun andere IT diensten al Microsoft gebruiken (Sharepoint, Outlook, Office 365).

Veel van die bedrijven hun in-house software is nog steeds Java.
Dat is wat anders dan wat @MMaI aangeeft. Dat er workloads van klanten op Azure in Java runtimes draaien is niet gek, het wordt immers aangeboden door MSFT. Maar ik ga er inderdaad vanuit dat als er een Java-achtige taal wordt gebruikt in het platform zelf, dat dat .Net is en niet Java.
Zou je dit kunnen onderbouwen met objectieve bronnen? Hetgeen je schetst komt niet overeen met mijn ervaring en ik kan ook geen duidelijke bronnen vinden die jouw stellingen onderschrijven.
Welk gedeelte? Bijvoorbeeld https://pypl.github.io/PYPL.html https://insights.stackove...s-top-paying-technologies laten zien dat Java bij beiden aan de top zitten. Over Java bij de grote cloud partijen, check de open source cloud modules maar eens, vergelijkbare of dezelfde technologie wordt bij alle cloud boeren gebruikt. Kijk maar eens naar de open source declaraties van alle cloud partijen welke frameworks en linkers ze gebruiken (bvb https://storage.googleapi...s-bom/snapshot/index.html)
Veel meer dan de helft. Alle grote bedrijven draaien Java programmas in de cloud op gevirtualiseerde Linux. Apache, Tomcat, Dockers, JDK is echt de standaard technogy stack.
Ik vermoed het ook. Veel mensen op tech sites lijken geen idee te hebben over hoe groot de enterprise en outsourcing technologie sectoren zijn en hoe dominant Java daar is.
Nee, wordt ontzettend veel gebruikt op server omgevingen en ook voor ontwikkeling van nieuwe services. Sowieso 'de' JVM (zijn meerdere implementaties) en ook voor andere talen als Scala en Kotlin.
Java ontwikkeling client-side is wel doder-dan-dood. In de browser is het gelukkig al heel lang geen optie meer (Applets waren verschrikkelijk IMO) en voor rich-client applicaties wordt het ook niet echt gebruikt. Iets wat ik toch zelf altijd wel leuk vond, lekker met Swing klooien, maar dat was jaren geleden tijdens mijn opleiding :)

[Reactie gewijzigd door Kwistnix op 5 november 2021 12:29]

Nou, je zou er van verschieten dat bedrijven toch nog steeds GUI applicaties met Java bouwen.
3 jaar geleden toch nog een project gedaan met JavaFX. Zag er eigenlijk nog heel netjes uit, niet zoals de typische Java applicaties.

Maar op backend inderdaad zeer veel Java. Project na dat met JavaFX was in Scala. Toch wel leuker programmeren dan in Java, veel eenvoudiger. Wel soms problemen als we Java bibliotheken gebruikten met alle omzettingen van Scala types naar Java types en omgekeerd.

[Reactie gewijzigd door Chris_147 op 5 november 2021 12:38]

Oh het gebeurd zeker nog. Ik ben ze zelf ook nog wel in 't wild tegen gekomen, maar het is toch best uitzonderlijk. Althans, n=1 natuurlijk, maar de afgelopen pakweg 5 jaar kan ik mij niet herinneren een aanvraag te hebben gezien waar Java / Swing / JavaFX ervaring gevraagd wordt (als ZZP-er).
Bij mijn vorige werkgever was Apache Wicket de standaard voor front-end ontwikkeling. Nu is dat niet hetzelfde als fat-client Swing, maar je bent wel met Java bezig. Nu was dit 6 jaar geleden en vandaag de dag lijkt iedereen met de gekste JS frameworks bezig te zijn. Alleen beginnen bedrijven daar volgens mij een beetje gek van te worden. Ik kreeg pas geleden te horen dat onze devs 70% van hun tijd zijn met refactoren door de vele updates en nieuwe hypes op JS gebied.
Wicket is ook echt heel iets anders en geen client-side framework. Ik heb daar ook best veel mee gedaan tot een jaar of 3 geleden. En inderdaad, web frameworks die puur gericht zijn op server-side rendering, zoals Wicket, zijn ook hard terrein aan het verliezen.
Tsja. Wicket. Wat moeten we ervan zeggen. Het is weer een typisch manier geweest om backend devs een frontend applicatie te laten maken. Beetje zoals spring webMVC, maar dan nog ff wat erger. Het idee is vet en zeker voor die tijd ook prima inzetbaar, maar tegenwoordig is het zo ontzettend veel boilerplate die je extra moet schrijven dat onderhoud bijna niet meer te doen is. Zeker niet in grote applicaties met meerdere klanten.
Vergeet je weer de beste JVM taal! Clojure :+
TIOBE Index: counting hits of the most popular search engines.
PYPL Index: How often language tutorials are searched on Google.
Dit soort statistiek is onbetrouwbaar. Bijvoorbeeld de Matlab ontwikkel omgeving, heeft alle libraries ingebouwd, 100en voorbeelden bij functies en een uitgebreide help die mee geinstalleerd is, en 1 grote website met forum, informatie en code van anderen.
Oftewel als je Python en Matlab met behulp van dit soort index op populariteit vergelijkt krijg je wel een heel scheef beeld.
Het zelfde geld voor "java', deze term is niet unique maar ook voor koffie, eiland etc....
Het is nou ook weer niet zo onnauwkeurig als je nu schetst.

Gok dat er niet zoveel mensen zoeken op "java tutorial" als ze een bakkie pleur willen zetten.
Of "python tutorial" wanneer ze een nieuw langwerpig huisdier hebben :+
Ook niet heel erg betrouwbaar als je in je gedachte houd dat Java nogal enterprise gericht is waar minder de nadruk ligt op dare 2 share. Al die enterprise consultants (even over 1 kam scheren) lijken meer focus te hebben op het inrichten v/d interne organisatie kennis die ze daarna commercieel kunnen verkopen. Dat zie je niet alleen terug aan de programmeer kant van de enterprise. Begin maar eens met iets als een enterprise implementatie van vmware. Als je er eenmaal diep in zit merk je dat de meeste blogs zijn geschreven door consultants die je wel iets vertellen over het maken van het beginnetje maar laten je al snel tot de conclusie komen dat je ofwel betaalde cursussen moet volgen ofwel dure consultants moet inhuren.

Echt compleet andere markt t.o.v. iets als python
Misschien denk je aan applets? Maar nee, ontzettend veel applicaties (veelal backend services) draaien tegenwoordig op Java.

Ook Android apps worden vaak geschreven in Java, al worden ze niet uitgevoerd in een JVM. De code wordt gecompileerd naar bytecode en uitgevoerd door Android Runtime

[Reactie gewijzigd door jrswgtr op 5 november 2021 13:39]

Ook Android apps worden geschreven in Java, al worden ze niet uitgevoerd in een JVM. De code wordt gecompileerd naar bytecode en uitgevoerd door Android Runtime
Grotendeels wel ja, maar ook C++, Flutter (Dart), React Native (Js), Xamarin (C#), en nu ook Kotlin wat naar mijn mening eigenlijk de vervanger van Java is. Android begon inderdaad met vooral Java, maar ondertussen is er dus wel meer ondersteund :)
Van uit mijn rol als testautomatiseerder heb ik een aantal jaren java gebruikt en momenteel gebruik ik C#.
Enige reden voor de overstap was dat het bedrijf waar toen op overstapte C# vroeg.

Naast de reguliere specflow / cucumber code komt dit werk onder de motorkap vooral neer op het maken van functionaliteit die op verschillende gewenste momenten dependency's kan opstarten, bijhouden, en injecteren zodat je bijvoorbeeld meerdere testen simultaan kan draaien en/of meerdere browsers tegelijk kan aansturen terwijl je ondertussen nog bij kan houden wie/wat/waar draait.

Hoe ik dit oploste in java en hoe ik dit nu doe zou je bijna rechtstreeks kunnen kopieren/plakken op wat syntax en dependency geneuzel na. Ook op het gebied van performance heb ik geen noemenswaardige verschillen gezien voor deze toepassing en zit de winst vooral in het goed opzetten van je functies en niet in de taal.

Wat memory/cpu usage betreft kan ik geen uitspraak doen. Java stond hier doorgaans niet echt positief om bekend maar of dit (nog) waar is weet ik niet. Voor de applicaties waaraan ik werkte was dit in ieder geval nooit ook maar een enig issue en daarom heb ik mij nooit met dat punt bezig gehouden.

Als van uit mijn eigen ervaringen en die van de bedrijven waar ik heb gewerkt spreek dan zou ik niet weten waarom een Java beter of slechter zou zijn dan een C# of een Python.
De punten die vooral doorslaggevend zijn als we nieuwe ontwikkelaars dan wel testautomatiseerders aannemen bij deze bedrijven lagen altijd in vragen als "waar scholen we mensen sneller naar om?", "welke taal sprak de eerste ontwikkelaar/gebruiken we nu", en/of "voor welke taal zijn het makkelijkst dan wel goedkoopst coders te krijgen".

Mijn eigen voorkeur is C# simpelweg omdat ik Java een tijdje niet meer heb gebruikt en Python nog nooit heb gebruikt. In de test wereld zelf is er volgens mij niet echt een duidelijke voorkeur en gok ik dat het zo ongeveer 40/40 ligt voor Java/C# en dan nog 20% overige

*edit*
Schiet mij nog wel te binnen dat de laatste jaren docker en kubernetes om de hoek zijn komen kijken en dat er in de hoek van buildpipelines en cicd wel veel is veranderd. Daar had ik collega's voor die dit stukje oppakten dus daar heb ik ook geen idee of de taal er echt toe doet maar die indruk heb ik niet

[Reactie gewijzigd door Roharas op 5 november 2021 13:56]

Ik heb geen ervaring met jou stukje maar wel met CI/CD pipelines en kan niet anders dan het met je eens zijn. Ik adviseer meerdere teams en hoe graag ik ook 1 taal zou willen als standaard zie ik dat ik snel Java adviseert voor een java team, python voor een python team en .net voor een .net team :p

Wat ik wel zie is dat de frameworkjes daaromheen gewoon nog in fancy bash en of powershell worden gemaakt (veelal in samenwerking met een ICT medewerker). Hiermee doel ik op bijv. een bash script wat ergens input data klaar zet, een pip env bouwt en python aftrapt met wat commandline argumenten
Java "legacy" noemen, wordt erg vaak gedaan door C# developers.
C# developers en Java developers zijn vaak twee sterk verdeelde groepen in de enterprise markt, waarin de ene groep de andere groep bashed. Zo kunnen Java developers een hekel hebben aan Microsoft als bedrijf, wat hun mening over C# kan beinvloeden. Aan de andere kant kunnen C# developers een hekel hebben aan Java, omdat ondanks dat de taal op zich zelf minder features heeft dan C# het erg populair is en lijkt te blijven.

Veel mensen denken aan een programmeertaal, als ze "Java" horen. Maar "Java" is veel meer dan dat, het is een groot platform waar vele open source frameworks en libraries voor geschreven worden, het is een platform waar andere programeertalen (bijv. Kotlin, Scala en Clojure) op draaien, het is een platform waar diverse partijen in kunnen investeren, het is een platform waar een hele grote actieve community achter zit.
Dit neemt niet weg dat dit ook in bepaalde mate kan gelden voor de C# wereld, maar wat ik probeer aan te geven is dat "Java" meer is dan alleen een programmeertaal.
Mooie reactie, dank je :)
Is Java eigenlijk niet zwaar achterhaald tegenwoordig?
De taal is niet belangrijk.

Je ontwikkelt software voor een proces, perfecte software die het fout doet is waardeloos, 'slechte' software die het juiste doet niet.
Dus zoek je specialisten die kunnen programmeren en het domein snappen. En veel van die specialisten zijn 10-20+ jaar geleden met Java begonnen.
Het gaat hier om Java het platform, niet Java de taal. De JVM wordt nog altijd veel gebruikt, onder meer voor Kotlin van JetBrains.
Een programmeer ecosysteem is pas achterhaald als het niet meer doorontwikkeld zou worden.

Hoewel veel mensen een terechte afkeer van veel Oracle dingen hebben kan je ze wel nageven dat ze de ontwikkeling van Java een behoorlijke boost hebben gegeven. De laatste Java releases zijn vrij consistent sneller, veiliger en minder geheugen vereisend geworden (zeker met het oog op cloud hosting behoorlijk belangrijk)

Daarnaast heb je nog een greep uit duizenden open source projecten die op Java gebouwd zijn en daardoor de JVM een interessante optie maken.

Zoveel alternatieven zijn er ook weer niet. Eigenlijk is C# de enige "Java like" qua taal en ecosysteem. Veel oudere talen zijn meer low-level en maken het lastig veilige, stabiele code te schrijven; veel nieuwere talen missen het ecosysteem of zijn gewoon zo 'anders' dat de adoptie buiten een selecte groep enthousiastelingen niet echt op gang komt. Misschien Kotlin een beetje, maar dat is ook op Java gebouwd ;)
Voor wat? Voor front-end development in de browser wellicht. Maar op het backend is er heel veel java te vinden en wordt er nog steeds java bijgebouwd. De belangrijkste redenen zijn: ervaring van teams, stabiliteit van het platform en toekomstbestendigheid ervan (MS, Amazon, IBM etc. bieden het allemaal aan, grote kans dat Java er over 10 jaar nog steeds werkt. De kans met andere platformen is een heel stuk kleiner).
Een goede software-architectuur is ook vele malen belangrijk dan altijd maar de nieuwste, hipste technologie te gebruiken...

Ik vind Java op de backend (zeker in combinatie met "clean architecture") echt zalig om mee te werken EN om te onderhouden. Kan ook perfect in andere, hippere talen (zoals PHP, Python, JavaScript/NodeJS) maar ik werk voor de backend toch liever met een taal met "static typing" in plaats van "dynamic typing".

En ja, je kan ook altijd Kotlin gaan gebruiken; daar zitten veel verbeteringen in t.o.v. "standaard Java" terwijl dat gewoon achterliggend naar Java bytecode compiled. Je kan nog altijd de hipster uithangen als je dat echt wil met Java.

Maar in de frontend wil Java inderdaad niks tot weinig meer zeggen vandaag de dag.
De taal - ja best wel. Gelukkig heb je een riante linie aan modernere keuzes op dat gebied.

De runtime daarentegen is een sterk doorontwikkeld zelf-optimaliserend beest waar moeilijk mee te concurreren is. En de standaard runtime is niet eens alles wat er is - we zijn nu in het tijdperk beland van GraalVM en bijbehorende oplossingen zoals Quarkus, daarmee is het probleem van resource verbruik van de baan en wordt het redelijk kinderlijk eenvoudig om goedkope microservices op grote schaal uit te rollen.

Nee redelijk tijdloos platform is het. Maar toch zou ik games in C# of Typescript bouwen :)
Is Java eigenlijk niet zwaar achterhaald tegenwoordig?
Absoluut niet.

Java is nog altijd één van de meest gebruikte programmeertalen en runtime platformen, en is nog altijd vol in ontwikkeling. In september is Java 17 uitgekomen, met een aantal nieuwe language features en verbeteringen.

Gigantisch veel server side software is en wordt geschreven in Java, en er is ook een gigantisch ecosysteem aan open source libraries voor Java.

De reden waarom Microsoft hieraan wil meedoen is omdat ze willen dat je je applicaties op Azure gaat draaien, Microsoft's cloud.
Bv. Ik verbaas me er ook nog steeds over dat JetBrains applicaties ook nog Java zijn...
De JetBrains applicaties zijn gedeeltelijk / grotendeels geschreven in Kotlin, een nieuwe programmeertaal die afkomstig is van JetBrains zelf. Kotlin compileert naar bytecode voor de JVM, dus het draait wel op de Java runtime.

[Reactie gewijzigd door jj71 op 5 november 2021 15:25]

Uiteraard zijn de jetbrains applicaties java. De grap van Java is dat het op ieder platform draait en je een hoop voordelen haalt uit het feit dat het eigenlijk gevirtualiseerd draait. De grap van de jetbrains applicaties is juist dat de basis IDE (IntelliJ IDEA) juist ontwikkelt is voor Java development en dat het dus voordelen bied om dat ook in Java te schrijven. Zo heb je toch een JVM nodig om de gemaakte applicaties te draaien. Laat je die nou toevallig ook nodig hebben voor de IDE.

Jetbrains levert ook standaard de JBR mee (jetbrains runtime environment) waar applicaties dus in kunnen draaien.
Zie de stack overflow enquête 2021: Java staat op de 5e plek als meest gebruikte taal. De talen daarboven (sql,html,etc) zijn zelfs wat dubieus als taal, omdat die meer ter ondersteuning zijn. Java lijkt dan de hoogste "gecompileerde"* taal, waarmee hele applicaties worden ontwikkeld.
Java wordt o.a. veel gebruikt voor mobile apps.
*) compileren is half waar ivm VM en JIT
Ik meen me te herinneren dat Microsoft in een grijs verleden zijn eigen Java runtime had? Die werd op een gegeven moment gedumpt, maar het fijne daarvan weet ik niet meer....
Dat klopt. Heb er zelf nog mee gewerkt iets meer dan 20 jaar geleden, samen met Visual J++

De JVM van Microsoft was toen de snelste op het gebied van client applicaties en week op sommige punten (bewust) af van de Java spec.
Hier is door Sun nog een rechtzaak over gevoerd en Microsoft is toen gestopt met Java om even later aan .NET te beginnen.

Inmiddels zijn alle partijen een beetje ouder en wijzer geworden, Java heeft het JCP en Microsoft is vooral bezig om hun cloud services aan de man te brengen, dus wellicht gaat het deze keer beter verlopen.
Nou ja, alle partijen. Sun is failliet en om Oracle nou "wijs" te noemen... Microsoft lijkt in ieder geval wel wat wijzer geworden te zijn. Tenzij dit een poging tot ouderwets Embrace, Extend, Extinguish is :)
Die moesten ze dumpen na een rechtszaak, omdat ze de Java standaard niet volledig volgden.
Waardoor javacode begon op te duiken die enkel werkte op Microsoft Java(aka Embrace, Extend, Extinguish).
Ja, lang geleden, in de tijd van Sun Microsystems.

Microsoft maakte zijn eigen versie van Java voor Windows, en daarbij hielden ze zich niet aan de voorwaarden die Sun stelde. De Microsoft-versie van Java was niet 100% compatible met de originele versie van Sun. Dat vond Sun niet leuk, er kwam een rechtszaak, Microsoft verloor en toen hebben ze hun eigen Java opgegeven.

Daarna kwam Microsoft met C# en .NET, wat in eerste instantie heel veel leek op Java en de JVM met andere naampjes. Inmiddels zijn C# / .NET en Java / JVM in verschillende richtingen doorontwikkeld, maar beiden zijn nog altijd gebaseerd op hetzelfde idee: een taal met automatisch memory management (garbage collection) die naar bytecode wordt vertaald voor een virtual machine (de JVM = Java Virtual Machine of .NET CLR = Common Language Runtime).

[Reactie gewijzigd door jj71 op 5 november 2021 15:31]

Kleine correctie op het artikel: Apache is niet weggelopen omdat ze Oracle niet aardig vonden, maar omdat Sun (en daarna Oracle) Apache geen Technology Compatibility Kit (TCK) wilden geven zonder Field of Use restricties. Sun was namelijk met Java ME (Mobile Edition) druk bezig om geld te verdienen aan Nokia telefoons en blu-ray spelers.Maar Apache (en o.a. veel ontwikkelaars van Google) probeerden Apache Harmony te ontwikkelen en te certificeren als een officiële, compatibele Java omgeving.

Door die TCK te onthouden dankzij die Field of Use restrictie van Apache (en daarmee Google) is Apache Harmony nooit afgerond en in 2011 op de zolder opgeborgen in een stoffige doos.

Daardoor moest Google voor Android zelf gaan aanklooien met een eigen implementatie die niet Java was maar toch stiekem wel, en dat leverde Oracle weer mogelijkheden om een jarenlange rechtszaak te voeren over de al dan niet gekopieerde Java runtime APIs.
Java is inderdaad nog heel groot.
Kijk bv op deze sites:
PYPL: https://pypl.github.io/PYPL.html
TIBO: https://www.tiobe.com/tiobe-index/
.
Dat MS zich hier mee bezig gaat houden moet argwanend bekeken worden,
vanwege hun grote belang in back-end taal #2: C# / .NET.
Maar tov Oracle zal het altijd een gigantische verbetering zijn. :+

[Reactie gewijzigd door Geekomatic op 5 november 2021 17:14]

Microsoft van nu is niet meer de Microsoft van vroeger. Ze hebben in elk geval één zeer belangrijk bedrijf in de Java space overgenomen en die enorm veel speelruimte gegeven om Java verder te brengen. Dit bedrijf was o.a. bezig met JVM optimalisaties, monitoring en analyse software te ontwikkelen voor Java. Daarnaast waren ze bezig met het bouwen en publiceren van een eigen, community driven OpenJDK implementatie: AdoptOpenJDK (o.a. samen met IBM). Dit is nu verhuisd naar de Eclipse Foundation onder de noemer Adoptium, en zij publiceren de Temurin JVM (sinds 17).

Microsoft heeft een aantal high-profile Java evangelisten van Oracle overgenomen (o.a. een vriend van mij) en ze doen enorm veel goede zaken voor de open source community in het algemeen en het Java ecosysteem in het bijzonder (bijv. VS Code, github). Kennelijk is dit al sinds 2014 in de maak _/-\o_

Microsoft heeft heel veel te verliezen als ze zich gaan gedragen zoals ze deden in de pre-Azure tijd. De reden waarom ze zoveel investeren in Java is omdat ze zelf 500,000 (volgens eigen zeggen) JVMs in productie hebben draaien, en omdat ze Azure aan de man willen brengen.

Daarnaast is het Java Community Process (JCP) een feestje van een aantal grote bedrijven (o.a. SAP, IBM, Azul, Oracle, Fujitsu, Siemens, Google, diverse community Java User Groups en individuen) waarvan de regels gewoon vastgelegd zijn. Zelfs al zouden ze gekke dingen willen doen, via de JCP gaat dat in elk geval niet lukken. Juist het feit dat ze lid worden van de JCP is een teken dat ze het goed willen doen.

Microsoft publiceert ook z'n eigen implementatie van de JVM, en ik kan me voorstellen dat ze daar aan geklust hebben zodat die beter in de monitoring van Azure draait. En bijv. beter op ARM of whatever. Maar ze certificeren die JVM nog steeds en zorgen ervoor dat ze niet buiten de specificaties om gaan want dan zullen genoeg mensen naar bijv. AWS of GCP verhuizen. En voor lock-in gebruiken ze liever Azure specifieke functies dan proberen een programmeertaal om te katten.

Voor Azure maakt het niets uit of je Java, C#, JavaScript, Swift, Rust, Go, Python, Ruby of PHP gebruikt. Heck, ze draaien zelfs meer Linux nodes dan Windows nodes in Azure. En ze zijn lid van de Linux Foundation.
Microsoft gaat Java kapen - en met een tegenstander als Oracle heeft dat grote kans op slagen.

Op dit item kan niet meer gereageerd worden.


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True