Mis on avatud lähtekoodiga tarkvara ja miks sellel on tähtsust?
Geeksid kirjeldavad programme sageli kui "avatud lähtekoodiga" või "tasuta tarkvara". Kui soovite teada, mida need mõisted täpselt tähendavad ja miks need olulised on, lugege edasi. (Ei, "tasuta tarkvara" ei tähenda lihtsalt seda, et saate selle tasuta alla laadida.)
See, kas programm on avatud lähtekoodiga või mitte, pole oluline ainult arendajatele, lõppkokkuvõttes on see oluline ka kasutajatele. Avatud lähtekoodiga tarkvaralitsentsid annavad kasutajatele vabadused, mida neil muidu poleks.
Pildikrediit: Quinn Dombrowski Flickris
Avatud lähtekoodi määratlus
Kui programm on avatud lähtekoodiga, on selle lähtekood kasutajatele vabalt kättesaadav. Selle kasutajatel - ja kõigil teistel - on võimalus seda lähtekoodi võtta, seda muuta ja oma versioone programmist levitada. Samuti on kasutajatel võimalus levitada nii palju originaalprogrammi eksemplare kui nad soovivad. Igaüks saab programmi kasutada mis tahes eesmärgil; tarkvaral pole litsentsitasusid ega muid piiranguid. OSI on oma veebisaidil täpsemalt määratlenud „avatud lähtekoodiga“.
Näiteks Ubuntu Linux on avatud lähtekoodiga operatsioonisüsteem. Võite alla laadida Ubuntu, luua nii palju koopiaid kui soovite ja anda neile oma sõpradele. Ubuntu saate installida piiramatule arvule arvutisse. Võite luua Ubuntu installikettalt remiksid ja neid levitada. Kui teil oli erilist motivatsiooni, võite alla laadida Ubuntu programmi lähtekoodi ja seda muuta, luues selle programmi - või Ubuntu enda - kohandatud versiooni. Kõik avatud lähtekoodiga litsentsid võimaldavad teil seda teha, samas kui suletud lähtekoodiga litsentsid seavad teile piiranguid.
Avatud lähtekoodiga tarkvara vastand on suletud lähtekoodiga tarkvara, millel on litsents, mis piirab kasutajaid ja hoiab lähtekoodi nende eest.
Firefox, Chrome, OpenOffice, Linux ja Android on mõned populaarsed näited avatud lähtekoodiga tarkvarast, samas kui Microsoft Windows on ilmselt kõige populaarsem suletud lähtekoodiga tarkvara.
Avatud lähtekood vs vaba tarkvara
Avatud lähtekoodiga rakendused on üldiselt vabalt saadaval - ehkki miski ei takista arendajal tarkvara koopiate eest tasu võtmist, kui need võimaldavad rakendust ja selle lähtekoodi hiljem edasi levitada.
Kuid see ei tähenda "vabatarkvara". "Tasuta" tähendab vabatarkvaras "vaba nagu vabaduses", mitte "tasuta nagu õlles". Richard Stallmani ja Vaba Tarkvara Sihtasutuse eestvedamisel pakutav vabatarkvara laager keskendub tarkvara juhtimise eetikale ja moraalile, mida kasutaja saab kontrollida ja muuta. Teisisõnu keskendub vaba tarkvara laager kasutajavabadustele.
Richard Stallman. Fripogi pilt Flickris.
Avatud lähtekoodiga tarkvara liikumine loodi selleks, et keskenduda pragmaatilisematele põhjustele seda tüüpi tarkvara valimisel. Avatud lähtekoodiga pooldajad tahtsid keskenduda avatud lähtekoodiga tarkvara praktilisele kasule, mis meeldiks rohkem ettevõtetele kui eetikale ja moraalile.
Lõppkokkuvõttes töötavad nii avatud lähtekoodiga kui ka vabatarkvara propageerijad sama tüüpi tarkvara, kuid nad pole sõnumite osas ühel meelel.
Litsentside tüübid
Avatud lähtekoodiga projektides kasutatakse palju erinevaid litsentse, sõltuvalt sellest, millist arendajad oma programmi eelistavad.
GPL-i ehk GNU General Public License'i kasutavad laialdaselt paljud avatud lähtekoodiga projektid, näiteks Linux. Lisaks kõigile ülaltoodud avatud lähtekoodiga definitsioonidele täpsustavad GPL-i tingimused, et kui keegi muudab lähtekoodiga programmi ja levitab tuletatud tööd, peavad nad levitama ka oma tuletistöö lähtekoodi. Teisisõnu, keegi ei saa võtta avatud lähtekoodiga koodi ja luua sellest suletud lähtekoodiga programmi - nad peavad oma muudatused kogukonnale tagasi andma. Microsoft nimetas GPL-i sel põhjusel viiruslikuks, kuna see sunnib GPL-koodi sisaldavaid programme oma lähtekoodi välja andma. Muidugi võivad programmi arendajad GPL-koodi mitte kasutada, kui see on probleem.
Mõned muud litsentsid, näiteks BSD-litsents, seavad arendajatele vähem piiranguid. Kui programmil on BSD litsentsi alusel litsents, saab igaüks programmi lähtekoodi lisada teise programmi. Nad ei pea oma muudatusi kogukonnale tagasi andma. Mõned inimesed näevad, et see on isegi rohkem "tasuta" kui GPL-i litsents, kuna see annab arendajatele vabaduse lisada kood oma suletud lähtekoodiga programmidesse, samas kui mõned inimesed peavad seda vähem "tasuta", kuna see võtab õigused ära tuletatud programmi lõppkasutajatelt.
Kasu kasutajatele
See pole kõik kuiv ja ebaoluline kraam, mis on oluline ainult arendajatele. Avatud lähtekoodiga tarkvara kõige ilmsem eelis on see, et seda saab tasuta kasutada. Eespool toodud Ubuntu Linuxi näide teeb selle selgeks - erinevalt Windowsist saate installida või levitada piiranguteta nii palju Ubuntu koopiaid kui soovite. See võib olla eriti kasulik server - kui seadistate serveri, saate selle lihtsalt Linuxi installida. kui seadistate virtualiseeritud serverite klastri, saate hõlpsasti ühe Ubuntu serveri dubleerida. Te ei pea muretsema litsentsimise ja mitme Linuxi eksemplari pärast, mida teil on lubatud käitada.
Ka avatud lähtekoodiga programm on paindlikum. Näiteks valmistas Windows 8 uus liides pettumuse paljudele pikaajalistele Windowsi töölaua kasutajatele. Kuna Windows on suletud lähtekoodiga, ei saa ükski Windowsi kasutaja võtta Windows 7 liidest, muuta seda ja panna see Windows 8 korralikult tööle. (Mõned Windowsi kasutajad proovivad, kuid see on keeruline protsess pöördprojekteerimisel ja binaarfailide muutmisel. )
Kui Linuxi töölaud nagu Ubuntu tutvustab uut töölaua liidest, mille mõned kasutajad pole fännid, on kasutajatel rohkem võimalusi. Näiteks kui GNOME 3 ilmus, olid paljud Linuxi töölaua kasutajad võrdselt välja lülitatud. Mõni viis koodi vanasse versiooni GNOME 2 ja muutis seda nii, et see töötaks uusimatel Linuxi distributsioonidel - see on MATE. Mõned viisid koodi GNOME 3-sse ja muutsid seda nii, et see töötaks nende eelistatud viisil - see on kaneel. Mõned kasutajad vahetasid lihtsalt olemasolevaid alternatiivseid töölaudu. Kui Windows oleks avatud lähtekoodiga, oleks Windows 8 kasutajatel rohkem valikuid ja paindlikkust. Heitke pilk Androidi populaarsele kogukonnapõhisele levitamisele CyanogenMod, mis lisab uute seadmete funktsioone ja tuge.
Avatud lähtekoodiga tarkvara võimaldab arendajatel ka "hiiglaste õlul seista" ja luua oma tarkvara. Tunnistajad Androidile ja Chrome OS-ile, mis on Linuxile ja muule avatud lähtekoodiga tarkvarale ehitatud operatsioonisüsteemid. Apple'i OS X-i tuum - ja selle jaoks ka iOS - põhines ka avatud lähtekoodil. Valve töötab raevukalt oma Steami mänguplatvormi Linuxi teisaldamise kallal, kuna see võimaldaks neil luua oma riistvara ja juhtida oma saatust viisil, mis pole Microsofti Windowsis võimalik.
See ei ole ammendav kirjeldus - sellel teemal on kirjutatud terved raamatud -, kuid nüüd peaksite paremini mõistma, mis on avatud lähtekoodiga tarkvara tegelikult ja miks see teile kasulik on.