Avoin lähdekoodi
"Avoin lähdekoodi" (engl. open source) on Open Source Initiativen (OSI) lanseeraama termi, joka tarkoittaa käytännössä samaa kuin vapaa ohjelmisto, mutta on vähemmän aatteellinen. Termi lanseerattiin pääasiassa siksi, että vapaita ohjelmistoja tarkoittava termi "free software" voidaan englannin kielessä tulkita viittaavan myös ohjelmien ilmaisuuteen.
Vaatimukset
OSI on määrittänyt avoimen lähdekoodin ohjelmille seuraavat vaatimukset
- Ohjelman täytyy olla vapaasti levitettävissä ja välitettävissä.
- Lähdekoodi täytyy toimittaa ohjelman mukana tai sen on oltava vapaasti saatavissa.
- Ohjelman muokkaaminen ja muokattujen versioiden levittäminen täytyy olla sallittua (ns. johdetut teokset)
- Lisenssillä voidaan rajoittaa muokatun lähdekoodin levittämistä vain siten, että lisenssi sallii muokkausten levittämisen vain erillisenä korjaustiedostoina lähdekoodin yhteydessä. Voidaan myös vaatia, ettei muokattua ohjelmaa levitetä samalla nimellä tai versionumerolla kuin alkuperäistä.
- Yksilöitä tai ihmisryhmiä ei saa asettaa eriarvoiseen asemaan.
- Käyttötarkoituksia ei saa rajoittaa.
- Kaikilla ohjelman käyttöönsä saaneilla on samat oikeudet.
- Lisenssi ei saa olla riippuvainen laajemmasta ohjelmistokokonaisuudesta, jonka osana ohjelmaa levitetään. Ohjelmaan liittyvien oikeuksien täytyy säilyä, vaikka ohjelma irrotettaisiin kokonaisuudesta.
- Lisenssi ei voi asettaa vaatimuksia muille ohjelmille. Ohjelmaa saa levittää myös yhdessä sellaisten ohjelmien kanssa, jotka eivät ole avointa lähdekoodia.
- Lisenssin sisällön pitää olla riippumaton teknisestä toteutuksesta. Lisenssiin ei saa liittää ehtoja jotka liittyvät jakelutapaan tai käyttöliittymään.
Avoimen lähdekoodin edut
Avoin lähdekoodi antaa kaikille mahdollisuuden muokata ohjelmaa. Suljetun lähdekoodin ohjelmissa, joissa lähdekoodi ei ole saatavilla, on ohjelman muokkaaminen sen sijaan käytännössä mahdotonta. Muokkaamisen lisäksi lähdekoodin avoimuus mahdollistaa sen, että ohjelman toimintaa voidaan tutkia ja voidaan varmistua siitä, ettei ohjelma esimerkiksi vakoile käyttäjän toimia.
Mahdollisuus ohjelman muokkaamiseen poistaa riippuvuuden ohjelman kehittäjästä. Suljetun lähdekoodin ohjelmien yhteydessä ohjelman käyttäjä on täysin riippuvainen ohjelman kehittäjästä: jos käyttäjä haluaa ohjelmaan jonkin muutoksen tai jonkin ongelman korjatuksi, täytyy hänen pyytää tätä ohjelman kehittäjältä. Jos ohjelman kehittäjä ei halua tai voi (esimerkiksi yrityksen mentyä konkurssiin) tehdä näitä muutoksia, ei käyttäjä voi tehdä asialle käytännössä mitään.
Avoimen lähdekoodin ohjelmissa lähdekoodi on saatavilla, joten esimerkiksi yrityksen meneminen konkurssiin ei välttämättä pysäytä ohjelman kehitystyötä. Esimerkiksi sovellusta käyttävä yritys voi tilata toiselta yritykseltä haluamiaan muutoksia ohjelmaan. Koska periaatteessa kuka tahansa ohjelmoija voi tehdä muutoksia ohjelmaan, voivat eri yritykset kilpailla muutoksien tekemisestä mikä pienentää kustannuksia. Yritysten lisäksi myös ohjelmointitaitoiset käyttäjät voivat tarvittaessa jatkaa ohjelman kehitystä.
Avoimen lähdekoodin ohjelmiin kuuluu myös se, että ohjelmien muuttaminen suljetuiksi ei ole mahdollista. Toki ohjelman kehittäjä, joka omistaa tekijänoikeudet ohjelmaan, voi julkaista ohjelmasta uuden version suljettuna. Vanhojen versioiden lisenssiehtoja ei kuitenkaan voida muuttaa, joten tällaisessakin tilanteessa yhteisö voi jatkaa ohjelman kehittämistä vapaana. Ohjelmasta voidaan muutenkin aloittaa uusi kehityshaara, jos alkuperäisen kehittäjän toiminta ei tyydytä käyttäjiä. Vaikka vain pieni osa käyttäjistä osaa ohjelmoida ja voi näin muokata tai tutkia ohjelman toimintaa, on tällaisia käyttäjiä kuitenkin yleensä sen verran, että etenkin suosituimpien ohjelmien kehitys on turvattua.
Avoin lähdekoodi parantaa myös tietyin edellytyksin ohjelmien laatua. Avoimen lähdekoodin ohjelmat voivat hyödyntää muihin avoimiin ohjelmiin kirjoitettua koodia vapaasti, mikä voi vähentää päällekkäisen työn tarvetta. Ohjelmat, joista hyötyvät suuret joukot, kehittyvät avoimen koodin mallilla nopeasti. Esimerkiksi Linuxin ytimen kehitystä on edistänyt se, että IT-alan yritykset käyttävät Linuxia laajalti palvelinkoneiden käyttöjärjestelmänä. Linuxiin sijoitettu kehitystyö hyödyttää keskenään kilpailevia IT-yrityksiä, jotka myyvät Linuxia ja siihen liittyviä tukipalveluita sekä näiden asiakkaita, koska kaikki saavat parannukset käyttöönsä. Tämä pienentää päällekkäisen työn määrää ja siten kehitystyön kustannuksia.
Tietyissä sovelluksissa, kuten salauksessa, avoin lähdekoodi voi olla luotettavampaa kuin suljettu. Kun riippumattomat asiantuntijat pääsevät vapaasti tutkimaan ohjelman toimintaa ja kertomaan löydöksistään, ei käyttäjien tarvitse luottaa pelkästään ohjelman tekijän sanaan.