Kulttuurivihkot 4-5/2012
Avoimen lähdekoodin historia juontaa juurensa toisen maailmansodan ajoilta. Sosialismiin avoimen lähdekoodin ideologia kytkeytyy lähinnä vapaan tiedon jakamisen kautta. Sen kannattajat eivät vastusta markkinoita.Ensimmäisen varsinaisen toimivan tietokoneen rakensi saksalainen Konrad Zuse vuonna 1941. Toisen maailmansodan aikana liittoutuneet kuitenkin voittivat tietoteknisen kilpailun ja mursivat natsien Enigma-salakirjoituksia Bletchley Parkin huippusalaisessa tukikohdassa, jonka aivoina toimiAlan Turing ja jossa sodan loppuun mennessä pyöri peräti kymmenen Colossus-mallista tietokonetta.
Tietokoneiden alkuaikojen historia liittyy olennaisesti fasismin vastaiseen taisteluun. Liittoutuneiden suurempi laskentateho saattoi vaikuttaa sodan lopputulokseen jopa ratkaisevasti. Valitettavasti Turing itse ei koskaan saanut ansaitsemaansa kunnioitusta, vaan joutui homovainojen uhriksi ja teki lopulta itsemurhan.
Nykyinen avoimen lähdekoodin ajattelu ei ole aivan uutta. Itse asiassa tietokoneiden alkuaikoina se oli yleisesti vallalla oleva käytäntö. Alkuaikojen ohjelmoijat ajattelivat tekevänsä tiedettä. Tieteen tuloksien pitää olla universaalisti jaettavissa. Niinpä oli vain luonnollista, että ohjelmoijat jakoivat koodinsa eteenpäin ilmaiseksi.
Tällaisessa avoimen lähdekoodin ympäristössä toimi esimerkiksi C-ohjelmointikielen kehittänyt Dennis Ritchie, jonka poismeno vuonna 2011 jäi Applen Steve Jobsin kuoleman varjoon, vaikka Ritchiellä oli ratkaisevaa vaikutusta nykyisen tietoyhteiskunnan perustan syntyyn ja Steve Jobs oli pelkkä tietotekniikan markkinoinnilla rahastava liikemies.
Tällaiseen avoimen lähdekoodin ympäristöön saapui Richard Stallman, joka aloitti työn MIT:n tekoälylaboratoriossa vuonna 1971. Stallmanin ohjelmointiprojekteista kenties tunnetuin on Emacs-tekstieditori, jonka suosio on jatkunut 1970-luvulta näihin päiviin asti.
Stallmanin paratiisiin oli kuitenkin luikerrellut käärme. Monet ohjelmistojen valmistajat alkoivat 1980-luvun vaihteeseen mennessä suhtautua lähdekoodiin kuin yksityisomaisuuteen ja lopettivat sen toimittamisen ohjelmien mukana.
Stallman tahtoi vuonna 1980 muokata uuden lasertulostimensa ohjelmistoa, mutta Xerox ei antanutkaan hänelle lähdekoodia. Tämän ja vastaavien kokemuksien vuoksi Stallmanista tuli avoimen lähdekoodin puolesta kampanjoiva aktivisti.
Projekti ohjelmistojen vapauttamiseksi
Vuonna 1983 Stallman perusti GNU-projektin, jonka päämääränä oli luoda avoimeen lähdekoodiin perustuva käyttöjärjestelmä. Hän perusti myös Free Software Foundationin ajamaan vapaaohjelmien aatetta juridiselta ja poliittiselta kannalta.
Vapaaohjelmistojen juridiseksi perustaksi tuli GNU General Public License, jolla GNU-projektin ohjelmat julkaistiin. GPL on edelleenkin suosituin avoimen lähdekoodin lisenssi ja paljolti esikuva myöhemmille vastaaville hankkeille, kuten Creative Commons -lisensseille.
Free Software Foundationin määritelmän mukaan vapaan ohjelmiston täytyy täyttää neljä ehtoa, alkaen ehdosta nolla, koska tietokoneet aloittavat laskemisen nollasta:
Vapaus ajaa ohjelma, mistä tahansa syystä (vapaus 0).
Vapaus tutkia ohjelmaa, ja muutella sitä tarpeidesi mukaan (vapaus 1). Lähdekoodin saatavuus on ennakkoehto tälle.
Vapaus jakaa kopioita uudestaan, jotta voit auttaa naapuriasi (vapaus 2).
Vapaus jakaa uudestaan kopioita ohjelman parannelluista versioista (vapaus 3). Tämä antaa koko yhteisölle hyödyn tehdyistä muutoksista. Pääsy lähdekoodin pariin on ennakkovaatimus tälle.
Linusin laki
GNU-projekti loi sekä vapaaohjelmistojen filosofian että sen juridisen pohjan. Projekti julkaisi myös kokonaisen joukon toimivia avoimen lähdekoodin ohjelmia. Vain yksi asia puuttui: kerneli, eli käyttöjärjestelmän ydin. Tähän tarvittiin suomalaista apua.
Vuonna 1991 suomalainen Helsingin yliopiston opiskelija Linus Torvalds julkaisi internetissä GPL-lisensoidun Linux-kernelin, josta tuli GNU-projektin ohjelmiin yhdistettynä toimiva kokonainen käyttöjärjestelmä, jota pitäisikin Stallmanin mukaan kutsua GNU/Linuxiksi eikä pelkästään Linuxiksi.
Stallman on pohjimmiltaan kaikkien mahdollisten hyvien asioiden puolesta kampanjoiva aktivisti, jonka näkemyksiä avoimesta lähdekoodista pidetään ajoittain joustamattomina ja toimintaa konfliktitilanteissa hyvin epädiplomaattisena. Linus Torvaldsin mielestä tietokoneiden parissa toimiminen on vain kivaa, mutta hänkään ei ole erityisen hienovarainen diplomaatti ristiriitatilanteissa.
Linusin lain mukaan ihminen voi tehdä jotain selviytyäkseen, sosiaalisista syistä tai pelkästään huvin vuoksi. Ohjelmointia tehdään hänen mukaansa huvin vuoksi. Laki on melko suppea tulkinta ikivanhasta Maslowin tarvehierarkiasta, ja osoittaa, ettei nerokaskaan ohjelmoija välttämättä ole kovin taitava psykologi. Toisaalta psykologit saattaisivat selvitä vielä heikommin tietokoneohjelmoinnin kentällä, joten emme moiti Torvaldsia.
Katedraali ja basaari
Keskeisistä avoimen lähdekoodin ideologeista tulee mainita vielä kolmas epädiplomaattinen herrasmies, Eric S. Raymond. Jos Stallman on lähinnä punavihreä aktivisti ja Torvalds pragmaattisesti suuntautunut henkilö, on Raymond yleisiltä poliittisilta mielipiteiltään ollut lähellä oikeistolibertarismia ja harrastaa myös asehulluttelua. Raymondin mielestä Stallmanin idealismi tai fanaattisuus häiritsi avoimen lähdekoodin käyttöä kaupallisissa projekteissa, joten hän käski Stallmanin »pitää turpansa kiinni ja näyttää lähdekoodinsa!»
Raymond perusti Stallmanin Free Software Foundationin kanssa kilpailevan Open Source Initiativen. Molemmat suuntaukset ajavat avointa lähdekoodia, mutta Stallmanin vapaaohjelmistot ovat jossain määrin ideologisempi idea kuin Raymondin pragmaattisempi käsite avoimen lähdekoodin ohjelmistot. Raymondin pyrkimyksenä oli pudottaa suurin osa 1960-lukulaisuudesta pois, jotta liike-elämän olisi helpompi innostua avoimesta lähdekoodista.
Raymond on myös kirjoittanut erään merkittävimmistä avoimen lähdekoodin ideologiaa yleisesti käsittelevistä kirjoista, The Cathedral and The Bazaar. Katedraalimallissa lähdekoodi on saatavilla, mutta se tarjoillaan ylhäältäpäin ohjelmistojulkaisujen mukana. Basaarimallissa lähdekoodi on jatkuvasti tarjolla internetissä, ja sen muokkaamiseen on helppo osallistua. Tässä kirjassa Raymond esitteli myös tunnetun sloganinsa: »tarpeeksi suuri joukko silmämunia tekee kaikista bugeista näkyviä.»
Avointa vaan ei aina ilmaista
Mikä sitten on avoimen lähdekoodin ideologia? Lähdekoodin eli tiedon ilmainen jakaminen tuo mieleen sosialismin, mutta ehkä on sopivampaa verrata sitä tieteen etiikkaan. Tieteellinen kommunismi viittaa siihen perinteiseen käsitykseen, että tieteen tulosten täytyy olla avoimia ja koko tiedeyhteisön käytettävissä. Koska ohjelmistoja luotiin alun perin juuri julkisissa tutkimuslaitoksissa, on luonnollista, että tämä ajattelu periytyi tieteestä suoraan ohjelmistotuotantoon. Vasta myöhemmässä vaiheessa ohjelmat alettiin nähdä suljettuna ja yksityisomisteisena ilmiönä.
Rinnastukset poliittiseen sosialismiin ontuvat myös siinä mielessä, ettei yksikään avoimen lähdekoodin keskeinen puolestapuhuja ole varsinaisesti liiketoimintaa vastaan. Kaikkein ideologisimman linjan omaksunut Free Software Foundation jopa kannustaa myymään avoimen lähdekoodin ohjelmia mihin tahansa hintaan, jonka joku on niistä valmis maksamaan, kunhan ohjelman lähdekoodi toimitetaan ohjelman mukana.
Ohjelmien myyminen näin voisi merkitä esimerkiksi ohjelmien pakkaamista CD-levylle, jolloin myydään varsinaisesti palvelua, joka on ohjelmien pakkaaminen CD-levylle, eikä ohjelmia itseään. Koska ohjelmien lähdekoodi on kuitenkin saatavilla ilmaiseksi, on avoimen lähdekoodin liiketoiminta yleensä keskittynyt palveluiden myymiseen: ohjelmien asennuksesta, muokkaamisesta tietylle asiakkaalle sopiviksi tai käyttökoulutuksesta, dokumentaatiosta ja käyttötuesta sopii periä maksu. Tämä on puhtaan pragmaattinen näkökulma, sillä pelkästään vapaaehtoistyön tai julkisen rahoituksen pohjalta ei avoimen lähdekoodin kenttä voi kasvaa ja kehittyä. Nälkiintynyt ohjelmoija tuskin saisi kovinkaan paljon aikaan.
Osittain sekaannus johtuu siitä, että englanniksi sana »free» tarkoittaa sekä ilmaista että vapaata. Niinpä suomeksi avoin lähdekoodi on vapaata, muttei aina ilmaista. Englanniksi käsitettä joudutaan selittämään esimerkiksi sanomalla, että avoin lähdekoodi on »free as in freedom, not free as in free beer.» Lisäksi käsitteitä sotkemassa ovat ilmaisohjelmistot, jotka ovat ilmaisia, mutta eivät avointa lähdekoodia. Niinpä on olemassa Stallmanin vapaaohjelmia, vähemmän ideologialatautuneita avoimen lähdekoodin ohjelmia ja täysin eri kategoriassa olevia ilmaisohjelmia.
Markkinataloutta avoin lähdekoodi ei siis vastusta. Jossain määrin sitä voidaan kuitenkin pitää anarkistisena. Peruslähtökohtana on se, että jos joku ei pidä tavasta, jolla jotain projektia hoidetaan, hänellä on mahdollisuus perustaa projektista oma versionsa, eli forkata siitä oma versionsa. Tämä muistuttaa paljon anarkistista mallia vapaaehtoisista yhteenliittymistä, joista sopii erota ristiriitatilanteiden tullessa. Aikaisemmin projektien jakautumista pidettiin pahana asiana, mutta nykyisin siihen peräti kannustetaan, koska projektin eri versioiden parhaat puolet on mahdollista yhdistää myöhemmin.
Anarkismista huolimatta avointa lähdekoodia luonnehtii myös meritokraattisuus. Tyypillisesti käytössä on valistuneen diktaattorin malli. Vaikka projekti pyörisi hyvinkin anarkistisesti, voi sen perustajalla, ahkerimmalla tai taitavimmalla jäsenellä olla lopullinen veto-oikeus päätöksiin. Valistunut diktaattori estää projektin päätymisen lopulliseen kaaokseen erimielisyyksien vuoksi. Ja valistuneen diktaattorin vallankäyttö voi johtaa siihen, että tyytymätön yhteisön jäsen perustaa oman versionsa projektista, jolloin hän on uuden projektin perustaja ja valistunut diktaattori.
Kuitenkin avointa lähdekoodia kehitetään paljon myös täysin hierarkkisesti organisoituneissa yrityksissä, joten anarkismiakaan ei voida pitää kattavana tunnuspiirteenä. Keskeisimmäksi tunnuspiirteeksi nousee juuri tieteen ihanteen kaltainen tiedon jakaminen. Avoin lähdekoodi saattaa olla sosialistista, mutta ainoastaan samassa määrin kuin tiede ihanteellisessa tapauksessa on. Vaikka ohjelmat ovat saatavilla ilmaisina julkisina hyödykkeinä, ei ajatteluun liity yhdelläkään tunnetulla avoimen lähdekoodin puolestapuhujalla minkäänlaista liiketoiminnan vastaisuutta.
Google on tukenut jatkuvasti avoimen lähdekoodin hankkeita, vaikka sen liiketoiminnan ytimessä olevat hakualgoritmit lienevät kaikista liikesalaisuuksista salaisimpia. Facebookin tapauksessa lähdekoodin avoimuus ei ehkä ole kovinkaan tärkeää, koska avoimen lähdekoodin projektit pystyvät helposti luomaan vastaavan palvelun, olennaisinta on hallitseva markkina-asema ja se mitä Facebook tekee käyttäjiensä luovuttamilla tiedoilla. Avoimen lähdekoodin näkökulmasta pahin vaihtoehto ei ole Microsoft, jonka hallinta keskittyy käyttöjärjestelmän tasolle. Sellainen on ennemmin vertikaalisesti koko tuotantoketjuaan kontrolloiva Apple.