Avoimen lähdekoodin ohjelmistot

Kun tietokoneet yleistyivät 1950-luvulta lähtien, niiden ohjelmistot olivat vapaasti muokattavissa ja levitettävissä, valmistajien luvalla (ks. DECUS ja SHARE Wikipediasta englanniksi). Käsitteet "avoin lähdekoodi" (open source) ja "vapaa ohjelmisto" (free software) keksittiin vasta paljon myöhemmin.

Ohjelmistojen jakamisen ja muokkaamisen rajoitukset tulivat mukaan vasta 1960-luvun lopussa, yleistyen 1970-luvulla. Bill Gatesin julkista kirjettä tietokoneharrastajille 1976 (ks. Wikipediasta englanniksi) pidetään ohjelmistojen kehityksen tärkeänä merkkipaaluna. Kirjeessään Gates tuomitsee ohjelmistojen jakamisen ja toteaa, ettei ilman rajoituksia ja rahallista korvausta ole mahdollista tuottaa laadukkaita tietokoneohjelmia.

Vuonna 1984 Richard Stallman irtisanoutui työstään MIT:ssa, ja perusti GNU-projektin, ja vuotta myöhemmin Free Software Foundation:n ("vapaiden ohjelmistojen säätiö"). Hän on edelleen yksi äänekkäimmistä avointen ohjelmistojen puolestapuhujista. Nykyään GNU-projektin yhteydessä on satoja aktiivisesti kehitettäviä ohjelmistoja, jotka on saatavissa lähes kaikille käyttöjärjestelmille.

Internetin ja sähköpostin yleistyminen 1990-luvulla helpotti osallistumista avointen ohjelmistojen kehittelyyn, erityisesti yliopisto-opiskelijoiden parissa. Muutamia vuosia myöhemmin, kun internet ja WWW tulivat yleisesti saataville, yhteisöt alkoivat kasvaa voimakkaasti. Vuodesta 1996 lähtien yli puolet kaikista verkkosivustoista toimii avoimen Apache -palvelinohjelman avulla (ks. Netcraftin Web Server Survey); se herätti myös yritysten kiinnostuksen avoimia ohjelmistoja kohtaan. Vuosituhannen vaihteen tienoilla esimerkiksi IBM ryhtyi tukemaan voimakkaasti avointa Linux-käyttöjärjestelmää.

Vuoden 2006 lopussa Free Software Foundationin ja UNESCOn ylläpitämässä Free Software Directoryssa on luetteloituna yli viisi tuhatta avointa, vapaasti saatavilla olevaa tietokoneohjelmistoa.

Avoin lähdekoodi? Vapaa ohjelmisto?

Termeillä avoin lähdekoodi (open source) ja vapaa ohjelmisto (free software) tarkoitetaan tietokoneohjelmia, joita käyttäjät ja kehittäjät voivat muokata ja levittää vapaasti. Tekijänoikeuslakien mukainen lupa levitykseen ja johdettujen teosten tekemiseen on annettu ohjelmiston lisenssissä. Lisenssistä riippuen levitettäessä on tiettyjä velvollisuuksia, tyypillisesti lähdekoodi pitää joko antaa mukana tai pitää julkisesti saatavilla.

Avoimet tai vapaat ohjelmistot ovat eri asia kuin ilmaisohjelmistot. Tyypillisesti avointen ohjelmistojen lisenssit eivät kiellä myymästä ohjelmistoa. Koska asiakkaat (ostajat) saavat levittää ohjelmistoa edelleen vaikka ilmaiseksi, myyminen ei yleensä ottaen kannata.

Kaupallinen toiminta ja avoimet ohjelmistot sopivat hyvin yhteen. Tosin silloin itse ohjelmisto on käytännössä ilmainen, ja asiakas maksaa siihen liittyvistä palveluista, esimerkiksi ylläpidosta, säännöllisistä tietoturvapäivityksistä, soveltamisesta asiakkaan yksilöllisiin tarpeisiin ja niin edelleen.

Suurimmat hyödyt saavutetaan, kun iso ryhmä käyttäjiä, joilla on samanlaiset tarpeet, yhdistävät resurssinsa. Kun työ jaetaan ohjelmointiin, dokumentaatioon ja ohjeistukseen, ja ohjelmiston testaukseen, jokainen voi osallistua kehitykseen.

Yhteisöllisyys

Tavallisen käyttäjän kannalta avoimia ja vapaita ohjelmistoja (open source, free software) voisi ehkä pikemminkin sanoa yhteisöllisiksi ohjelmistoiksi, koska sekä ohjelmiston kehitys että käyttäjän tuki ongelmatilanteissa on käyttäjien (users) ja ohjelmiston kehittäjien (developers) muodostaman yhteisön varassa. Molempia tarvitaan toimivan yhteisön muodostamiseen.

Jos ohjelmoijia pidetään yhteisön aivoina, ongelmista ja kehitystoiveista kertovat tarkat ja järjestelmälliset käyttäjät ovat yhteisön sydän. Esimerkiksi Linux-käyttöjärjestelmän postituslistalla (LKML) on usein mainittu, että käyttäjät, jotka testaavat ja ilmoittavat ongelmista tarkasti ja kattavasti, ovat ainakin yhtä tärkeitä kuin ohjelmoijat itse.

Useimmin yhteisön toiminta näkyy selvimmin projektin postituslistoilla (mailing lists). Myös wiki-tyyppisiä verkkosivuja ja verkkosivupohjaisia ongelmatietokantoja (esim. bugzilla) käytetään paljon. Kuten kaikissa muissakin ihmisten yhteisöissä, näissäkin on omat tapansa ja etikettinsä, joita kannattaa noudattaa.