Open YouTube

The Java Story | The Official Documentary

CultRepodutchenpublicupdated

Read in about 4 minutes instead of watching 74 minutes.

Van Oak naar Java

  1. 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.
  2. Na het mislukken van een project voor interactieve televisie werd Oak bijna opgeheven, maar het team richtte de technologie opnieuw op de snelgroeiende internetwereld.
  3. De komst van de Mosaic-browser inspireerde het team om interactieve programma’s in webpagina’s mogelijk te maken.

Doorbraak op het web

  1. De HotJava-browser demonstreerde dat kleine Java-programma’s lokaal en platformonafhankelijk in webpagina’s konden draaien.
  2. Integratie met Netscape was cruciaal omdat Java daarmee onmiddellijk een groot publiek en een bruikbaar distributieplatform kreeg.
  3. De publiciteit en lancering in 1995 veroorzaakten een onverwacht grote vraag die Suns mensen en infrastructuur overweldigde.

Schrijf eenmaal, draai overal

  1. Java doorbrak de toenmalige koppeling tussen software en hardware door gecompileerde programma’s via een virtuele machine op verschillende systemen te laten draaien.
  2. De taal combineerde een vertrouwde C-achtige syntaxis met vernieuwende runtimefuncties zoals garbage collection, threads, reflectie en dynamisch laden.
  3. 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

  1. Java vond zijn belangrijkste groeimarkt onverwacht aan de serverzijde, waar bedrijven behoefte hadden aan betrouwbare, netwerkgerichte en multithreaded software.
  2. Servlets vormden een gestandaardiseerde brug tussen webverzoeken, servers, databases en omvangrijke bedrijfssystemen.
  3. Java-systemen bleken stabiel genoeg om langdurig te blijven draaien, wat vooral bij banken een groot verschil maakte.

Conflict met Microsoft

  1. Sun gaf Microsoft een licentie zodat Java op Windows beschikbaar zou zijn, maar vreesde tegelijk dat Microsoft de platformonafhankelijkheid zou ondermijnen.
  2. Microsoft bracht een incompatibele Windows-variant uit met gewijzigde API’s, waardoor ontwikkelaars afhankelijk konden worden van Microsofts uitvoering van Java.
  3. 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

  1. De Java Community Process werd opgericht om bedrijven, instellingen, gebruikersgroepen en andere belanghebbenden bij de ontwikkeling van het platform te betrekken.
  2. Binnen Sun botsten twee ideeën over openheid: interoperabele standaarden enerzijds en vrij aanpasbare broncode anderzijds, met angst voor versnippering van Java.
  3. Het openstellen van Tomcat via Apache bewees dat samenwerking met de opensourcegemeenschap innovatie en vertrouwen kon stimuleren zonder het ecosysteem uiteen te laten vallen.
  4. OpenJDK maakte brede samenwerking aan één vrije implementatie mogelijk en hielp Java waarschijnlijk de neergang van Sun te overleven.

J2EE, Spring en Hibernate

  1. J2EE standaardiseerde bedrijfssoftware, maar werd door zijn omvang, XML-configuratie en ingewikkelde programmeermodel voor veel projecten te zwaar en pijnlijk.
  2. Spring ontstond als praktisch en later open source geworden alternatief voor de dominante J2EE-aanpak.
  3. Hibernate groeide vanuit frustratie met entity beans uit tot een populaire oplossing voor gegevensopslag, mede dankzij snelle feedback en bijdragen uit de gemeenschap.
  4. De concurrentie tussen opensourceframeworks en officiële specificaties verbeterde uiteindelijk het gehele Java-ecosysteem.

Stagnatie en overname door Oracle

  1. Na Java 5 volgde een lange periode van trage ontwikkeling, terwijl Sun financieel instortte en concurrerende talen zoals C# sneller vernieuwden.
  2. Oracles overname van Sun in 2010 riep grote zorgen op, maar OpenJDK bood zekerheid dat Java als open platform kon voortbestaan.
  3. Oracle investeerde in een stabiele technische leiding en een uitvoerbaar ontwikkelplan, wat achteraf gunstig bleek voor Java.
  4. 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

  1. Java 8 werd een beslissend keerpunt door lambda-expressies en Streams toe te voegen zonder de bestaande compatibiliteitsbelofte te breken.
  2. De nieuwe functionele mogelijkheden maakten code compacter en expressiever en zorgden voor een van Java’s snelst geadopteerde versies.
  3. Na Java 9 stapte het platform over op een releasecyclus van zes maanden, zodat voltooide functies sneller konden verschijnen en vertraging minder zwaar woog.
  4. De kortere cyclus verminderde de organisatorische last van grote releases en maakte zowel kortetermijnwerk als langlopend onderzoek beter planbaar.

Modernisering en beheer

  1. Compatibiliteit, zorgvuldige langetermijnplanning en empathie met werkende programmeurs blijven centrale waarden bij het beheer van Java.
  2. Java EE werd naar de Eclipse Foundation verplaatst om een leveranciersneutraal speelveld met bredere deelname en snellere ontwikkeling te creëren.
  3. Project Loom introduceerde virtuele threads, waardoor zeer schaalbare toepassingen weer met eenvoudiger, traditioneel gestructureerde code kunnen worden gebouwd.

Wereldwijde impact en toekomst

  1. 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.
  2. Java draait grotendeels onzichtbaar achter financiële transacties, ziekenhuizen, webdiensten, miljarden Android-apparaten en duizenden grootschalige Netflix-microservices.
  3. Project Valhalla wil primitieve en referentietypen dichter bij elkaar brengen, terwijl Panama de samenwerking met native code eenvoudiger en sneller maakt.
  4. Deze projecten en Babylon moeten Java efficiënter maken voor onder meer kunstmatige intelligentie, terwijl de taal voorzichtig maar voortdurend blijft evolueren.
  5. De documentaire presenteert Java als een inmiddels fundamentele technologie die virtuele machines, platformonafhankelijkheid en vernieuwende programmeerideeën naar de mainstream bracht.