Što je softver otvorenog koda? Objašnjeni otvoreni kod i FOSS

U osnovi svakog softvera koji koristite nalazi se izvorni kod koji izdaje naredbe i obrađuje podatke koji omogućuju softveru da radi ono što radi. Pitanje tko bi trebao imati pravo gledati, mijenjati ili distribuirati taj izvorni kod odavno je jedna od temeljnih ideoloških podjela unutar svijeta računarstva.

Pristalice softvera otvorenog koda, kako i samo ime kaže, spuštaju se na stranu otvorenosti; smatraju da bi ljudi trebali imati pravo pristupa izvornom kodu softvera koji koriste. Kao što ćemo vidjeti, međutim, u praksi postoji puno raznolikosti koja spada pod tu oznaku. Razne vrste softvera otvorenog koda postoje u gotovo svakoj niši koja vam padne na pamet - zapravo, open source dominira mnogima od njih.

Što je softver otvorenog koda, što je besplatni softver - i razlikuju li se oni?

Sažeta definicija softvera otvorenog koda jest da se radi o softveru čiji se temeljni kod može pregledati, izmijeniti i ponovno distribuirati. (Postoji dulja i službenija definicija do koje ćemo doći malo kasnije.) "Izmijenjeni i preraspodijeljeni" dijelovi zaista su ključni za filozofiju otvorenog koda. Unatoč onome što naziv može značiti, jednostavno otvaranje izvornog koda kako bi ga ljudi mogli pogledati ne znači da je otvoren.

Na neki je način izraz "softver otvorenog koda" retronim: U ranim desetljećima računalne znanosti izvorni kod softvera bio je dostupan naravno i slobodno razmjenjivan između istraživača i znanstvenika iz industrije. Računala je bilo malo i očekivalo se da će ih korisnici uvelike izmijeniti, pa su ljudi trebali pristup kodu. Na mnogo načina softver je viđen kao dodatak računalnom hardveru; tek 1974. čak je i zakonski utvrđeno da softver podliježe autorskim pravima. No kako je doba mikroračunala svanulo krajem 1970-ih, industrija se počela premještati u položaj da je softver nešto što ima novčanu vrijednost samo po sebi, te da se pristup osnovnom kodu može i treba ograničiti kako bi se zaštitili tvorci softvera 'prava.Čuveno otvoreno pismo Billa Gatesa iz 1976. godine hobistima koji se žale na rašireno piratstvo Microsoftovog prvog proizvoda, tumača Altair BASIC, presudni je dokument ovog pomaka.

Iako je brzo rastuća softverska industrija brzo prihvatila ove nove ideje, neki su se ljudi povukli protiv njih. Jedan od najranijih protivnika bio je Richard Stallman, koji je 1985. osnovao Fondaciju za slobodni softver (FSF). "Besplatni" u besplatnom softveru trebao bi označiti slobodu korisnika da mijenjaju i distribuiraju kôd kako žele; u ovom smislu nema pravila protiv naplate novca za besplatni softver. Razlika se često povlači između „besplatnog kao u besplatnom pivu“ i „besplatnog kao u slobodnom govoru“, a slobodni softver nalazi se u potonjem kampu.

Ipak, ideja slobodnog softvera mnoge je ljude u privatnoj industriji, koji uostalom nisu bili ljubitelji darivanja, nervirala. Godine 1998. Christine Peterson skovala je izraz "otvoreni izvor" djelomično pokušavajući učiniti ideju dostupnijom novopridošlim osobama, posebno onima koji rade u profitnim tvrtkama. Iako se Stallman opirao terminu otvoreni izvor, rekavši da se on okreće od izvornih političkih i filozofskih ideja slobodnog softvera, postao je dominantna fraza koja opisuje ovaj koncept. Venov se dijagram besplatnog softvera i softvera otvorenog koda preklapa dovoljno da se ponekad to dvoje kombinira pod kraticom FOSS (besplatni softver i softver otvorenog koda) . Općenito, sav besplatni softver je otvorenog koda, iako mali dio softvera s otvorenim kodom ima licencne uvjete što znači da nije besplatan (o licenciranju otvorenog koda više za trenutak).

Koncept besplatnog softvera i softvera otvorenog koda iznjedrio je još jednu retronimsku definiciju: "zaštićeni softver ", bilo koji softver koji nije otvoreni izvor.

Licence za softver otvorenog koda

Sva prava i odgovornosti uključene u softver otvorenog koda utvrđene su licencama pod kojima se softver distribuira. Kako se uspostavila pravna doktrina da je softver podložan autorskim pravima, softverske licence počele su se pisati kako bi se osigurao ugovor između vlasnika autorskih prava i korisnika, dajući korisniku odobrenje za izvršavanje softvera na osobnom računalu.

Licence za softver izvorno su postojale radi ograničavanja ponašanja korisnika i zaštite prava proizvođača softvera. No, zagovornici slobodnog softvera shvatili su da mogu preokrenuti izvornu svrhu licenci: licenca softverskog paketa umjesto toga može zahtijevati da temeljni kôd bude dostupan svima koji koriste softver i da korisnici imaju pravo uređivati ​​i distribuirati taj kôd. Prva licenca za softver otvorenog koda (iako prethodi terminu) vjerojatno je obavijest o dopuštenju kopiranja GNU Emacs, objavljena 1985. godine za verziju uređivača teksta Emacs koju je napisao FSF-ov Stallman.

Od tada se broj besplatnih i open source licenci povećavao, a svaka je postavljala malo drugačije uvjete za upotrebu licenciranog koda; Wikipedia održava prilično dobar grafikon s detaljima o najvažnijim licencama. Po definiciji, bilo koja od ovih licenci otvorenog koda korisnicima daje tri temeljne slobode mogućnosti čitanja, uređivanja i ponovne distribucije izvornog koda; glavno područje u kojem se razlikuju je u terminima koje nameću za preraspodjelu:

  • Dozvoljene licence omogućuju vam distribuciju bilo kojeg izvornog koda kako god smatrate potrebnim. Možete, na primjer, uzeti izvorni kod objavljen pod dozvolom licence, ugraditi ga u vlastiti softver, a zatim izdati taj softver pod vlasničkom licencom. BSD licenca jedna je od najpoznatijih dozvola.
  • Licence Copyleft zahtijevaju da se bilo koji preraspodijeljeni kôd koji uključuje licencirani kôd također objavi pod sličnom licencom. Različite verzije GNU javne licence (GPL) s FSF-a su copyleft licence, a njihov je cilj zahtijevati od programera da to plaćaju unaprijed dijeleći koristi koje su dobili uključivanjem otvorenog koda u svoj projekt.

Zanimljivo je primijetiti da su se ideje koje stoje iza ovih licenci proširile i izvan svijeta softvera. Creative Commons pravna je infrastruktura za primjenu sličnih izraza na pisana ili vizualna umjetnička djela.

Definicija otvorenog koda i inicijativa otvorenog koda

Otvoreni izvor po svojoj prirodi ne kontrolira niti jedan entitet ili organizacija. Godine 1998. grupa istaknutih programera, uključujući Brucea Perensa i Erica S. Raymonda, osnovali su Open Source Initiative (OSI), neprofitnu organizaciju posvećenu zagovaranju otvorenog koda u većoj softverskoj industriji. OSI je pokušao i nije uspio zaštititi zaštitni znak pojma otvoreni izvor 1999. godine; ipak, njihova formalna definicija otvorenog koda je, konsenzusom, okvir kojeg slijede sve licence koje sebe nazivaju otvorenim kodom. Pored slobode ispitivanja, modificiranja i distribucije koda o kojoj smo već razgovarali, definicija otvorenog koda zabranjuje licence koje diskriminiraju određene skupine ili ljude, a koje sprečavaju upotrebu koda u određene svrhe ili napore, ili pokretanje na određenom uređaju ili vrsti uređaja.

Razvoj otvorenog koda i projekti otvorenog koda

Razvoj pomoću otvorenog koda odvija se u svim vrstama okruženja, od sveučilišta do velikih korporacija, i često slijedi iste obrasce kao i bilo koja druga vrsta razvoja softvera. Ali postoji posebna vrsta otvorenog procesa razvoja zajednice koja je povezana s otvorenim kodom. U svom utjecajnom eseju "Katedrala i čaršija", Eric S. Raymond iznio je svoju viziju ovog procesa, gdje svatko može pristupiti kodu, a u bazu koda dodaju se ažuriranja široko distribuirane grupe programera koji uranjaju i izlaze kao njihov interes nalaže.

Razvoj otvorenog koda ove vrste organiziran je oko projekata otvorenog koda . Oni ponekad rade na jednom softveru, a ponekad na cijelom skupu aplikacija. Softver za upravljanje verzijama održava doprinose svih u skladu. GitHub je vjerojatno najpopularniji.

Projekti s otvorenim kodom koje ponekad započinje jedna osoba obično su samoorganizirane, male internetske zajednice, i premda svatko može pridonijeti bilo kojem projektu, na većini obično radi relativno mali skup programera. Ponekad projekt može sponzorirati profitna tvrtka koja planira koristiti softver koji proizvodi, čak idući toliko daleko da na plaće stave najistaknutije programere projekta.

Primjeri otvorenog koda

Softver otvorenog koda zapravo je sveprisutan i stvara velik dio temelja modernog Interneta. Možda je najpoznatiji projekt otvorenog koda Linux, open source Unix varijanta koja pokreće milijune poslužitelja. Ostali istaknuti i izuzetno ključni projekti uključuju web poslužitelj Apache, MySQL bazu podataka i WordPress. Brojni razvojni okviri objavljeni su kao otvoreni kod, od Ruby on Rails do Microsoftove .Net Core.

Otvoreni izvor bio je manje uspješan u proizvodnji softvera za kućno računalo namijenjenog običnim korisnicima. Unatoč visokoj cijeni vlasničkih softverskih paketa kao što su Microsoft Word i Adobe Photoshop, kolege otvorenog koda poput OpenOffice i GIMP nikada nisu uspjeli pronaći nišu od strastvenih entuzijasta, velikim dijelom zato što je zajednica otvorenog koda tradicionalno dala prednost značajkama i fleksibilnosti u odnosu na jednostavnost koristiti. (Zaključavanje formata datoteke od vlasničkih dobavljača nije pomoglo.) Čak ni Linux, čiji zagovornici tvrde od kasnih 1990-ih da je OS s otvorenim kodom udaljen samo godinu dana od dominacije na radnoj površini, nikada zapravo nije uspio skočiti na potrošački prostor. Općenito se otvoreni izvor koristi za infrastrukturu mnogo više nego za softver krajnjeg korisnika.No, prelazak s monolitnog softvera koji lokalno pokrećete na SaaS aplikacije blagodat je za otvoreni izvor, jer se infrastruktura zasnovana na oblaku uglavnom temelji na hrpama kojima dominira otvoreni izvor.

Sjećate se što smo rekli o profitnim tvrtkama koje podržavaju otvoreni izvor? Često se ti projekti proizvode pod dozvolom licence, tako da te tvrtke mogu staviti otvoreni izvorni kôd u srž svojih vlasničkih ponuda, istovremeno održavajući zasebnu bazu otvorenog koda paralelno kao projekt zajednice. Na primjer, Android mobilni OS u osnovi ima Linux; svi Appleovi mobilni i stolni OS bazirani su na Darwinu, operativnom sustavu otvorenog koda izvorno izvedenom iz BSD Unixa. Čak se i Googleov Chrome temelji na pregledniku otvorenog koda pod nazivom Chromium.

Zajednica otvorenog koda i pokret otvorenog koda

Otvoreni izvor više je od pukog razvojnog procesa; to je filozofija prema kojoj su ljudi strastveni i to je društvena zajednica kojoj se može pridružiti svatko tko ima vještine programiranja. Zapravo je to čitav niz zajednica, kako kaže Linux Foundation. (Postojanje neprofitnih organizacija kao što su Linux Foundation i OSI važan je aspekt te zajednice.) Florian Effenberger ima sjajan esej o tome kako je zajednica otvorenog koda obogatila njegov život.

Često ćete čuti ljude kako govore o pokretu otvorenog koda ili slobodnom softveru, koji ima konotaciju politike i zagovaranja. Dosta ljudi u zajednici otvorenog koda potaklo je široko prihvaćanje softvera otvorenog koda iz različitih razloga: Oni misle da otvoreni izvor proizvodi sam po sebi bolji kôd ili smatraju da je pristup izvornom kodu temeljno pravo koje bi korisnici računala trebali uživati ili neka kombinacija toga dvoje. Ovaj se aspekt zajednice danas čini malo manje vidljivim, ali možda je to zato što je na mnogo načina pobijedio otvoreni izvor. Davne 2001. godine tadašnji izvršni direktor Microsofta Steve Ballmer rekao je da je Linux zbog svoje licence otvorenog koda "rak koji se u smislu intelektualnog vlasništva veže za sve čega se dotakne". Danas je Microsoft opsežni korisnik i proizvođač softvera otvorenog koda.To je ukratko posljednja dva desetljeća povijesti otvorenog koda.

Preuzimanje softvera otvorenog koda

Želite li započeti pregledavanje i petljanje s projektima otvorenog koda? Pogledajte stranicu Projekti i aplikacije opensource.com, GitHub-ovu karticu Istraživanje ili Softversku mapu Razvojne mreže za razvojne programere. Ima dosta znatiželjnika bilo koje razine vještine.