Maailman käytetyimpiin ohjelmointikieliin kuuluvan Javan isä James Gosling on puhunut tutkija Lex Fridmanin kanssa Javan synnystä ja motiiveista luoda kieli, jota käytettäisiin kymmenissä miljardeissa laitteissa ja josta tulisi keskeinen tekijä Googlen Androidin kehittämisessä.
Gosling suunnitteli Javan 25 vuotta sitten ollessaan Sun Microsystemsillä. Vuonna 2009 Java olisi yksi tärkeimmistä syistä siihen, että Oracle osti Sunin. Oraclen mukaan nykyään maailmassa on käytössä 51 miljardia aktiivista Java-virtuaalikonetta (JVM).
Mutta jo kauan ennen kuin Oracle osti Sunin, Gosling sanoi, että hän ja eräs Sunin tiimi ”tavallaan pelkäsivät, että tietojenkäsittelyn maailmankaikkeudessa tapahtuu asioita, joista tietojenkäsittelyteollisuus jää paitsi” – se, mistä tulisi nykypäivän esineiden internet.
KATSO: Hiring Kit: Python-kehittäjä (TechRepublic Premium)
”Kyse oli siitä, mitä tietokonelaitteistoissa, prosessoreissa ja verkoissa tapahtui tietokoneteollisuuden ulkopuolella”, hän sanoi.
”Se oli kaikkea kännyköiden varhaisista pilkahduksista, joita silloin tapahtui – katsot hissejä ja vetureita ja prosessinohjausjärjestelmiä tehtaissa ja kaikenlaisia audio- ja videolaitteita.
”Niissä kaikissa oli prosessorit, ne kaikki tekivät asioita niillä, ja tuntui siltä, että niissä tapahtui jotain, mitä meidän piti ymmärtää.”
Tässä vaiheessa C ja C++ ”hallitsivat maailmankaikkeutta”, ja kaikki kirjoitettiin näillä kielillä.
Gosling kertoo, että hänen tiiminsä teki useita ”eeppisiä automatkoja” vuoden 1990 tienoilla vieraillakseen Toshiban, Sharpin, Mitsubishin ja Sonyn luona Japanissa, Samsungin ja useiden muiden eteläkorealaisten yritysten luona ja kävi ”ympäri Eurooppaa” Philipsin, Siemensin ja Thomsonin kaltaisten yritysten luona.
”Yksi asia, joka pisti silmään, oli se, että ne tekivät kaikkia tavanomaisia tietokoneasioita, joita ihmiset olivat tehneet 20 vuotta aiemmin”, hän muistelee.
”Ne keksivät tietokoneverkot uudestaan ja tekivät kaikki ne virheet, joita ihmiset tietokoneteollisuudessa olivat tehneet.
”Koska olen tehnyt paljon töitä verkkoalalla, menimme vierailulle yritykseen X, joka kuvaili tätä verkkojuttua, jota he tekivät, ja pystyin ilman mitään kertomaan heille noin 25 asiaa, jotka olivat täydellisiä katastrofeja.”
Havaitseminen, että perinteisen tietokonemaailman ulkopuolinen teollisuus toisti aiempia virheitä, oli yksi tärkeimmistä syistä, joiden vuoksi Gosling kollegoineen ajatteli voivansa tarjota jotakin käyttökelpoista Javasta.
Hän huomasi kuitenkin myös, että viihde-elektroniikkateollisuudella ja tietokoneteollisuudella oli hyvin erilainen näkemys asiakkaista, mikä auttoi antamaan tietoa siitä, miten hän suunnittelisi Javan.
”Korkealla listalla oli se, että he pitivät suhdettaan asiakkaaseen pyhänä. He eivät koskaan olleet valmiita tekemään kompromisseja turvallisuuden vuoksi. Yksi asia, joka aina hermostutti minua tietokoneteollisuudessa, oli se, että ihmiset olivat valmiita tekemään kompromisseja luotettavuudesta suorituskyvyn saamiseksi”, Gosling sanoi.
”Keksimme vain … miten varmistaa, että jos laitat paahtoleivän leivänpaahtimeen, se ei tapa asiakasta”. Se ei syty tuleen ja polta taloa”, hän lisäsi.
Näiden automatkojen jälkeen Gosling ja yritys rakensivat C- ja C++-koodilla ohjausjärjestelmän prototyypin kodin elektroniikkatuotteille, kuten televisiolle ja videonauhurille. Turvallisuus oli keskeinen näkökohta hänen tavoitteissaan sille, mistä tulisi Java.
”1990-luvun alussa ymmärrettiin hyvin, että tietoturva-aukkojen ykköslähde olivat vain osoittimet, vain viat, noin 50-60-70 prosenttia oli vikoja, ja valtaosa niistä oli puskurin ylivuotoja. Meidän on varmistettava, ettei tällaista pääse tapahtumaan. Ja se oli minulle alkuperäinen asia: ’Tämä ei voi jatkua’.”
Mutta aiemmin tänä vuonna Gosling luki uutisen, jossa kerrottiin Chromium-tiimin havainneen, että 70 prosenttia Chromen koodikannan tietoturvavirheistä oli muistinhallinta- ja turvallisuusvirheitä.
”Chrome on kuin jättimäinen pala C++-koodia. Ja 60-70 prosenttia kaikista tietoturva-aukoista oli typeriä osoitintemppuja. Ja ajattelin, että nyt on 30 vuotta myöhemmin, ja olemme yhä siinä”, Gosling sanoi.
Javan turvallisuusnäkökohtien lisäksi hän halusi varmistaa ”kehittäjien nopeuden”.
”Tulin todella uskonnolliseksi sen suhteen, koska olin käyttänyt jumalattoman paljon aikaa elämästäni metsästäessäni salaperäisiä osoitinvirheitä. Mysteeriosoitinvirheet ovat yleensä vaikeinta löytää, koska … ne, jotka vahingoittavat, ovat yksi mahdollisuus miljoonasta”, hän toteaa.
”Kun teet miljardi operaatiota sekunnissa, se tarkoittaa, että se tapahtuu. Minusta tuli uskonnollinen siitä, että jos jokin epäonnistuu, se tapahtuu välittömästi ja näkyvästi. Yksi asia, joka oli Javan todellinen vetovoimatekijä monille kehitysfirmoille, oli se, että tiedämme saavamme koodimme toimimaan kaksi kertaa nopeammin.”
KATSO: Stephen Hawking oli väärässä siitä, että tekoäly tappaa ihmisiä (sanoo robotti)
Objektipainotteinen ohjelmointi oli Goslingin mukaan myös tärkeä käsite Javalle.
”Yksi asia, jonka objektikeskeisestä ohjelmoinnista saa irti, on tiukka metodologia siitä, mitkä ovat asioiden väliset rajapinnat, ja se, että on todella selvää, miten osat liittyvät toisiinsa.”
Tämä auttaa puuttumaan tilanteisiin, joissa kehittäjä yrittää ”hiipiä sivusta” ja rikkoo koodia toiselle käyttäjälle.
Hän myöntää suututtaneensa joitakin ihmisiä estämällä kehittäjiä käyttämästä takaovia. Se oli ”sosiaalista insinöörityötä”, mutta sanoo ihmisten huomanneen, että rajoituksella oli merkitystä, kun rakennettiin suuria, monimutkaisia ohjelmistoja, joihin osallistui paljon tekijöitä useista eri organisaatioista. Se antoi näille tiimeille selkeyttä siitä, miten nämä asiat jäsennetään, ja ”pelasti henkesi”.
Hän esitti lyhyen kritiikin entisen Android-pomon Andy Rubinin Java-käsittelystä Androidin kehityksessä. Gosling oli vuonna 2011 lyhyen aikaa Googlen palveluksessa Oraclen ostettua Sunin. Oraclen oikeusjuttu Googlea vastaan Java-rajapintojen käytöstä ei ole vieläkään täysin ratkaistu vuosikymmenen kestäneiden oikeuskäsittelyjen jälkeen.
”Olen iloinen, että se teki sen”, Gosling sanoi viitaten Javan käyttöön Androidissa. ”Java oli toiminut matkapuhelimissa jo muutaman vuoden ajan ja se toimi todella, todella hyvin. Oli asioita siinä, miten he tekivät sen, erityisesti erilaisia tapoja, joilla he tavallaan rikkoivat kaikenlaisia sopimuksia.”
”Andy Rubin, joka sitä johti, ylitti monia rajoja. Rajat ylitettiin, jotka ovat sittemmin kasvaneet jättimäisiksi oikeustapauksiksi. ei olisi tarvinnut tehdä niin, ja itse asiassa olisi ollut paljon halvempaa, jos he eivät olisi ylittäneet rajoja”, hän lisäsi.
”Aloin uskoa, ettei ollut väliä, mitä Android teki, se räjähtäisi. Aloin ajatella sitä ikään kuin pommien valmistajana.”