James Gosling, de vader van Java, een van ’s werelds meest gebruikte programmeertalen, heeft met onderzoekswetenschapper Lex Fridman gesproken over de oorsprong van Java en zijn beweegredenen om een taal te creëren die op tientallen miljarden apparaten zou worden gebruikt en centraal zou komen te staan bij de ontwikkeling van Android bij Google.
Gosling ontwierp Java 25 jaar geleden toen hij bij Sun Microsystems werkte. In 2009 zou Java een van de belangrijkste redenen zijn waarom Oracle Sun overnam. Volgens Oracle zijn er vandaag de dag wereldwijd 51 miljard actieve Java Virtual Machines (JVM’s) in gebruik.
Maar lang voor de overname van Sun door Oracle, zei Gosling dat hij en een team bij Sun “zich zorgen maakten dat er dingen gaande waren in het universum van computers die de computerindustrie miste” – wat vandaag het Internet of Things zou worden.
SEE: Hiring Kit: Python-ontwikkelaar (TechRepublic Premium)
“Het ging allemaal over wat er gebeurde in termen van computerhardware, processors en netwerken die buiten de computerindustrie lagen,” zei hij.
“Dat was alles van de vroege glimpen van mobiele telefoons die toen gebeurden tot – je kijkt naar liften en locomotieven en proces-controlesystemen in fabrieken en allerlei audio- en videoapparatuur.
“Ze hadden allemaal processors in zich, ze deden er allemaal dingen mee en het voelde alsof er daar iets aan de hand was dat we moesten begrijpen.”
In die fase waren C en C++ “absoluut de baas in het universum” en werd alles in die talen geschreven.
Gosling zegt dat zijn team rond 1990 verschillende “epische road trips” maakte naar Toshiba, Sharp, Mitsubishi en Sony in Japan, Samsung en verschillende andere Zuid Koreaanse bedrijven, en ging “door heel Europa” om Philips, Siemens en Thomson te bezoeken.
“Een van de dingen die opvielen was dat ze alle gebruikelijke computerdingen deden die mensen 20 jaar eerder hadden gedaan,” herinnert hij zich.
“Ze waren computernetwerken opnieuw aan het uitvinden en ze maakten alle fouten die mensen in de computerindustrie hadden gemaakt.
“Omdat ik veel werk heb gedaan op het gebied van netwerken, gingen we op bezoek bij bedrijf X dat dit netwerkding zou beschrijven waar ze mee bezig waren, en gewoon zonder iets, kon ik ze ongeveer 25 dingen vertellen die complete rampen zouden worden.”
De ontdekking dat de industrie buiten de traditionele computerwereld nu eerdere fouten herhaalde, was een van de belangrijkste redenen waarom Gosling en zijn collega’s dachten dat ze iets nuttigs konden bieden in Java.
Hij realiseerde zich echter ook dat de consumentenelektronica-industrie en de computerindustrie een heel andere kijk op klanten hadden, wat hielp bij het bepalen hoe hij Java zou ontwerpen.
“Hoog op de lijst stond dat zij hun relatie met de klant als heilig beschouwden. Ze waren nooit bereid om compromissen te sluiten op het gebied van veiligheid. Een van de dingen die me in de computerindustrie altijd nerveus maakten, was dat mensen bereid waren in te leveren op betrouwbaarheid om prestaties te krijgen,” zei Gosling.
“Gewoon uitzoeken … hoe je ervoor kunt zorgen dat als je een stuk toast in de broodrooster stopt, het niet de klant zal doden. Het gaat niet in vlammen uitbarsten en het huis afbranden,” voegde hij eraan toe.
Na die road trips bouwden Gosling en het bedrijf een prototype besturingssysteem in C en C++ code voor huishoudelijke elektronica goederen, zoals een tv en videorecorder. Beveiliging was een belangrijke overweging in zijn doelstellingen voor wat Java zou worden.
“In het begin van de jaren negentig begreep men dat de nummer één bron van beveiligingsproblemen gewoon pointers waren, gewoon bugs, zo’n 50% tot 60% tot 70% waren bugs en de overgrote meerderheid ervan waren zoals buffer overflows. We moeten ervoor zorgen dat dit niet kan gebeuren. En dat was voor mij het oorspronkelijke ding: ‘Dit kan zo niet doorgaan’.”
Maar eerder dit jaar las Gosling een nieuwsbericht over het Chromium-team dat ontdekte dat 70% van de beveiligingsbugs in de Chrome-codebase geheugenbeheer- en veiligheidsbugs waren.
“Chrome is als een gigantisch stuk C++ code. En 60% tot 70% van alle beveiligingslekken waren stomme pointer trucs. En ik dacht het is 30 jaar later en we zijn er nog steeds,” zei Gosling.
Naast veiligheids- en beveiligingsoverwegingen voor Java, wilde hij zorgen voor “ontwikkelaarssnelheid”.
“Ik werd daar echt religieus over omdat ik een onvoorstelbare hoeveelheid tijd van mijn leven had besteed aan de jacht op mystery pointer bugs. De mysterie pointer bugs hebben de neiging om de moeilijkste te vinden, omdat … degenen die pijn doen zijn een één op een miljoen kans,” merkt hij op.
“Als je een miljard operaties per seconde doet, betekent het dat het gaat gebeuren. Ik ben religieus geworden over als iets mislukt het onmiddellijk en zichtbaar gebeurt. Een van de dingen die Java echt aantrekkelijk maakte voor veel ontwikkelwinkels was dat we weten dat we onze code twee keer zo snel aan de praat krijgen.”
SEE: Stephen Hawking had het mis over AI die mensen doodt (zegt robot)
Objectgeoriënteerd programmeren was ook een belangrijk concept voor Java, volgens Gosling.
“Een van de dingen die je uit objectgeoriënteerd programmeren haalt, is een strikte methodologie over wat de interfaces tussen dingen zijn en echt duidelijk zijn over hoe onderdelen zich tot elkaar verhouden.”
Dit helpt bij het aanpakken van situaties waarin een ontwikkelaar probeert “stiekem aan de kant te gaan” en code voor een andere gebruiker breekt.
Hij geeft toe dat hij sommige mensen boos heeft gemaakt door ontwikkelaars te verhinderen backdoors te gebruiken. Het was een “social engineering” ding, maar zegt dat mensen ontdekten dat de beperking een verschil maakte bij het bouwen van grote, complexe stukken software met veel medewerkers in meerdere organisaties. Het gaf deze teams duidelijkheid over hoe dat spul wordt gestructureerd en “redt je leven”.
Hij bood een korte kritiek op de manier waarop voormalig Android-baas Andy Rubin omging met Java bij de ontwikkeling van Android. Gosling werkte in 2011 kort bij Google na de overname van Sun door Oracle. Oracle’s rechtszaak tegen Google over het gebruik van Java API’s is nog steeds niet volledig opgelost na een decennium van rechtszittingen.
“Ik ben blij dat dat het heeft gedaan,” zei Gosling, verwijzend naar zijn gebruik van Java in Android. “Java draaide al een flink aantal jaren op mobiele telefoons en het werkte echt, echt goed. Er waren dingen over hoe ze het deden, in het bijzonder verschillende manieren waarop ze allerlei contracten schonden.”
“De man die het leidde, Andy Rubin, hij overschreed een heleboel lijnen. Er werden lijnen overschreden die sindsdien zijn uitgegroeid tot gigantische rechtszaken. dat niet hoefden te doen en in feite zou het zo veel goedkoper voor hen zijn geweest om geen lijnen te overschrijden,” voegde hij eraan toe.
“Ik begon te geloven dat het niet uitmaakte wat Android deed, het zou ontploffen. Ik begon te denken als een fabrikant van bommen.”