The Java Story | The Official Documentary
CultRepodutchenpublicupdatedRead in about 4 minutes instead of watching 74 minutes.
Van Oak naar Java
- Java ontstond rond 1991 bij Sun Microsystems als Oak, een project van onder anderen James Gosling om software voor uiteenlopende apparaten eenvoudiger en draagbaarder te maken.
- Na het mislukken van een project voor interactieve televisie werd Oak bijna opgeheven, maar het team richtte de technologie opnieuw op de snelgroeiende internetwereld.
- De komst van de Mosaic-browser inspireerde het team om interactieve programma’s in webpagina’s mogelijk te maken.
Doorbraak op het web
- De HotJava-browser demonstreerde dat kleine Java-programma’s lokaal en platformonafhankelijk in webpagina’s konden draaien.
- Integratie met Netscape was cruciaal omdat Java daarmee onmiddellijk een groot publiek en een bruikbaar distributieplatform kreeg.
- De publiciteit en lancering in 1995 veroorzaakten een onverwacht grote vraag die Suns mensen en infrastructuur overweldigde.
Schrijf eenmaal, draai overal
- Java doorbrak de toenmalige koppeling tussen software en hardware door gecompileerde programma’s via een virtuele machine op verschillende systemen te laten draaien.
- De taal combineerde een vertrouwde C-achtige syntaxis met vernieuwende runtimefuncties zoals garbage collection, threads, reflectie en dynamisch laden.
- Java was bewust ontworpen als praktisch gereedschap waarmee gewone programmeurs productiever konden werken en minder complexiteit dan in C++ ervoeren.
De server en het bedrijfsleven
- Java vond zijn belangrijkste groeimarkt onverwacht aan de serverzijde, waar bedrijven behoefte hadden aan betrouwbare, netwerkgerichte en multithreaded software.
- Servlets vormden een gestandaardiseerde brug tussen webverzoeken, servers, databases en omvangrijke bedrijfssystemen.
- Java-systemen bleken stabiel genoeg om langdurig te blijven draaien, wat vooral bij banken een groot verschil maakte.
Conflict met Microsoft
- Sun gaf Microsoft een licentie zodat Java op Windows beschikbaar zou zijn, maar vreesde tegelijk dat Microsoft de platformonafhankelijkheid zou ondermijnen.
- Microsoft bracht een incompatibele Windows-variant uit met gewijzigde API’s, waardoor ontwikkelaars afhankelijk konden worden van Microsofts uitvoering van Java.
- Sun begon een rechtszaak om compatibiliteit te beschermen; de uiteindelijke overeenkomst leverde Sun ongeveer 1,95 miljard dollar op en voorkwam dat Microsoft het platform overnam.
Standaarden en open source
- De Java Community Process werd opgericht om bedrijven, instellingen, gebruikersgroepen en andere belanghebbenden bij de ontwikkeling van het platform te betrekken.
- Binnen Sun botsten twee ideeën over openheid: interoperabele standaarden enerzijds en vrij aanpasbare broncode anderzijds, met angst voor versnippering van Java.
- Het openstellen van Tomcat via Apache bewees dat samenwerking met de opensourcegemeenschap innovatie en vertrouwen kon stimuleren zonder het ecosysteem uiteen te laten vallen.
- OpenJDK maakte brede samenwerking aan één vrije implementatie mogelijk en hielp Java waarschijnlijk de neergang van Sun te overleven.
J2EE, Spring en Hibernate
- J2EE standaardiseerde bedrijfssoftware, maar werd door zijn omvang, XML-configuratie en ingewikkelde programmeermodel voor veel projecten te zwaar en pijnlijk.
- Spring ontstond als praktisch en later open source geworden alternatief voor de dominante J2EE-aanpak.
- Hibernate groeide vanuit frustratie met entity beans uit tot een populaire oplossing voor gegevensopslag, mede dankzij snelle feedback en bijdragen uit de gemeenschap.
- De concurrentie tussen opensourceframeworks en officiële specificaties verbeterde uiteindelijk het gehele Java-ecosysteem.
Stagnatie en overname door Oracle
- Na Java 5 volgde een lange periode van trage ontwikkeling, terwijl Sun financieel instortte en concurrerende talen zoals C# sneller vernieuwden.
- Oracles overname van Sun in 2010 riep grote zorgen op, maar OpenJDK bood zekerheid dat Java als open platform kon voortbestaan.
- Oracle investeerde in een stabiele technische leiding en een uitvoerbaar ontwikkelplan, wat achteraf gunstig bleek voor Java.
- In de langdurige zaak tussen Oracle en Google oordeelde het Amerikaanse Hooggerechtshof uiteindelijk dat Googles herimplementatie van Java-API’s in Android onder fair use viel.
Java 8 en snellere releases
- Java 8 werd een beslissend keerpunt door lambda-expressies en Streams toe te voegen zonder de bestaande compatibiliteitsbelofte te breken.
- De nieuwe functionele mogelijkheden maakten code compacter en expressiever en zorgden voor een van Java’s snelst geadopteerde versies.
- Na Java 9 stapte het platform over op een releasecyclus van zes maanden, zodat voltooide functies sneller konden verschijnen en vertraging minder zwaar woog.
- De kortere cyclus verminderde de organisatorische last van grote releases en maakte zowel kortetermijnwerk als langlopend onderzoek beter planbaar.
Modernisering en beheer
- Compatibiliteit, zorgvuldige langetermijnplanning en empathie met werkende programmeurs blijven centrale waarden bij het beheer van Java.
- Java EE werd naar de Eclipse Foundation verplaatst om een leveranciersneutraal speelveld met bredere deelname en snellere ontwikkeling te creëren.
- Project Loom introduceerde virtuele threads, waardoor zeer schaalbare toepassingen weer met eenvoudiger, traditioneel gestructureerde code kunnen worden gebouwd.
Wereldwijde impact en toekomst
- Java’s kracht ligt niet alleen in de taal en JVM, maar ook in miljoenen ontwikkelaars, honderden gebruikersgroepen en een omvangrijk ecosysteem van bibliotheken, hulpmiddelen en frameworks.
- Java draait grotendeels onzichtbaar achter financiële transacties, ziekenhuizen, webdiensten, miljarden Android-apparaten en duizenden grootschalige Netflix-microservices.
- Project Valhalla wil primitieve en referentietypen dichter bij elkaar brengen, terwijl Panama de samenwerking met native code eenvoudiger en sneller maakt.
- Deze projecten en Babylon moeten Java efficiënter maken voor onder meer kunstmatige intelligentie, terwijl de taal voorzichtig maar voortdurend blijft evolueren.
- De documentaire presenteert Java als een inmiddels fundamentele technologie die virtuele machines, platformonafhankelijkheid en vernieuwende programmeerideeën naar de mainstream bracht.