Što je softver otvorenog koda i zašto je to važno?
Geeksi često programe opisuju kao “open source” ili “slobodni softver”. Ako se pitate što točno znače ti pojmovi i zašto su važni, pročitajte dalje. (Ne, "slobodni softver" ne znači samo da ga možete besplatno preuzeti.)
Bez obzira radi li se o programu otvorenog koda ili ne, važno je samo programerima, što je u konačnici važno i za korisnike. Licence za softver otvorenog koda daju korisnicima slobode koje inače ne bi imali.
Zasluge za sliku: Quinn Dombrowski na Flickru
Definicija otvorenog koda
Ako je program otvorenog koda, njegov je izvorni kod slobodno dostupan njegovim korisnicima. Njegovi korisnici - i svi drugi - imaju mogućnost uzeti ovaj izvorni kod, modificirati ga i distribuirati vlastite verzije programa. Korisnici također mogu distribuirati onoliko kopija izvornog programa koliko žele. Svatko može koristiti program za bilo koju svrhu; ne postoje naknade za licenciranje ili druga ograničenja softvera. OSI ima detaljniju definiciju “otvorenog koda” na svojoj internetskoj stranici.
Na primjer, Ubuntu Linux je otvoreni operacijski sustav. Možete preuzeti Ubuntu, stvoriti koliko god želite kopija i dati ih prijateljima. Ubuntu možete instalirati na neograničenu količinu računala. Možete stvoriti remixove Ubuntu instalacijskog diska i distribuirati ih. Ako ste bili posebno motivirani, mogli biste preuzeti izvorni kôd programa u Ubuntuu i izmijeniti ga, kreirajući vlastitu prilagođenu verziju tog programa - ili samog Ubuntua. Open-source licence omogućuju vam da to učinite, dok vam zatvorene licence ograničavaju.
Suprotno open-source softveru je softver zatvorenog izvora koji ima licencu koja ograničava korisnike i čuva izvorni kod od njih.
Firefox, Chrome, OpenOffice, Linux i Android neki su popularni primjeri softvera otvorenog koda, dok je Microsoft Windows vjerojatno najpopularniji dio softvera otvorenog koda..
Open Source vs. Slobodan softver
Open source aplikacije su općenito slobodno dostupne - iako ništa ne sprečava programera da naplaćuje kopije softvera ako dopusti naknadnu distribuciju aplikacije i njezin izvorni kod..
Međutim, to se ne odnosi na “slobodni softver”. "Slobodan" u slobodnom softveru znači "slobodan kao u slobodi", a ne "slobodan kao u pivu". Kamp za slobodni softver, predvođen Richardom Stallmanom i Free Software Foundation, usredotočen je na etiku i moral korištenja softvera koji može biti kontrolira i mijenja korisnik. Drugim riječima, kamp za slobodni softver usredotočen je na slobode korisnika.
Richard Stallman. Slika Fripoga na Flickru.
Pokret za softver otvorenog koda je stvoren kako bi se usredotočio na pragmatičnije razloge za odabir ove vrste softvera. Zagovornici otvorenog koda htjeli su se usredotočiti na praktične prednosti korištenja softvera otvorenog koda koji bi se više svidio tvrtkama nego etici i moralu.
U konačnici, zagovornici otvorenog i slobodnog softvera razvijaju istu vrstu softvera, ali se ne slažu s porukama.
Vrste licenci
Postoji mnogo različitih licenci koje koriste projekti otvorenog koda, ovisno o tome što programeri preferiraju za svoj program.
GPL, ili GNU Opća javna licenca, široko se koriste u mnogim projektima otvorenog koda, kao što je Linux. Uz sve gore navedene definicije otvorenog koda, uvjeti GPL-a određuju da, ako bilo tko modificira program otvorenog koda i distribuira izvedeni rad, oni također moraju distribuirati izvorni kod za svoje izvedeno djelo. Drugim riječima, nitko ne može uzeti otvoreni kôd i iz njega stvoriti zatvoreni program - oni moraju objaviti svoje promjene u zajednici. Microsoft je GPL nazvao "virusnim" iz tog razloga, jer prisiljava programe koji sadrže GPL kôd na objavljivanje vlastitog izvornog koda. Naravno, programeri programera mogu odlučiti da ne koriste GPL kod ako je to problem.
Neke druge licence, kao što je BSD licenca, manje ograničavaju programere. Ako je program licenciran pod BSD licencom, svatko može inkorporirati izvorni kod programa u drugi program. Ne moraju vraćati svoje promjene u zajednicu. Neki ljudi vide da je to još "slobodnije" od GPL licence, jer razvojnim inženjerima daje slobodu da uključe kod u svoje zatvorene programe, dok neki vide da je to manje "besplatno" jer oduzima prava. od krajnjih korisnika izvedenog programa.
Prednosti za korisnike
Ovo nije suha, nevažna stvar koja je važna samo za programere. Najočitija korist softvera otvorenog koda je da se može koristiti besplatno. Primjer gore navedenog Ubuntu Linuxa to čini jasnim - za razliku od Windowsa, možete instalirati ili distribuirati onoliko kopija Ubuntua koliko želite, bez ograničenja. To mogu biti osobito korisni poslužitelji - ako postavljate poslužitelj, možete samo instalirati Linux na njega. ako postavljate virtualizirani klaster poslužitelja, možete jednostavno duplicirati jedan Ubuntu poslužitelj. Ne morate brinuti o licenciranju i koliko ste primjeraka Linuxa dopušteni.
Program otvorenog koda također je fleksibilniji. Na primjer, novo sučelje Windowsa 8 razočaralo je mnoge dugogodišnje korisnike Windows računala. Budući da je Windows zatvoren izvor, Windows korisnik ne može preuzeti Windows 7 sučelje, modificirati ga i učiniti ga ispravnim na Windows 8. (Neki Windows korisnici pokušavaju, ali to je mukotrpan proces obrnutog inženjeringa i modificiranja binarnih datoteka. )
Kada Linux desktop, kao što je Ubuntu, uvede novo sučelje radne površine koje neki korisnici nisu, korisnici imaju više opcija. Na primjer, kada je izdan GNOME 3, mnogi Linux korisnici desktopa su jednako isključeni. Neki su kôd uzeli u staru verziju, GNOME 2, i modificirali ga kako bi se pokrenuli na najnovijim Linux distribucijama - to je MATE. Neki su kôd uzeli u GNOME 3 i modificirali ga kako bi radili na način koji im se više sviđa - ovo je Cinnamon. Neki su se korisnici jednostavno prebacili na postojeća alternativna računala. Ako je sustav Windows otvorenog koda, korisnici sustava Windows 8 imat će više izbora i fleksibilnosti. Samo pogledajte CyanogenMod, popularnu, distribuiranu Android baziranu na zajednici koja dodaje značajke i podršku za nove uređaje.
Open-source softver također dopušta programerima da "stoje na ramenima divova" i kreiraju vlastiti softver. Svjedite Android i Chrome OS, koji su operativni sustavi izgrađeni na Linuxu i drugom open-source softveru. Jezgra Appleovog OS X - a time i iOS - također je izgrađena na otvorenom kodu. Valve bijesno radi na prijenosu svoje Steam platforme za igranje na Linux, jer im to omogućuje stvaranje vlastitog hardvera i kontrolu vlastite sudbine na način koji nije moguć na Microsoftovim Windowsima.
Ovo nije iscrpan opis - čitave knjige napisane su na ovu temu - ali sada biste trebali imati bolju ideju o tome što je zapravo softver otvorenog koda i zašto vam je koristan.