Kaj je odprtokodna programska oprema in zakaj je pomembno?
Geeksi pogosto opisujejo programe kot »open source« ali »free software«. Če se sprašujete, kaj točno pomenijo ti izrazi in zakaj so pomembni, preberite nadaljevanje. (Ne, "brezplačna programska oprema" ne pomeni samo, da jo lahko brezplačno prenesete.)
Ne glede na to, ali je program odprtokoden ali ne, je pomembno le za razvijalce, kar je za uporabnike prav tako pomembno. Licence za odprtokodno programsko opremo uporabnikom dajejo svoboščine, ki jih drugače ne bi imele.
Zasluge za sliko: Quinn Dombrowski na Flickru
Opredelitev odprte kode
Če je program odprtokoden, je njegova izvorna koda prosto dostopna njegovim uporabnikom. Njegovi uporabniki - in kdorkoli drug - imajo možnost vzeti to izvorno kodo, jo spremeniti in distribuirati svoje različice programa. Uporabniki lahko tudi distribuirajo toliko kopij izvirnega programa, kot želijo. Vsakdo lahko uporablja program za kakršen koli namen; programske opreme ni licenčnih pristojbin ali drugih omejitev. OSI ima podrobnejšo opredelitev „odprte kode“ na svoji spletni strani.
Ubuntu Linux je na primer odprtokodni operacijski sistem. Ubuntu lahko prenesete, ustvarite toliko kopij, kot želite, in jih posredujete svojim prijateljem. Ubuntu lahko namestite na neomejeno število računalnikov. Lahko ustvarite remixe Ubuntu namestitvenega diska in jih distribuirate. Če ste bili še posebej motivirani, lahko prenesete izvorno kodo programa v Ubuntuju in jo spremenite, ustvarite lastno prilagojeno različico tega programa - ali samega Ubuntuja. Odprtokodne licence vam omogočajo, da to storite, medtem ko vam zaprte licence omejujejo.
Nasprotno od odprtokodne programske opreme je zaprta programska oprema, ki ima licenco, ki omejuje uporabnike in ohranja izvorno kodo..
Firefox, Chrome, OpenOffice, Linux in Android so nekateri priljubljeni primeri odprtokodne programske opreme, medtem ko je Microsoft Windows verjetno najbolj priljubljen del zaprte programske opreme..
Open Source vs. Prosta programska oprema
Odprtokodne aplikacije so na splošno prosto dostopne - čeprav razvijalcem nič ne preprečuje, da bi zaračunaval kopije programske opreme, če omogočajo nadaljnjo distribucijo aplikacije in njeno izvorno kodo..
Vendar se to ne nanaša na "prosto programje". "Prosti" v prosti programski opremi pomeni "svoboden kot v svobodi", ne "brezplačen kot v pivu". Kamp za proste programe, ki ga vodijo Richard Stallman in Free Software Foundation, se osredotoča na etiko in moralo uporabe programske opreme, ki je lahko nadzoruje in spreminja uporabnik. Z drugimi besedami, tabor proste programske opreme se osredotoča na svoboščine uporabnikov.
Richard Stallman. Slika Fripoga na Flickru.
Z odprtokodnim gibanjem programske opreme smo se osredotočili na bolj pragmatične razloge za izbiro te vrste programske opreme. Zagovorniki odprtih virov so se želeli osredotočiti na praktične koristi uporabe odprtokodne programske opreme, ki bi bila bolj privlačna za podjetja kot za etiko in moralo.
Navsezadnje zagovorniki odprtokodnega in prostega programja razvijajo isto vrsto programske opreme, vendar se ne strinjajo glede sporočanja.
Vrste licenc
Obstaja veliko različnih licenc, ki jih uporabljajo odprtokodni projekti, odvisno od tega, kaj razvijalci raje za svoj program.
GPL ali GNU General Public License se pogosto uporablja v mnogih odprtokodnih projektih, kot je Linux. Poleg vseh zgornjih definicij odprte kode so pogoji GPL določali, da morajo, če kdo spreminja program odprte kode in distribuira izpeljano delo, tudi distribuirati izvorno kodo za svoje izpeljano delo. Z drugimi besedami, nihče ne more vzeti odprte kode in iz njega ustvariti zaprtega programa - svoje spremembe morajo sprostiti nazaj v skupnost. Microsoft je GPL navedel kot „virusno“, saj programe, ki vsebujejo GPL kodo, prisili, da izdajo lastno izvorno kodo. Seveda se lahko razvijalci programa odločijo, da ne bodo uporabljali GPL kode, če je to težava.
Nekatere druge licence, kot je licenca BSD, postavljajo manj omejitev za razvijalce. Če je program licenciran pod licenco BSD, lahko vsakdo vključi izvorno kodo programa v drug program. Ni jim treba sprostiti svojih sprememb nazaj v skupnost. Nekateri vidijo, da je to še bolj „prosto“ kot licenca GPL, saj razvijalcem daje svobodo, da vključijo kodo v svoje zaprte programe, medtem ko nekateri menijo, da je manj „svobodna“, ker odvzema pravice. od končnega uporabnika izpeljanega programa.
Koristi za uporabnike
To ni vse suho, nepomembno, kar je pomembno le za razvijalce. Najbolj očitna korist odprtokodne programske opreme je, da jo lahko uporabljate brezplačno. Primer zgoraj navedenega Ubuntu Linuxa je jasen - za razliko od Windows lahko namestite ali distribuirate toliko kopij Ubuntuja, kot želite, brez omejitev. To so lahko še posebej koristni strežniki - če nastavljate strežnik, lahko na njem namestite Linux. če nastavljate virtualizirano skupino strežnikov, lahko preprosto podvojite en Ubuntu strežnik. Ni vam treba skrbeti za licenciranje in koliko primerov Linuxa lahko izvajate.
Odprtokodni program je tudi bolj prilagodljiv. Na primer, nov vmesnik operacijskega sistema Windows 8 je razočaral številne dolgotrajne uporabnike operacijskega sistema Windows. Ker je Windows zaprt vir, noben uporabnik operacijskega sistema Windows ne more vzeti vmesnika sistema Windows 7, ga spremeniti in narediti, da deluje pravilno v okolju Windows 8. (Nekateri uporabniki operacijskega sistema Windows poskušajo, vendar je to trden postopek obrnjenega inženiringa in spreminjanja binarnih datotek. )
Ko namizje Linuxa, kot je Ubuntu, uvaja nov namizni vmesnik, ki ga nekateri uporabniki niso ljubitelji, imajo uporabniki več možnosti. Na primer, ko je bil izdan GNOME 3, so bili številni uporabniki računalnikov Linux izklopljeni. Nekateri so vzeli kodo v staro različico, GNOME 2, in jo spremenili, da bi jo poganjali na najnovejših distribucijah Linuxa - to je MATE. Nekateri so vzeli kodo v GNOME 3 in jo spremenili, da bi delovali na način, ki ga želijo - to je Cinnamon. Nekateri uporabniki so preklopili na obstoječa nadomestna namizja. Če bi bil Windows odprtokoden, bi imeli uporabniki sistema Windows 8 večjo izbiro in prilagodljivost. Oglejte si CyanogenMod, priljubljeno distribucijo Android, ki jo poganja skupnost, in dodajajo funkcije in podporo za nove naprave.
Odprtokodna programska oprema omogoča tudi razvijalcem, da "stojijo na ramenih velikanov" in ustvarijo lastno programsko opremo. Pričnite Android in Chrome OS, ki sta operacijski sistem, zgrajen na Linuxu in drugi odprtokodni programski opremi. Jedro Appleovega OS X - in s tem iOS - je bilo zgrajeno tudi na odprti kodi. Valve besno dela na prenosu svoje igralne platforme Steam na Linux, saj bi jim to omogočilo, da ustvarijo lastno strojno opremo in nadzorujejo svojo usodo na način, ki ni možen na Microsoftovih operacijskih sistemih Windows..
To ni izčrpen opis - o tej temi so bile napisane celotne knjige - vendar bi morali imeti boljšo predstavo o tem, kaj je odprtokodna programska oprema in zakaj je za vas koristna.