Kertiniai atvirojo kodo judėjimo momentai
| |

Kertiniai atvirojo kodo judėjimo momentai

1968 m. buvo įkurtas ARPANET tinklas, Interneto pirmtakas. Nors ARPANET skirtas tyrinėtojams apsikeisti informacija apie projektus ir jų kodus, jis taip pat tampa programinės įrangos atviruoju kodu galimybių demonstravimo scena. 1969 m. Bell laboratorijų tyrinėtojas Kenas Tomsonas (Ken Thomson) parašo pirmąją Unix, daugiaveiksmės, skirtos daugeliui vartotojų operacinės sistemos versiją. Unix kodas buvo laisvai platinamas 8-ajame dešimtmetyje, greitai ši operacinė sistema tampa labai populiari universitetuose ir tyrimų laboratorijose. 1971 m. atvirojo kodo judėjimo pionierius Ričardas Stalmanas (Richard Stallman) prisijungia prie MIT grupės, kūrusios išimtinai nemokamą programinę įrangą. Sukūręs pirmąjį Emacs (1974-1976) teksto redaktorių, R. Stalmanas vėliau (1984) įkuria GNU projektą (sutrumpinimas iš „GNU’s Not Unix“ – GNU nėra Unix), kuris vėliau paskatino nemokamos, Linux pagrįstos operacinės sistemos sukūrimą.

| |

Įvadas

Aštuntajame dešimtmetyje, atsiradus personaliniams kompiuteriams bei padidėjus programinės įrangos paklausai bei sudėtingumui, kompiuterių programinė įranga tampa intelektualios nuosavybės objektu su visais iš to išplaukiančiais apribojimais ir prieštaravimais nusistovėjusiai tradicijai. Atvirojo teksto programinės įrangos judėjimas atsirado kaip pasaulio kompiuterinės bendrijos reakcija į nuosavybinių santykių taikymą kompiuterių programinei įrangai. Nors nuosavybinė programinės įrangos koncepcija yra dominuojanti, tačiau atvirojo teksto programinės įrangos reiškinys egzistuoja jau keliolika metų ir vis stiprėja bei plečiasi. Yra įgyvendinta nemažai sėkmingų atvirojo teksto programinės įrangos projektų, visų pirma Linux, kurie ne tik nenusileidžia nuosavybinei programinei įrangai, tačiau ją lenkia pagal daugelį parametrų. Atsiranda ir sėkmingai konkuruoja nauji verslo modeliai, paremti ne teisių į programinę įrangą monopolizavimu, o kokybiškomis ir profesionaliomis paslaugomis atvirojo teksto programinės įrangos pagrindu.

Gamintojas
| |

Gamintojas

Gamintojas gaminantis vien tik nemokamą programinę įrangą tikrai ilgai neišsilaikys rinkoje – tol kol užteks vidinių resursų. Taigi, aptarsime, kada yra naudinga gaminti bei naudoti gamyboje atvirojo kodo programinę įrangą. Be abejo, atvirojo kodo produktų panaudojimas kuriant naujus produktus naudingas gamintojui. Pirmiausia, vien dėl to, kad galima mokytis iš kitų žmonių patirties, panaudoti ją savo tikslams. Tačiau prieš naudojant atvirojo kodo programų išeities tekstų fragmentus savo tikslams, reiktų atidžiai išstudijuoti licenciją, nes ne visos licencijos leidžia taip elgtis autoriaus kodu. Pati demokratiškiausia licencija šiuo atveju yra BSD, kuri leidžia tai daryti be apribojimų. Tad net Microsoft firma kurdama Windows 2000 bei Windows XP pasinaudojo FreeBSD sistemoje naudojamu TCP/IP steko realizavimu. Pasirodė, kad Bilo Džojaus (Bill Joy) sukurta TCP/IP steko realizacija yra geresnė nei ta, kurią galėjo sukurti 20 tūkstančių Microsoft programuotojų. Taip pat šiuo metu yra nemažai atvirojo kodo bibliotekų, kurios gali būti panaudotos kuriant naujus produktus (pavyzdys, Apache projekto subprojektai).

Užsakovas
| |

Užsakovas

Įsivaizduokime tokią situaciją: organizacija ruošia įvairius Internet sprendimus, organizacijos viduje yra vykdomas projektas – paskirstyto spausdinimo programinė įranga, kuris yra labai svarbus organizacijos vidinei veiklai, tačiau niekada nebus pateiktas rinkai, nes nesutampa su organizacijos verslo kryptimi. Šį projektą vykdo nedidelė grupelė žmonių. Kas bus, jei vieną dieną jie nuspręs pereiti į kitą darbą? Organizacijai gresia nemažai išlaidų, nes reiks apmokyti naujus darbuotojus, perimti pradėtus darbus. Situacija būtų visai kitokia, jei šis projektas būtų atvirojo kodo projektu. Tada tereiks surasti žmones, kurie domėjosi projektu ir iš jų tarpo pasamdyti naujus darbuotojus. Šiuo atveju nereiks išlaidų apmokymams bei pats darbų perėmimas bus sklandus. Kitas svarbus atvirojo kodo programų privalumas – jas galima naudoti laisvai, jų nevaržo legalumo klausimai. Naudojant daugelį komercinių programų reikia sekti, ar nepažeidžiamos licencijos kopijuojant ir naudojant programinę įrangą. Kartais toks sekimas gali pareikalauti nemažai pastangų bei papildomo darbo. Tačiau nesekti, ar nepažeidžiamos licencijų sąlygos negalima, nes sąlygų pažeidimas veda link baudžiamosios atsakomybės.

Vartotojas
| |

Vartotojas

Matyt daugiausia privalumų iš atvirojo kodo programų gauna vartotojas ir tam yra tikrai ne viena priežastis. Pirmiausia, produkto įsigijimo kaina. Atvirojo teksto programos nemokamos ir laisvai dalinamos. Jų nevaržo legalumo klausimai, nereikia skaičiuoti instaliacijų bei kopijų skaičiaus. Be abejo, yra ir kita medalio pusė – programinės įrangos priežiūros ir aptarnavimo kaina, kuri paprastai būna didesnė nei komercinių produktų. Antra, kokybė ir stabilumas. Pakankamai seniai vystomi atvirojo kodo produktai yra gerai „nušlifuoti“ ir patikrinti daugelio entuziastų. Geriausias tokio produkto pavyzdys – Apache voratinklio (Web) serverio programinė įranga. Apache nieko nenusileidžia analogiškiems Microsoft bei Netscape kompanijų produktams. Tad renkantis atvirojo teksto programinę įrangą reiktų pasidomėti jos istorija, versijomis bei atsiliepimais.

| |

Programų kūrimo procesas

Dažniausiai atvirojo teksto programinės įrangos kūrimo procesas yra toks: kažkas inicijuoja projektą, sudaroma kertinė projekto komanda, visa informacija apie projektą patalpinama Internet svetainėje (pavyzdžiui, http://sourceforge.net). Projekto eiga matoma viešai – kiekvienas gali prisijungti ar įnešti savo indėlį. Pagrindinė proceso idėja – dažnos kolegų peržiūros. Tikimasi, kad projektas pritrauks kitų profesionalų dėmesį ir jie prisidės prie projekto tiek, kiek galės – bent jau kodo peržiūromis, testavimu ar patarimais. Tokiu būdu būtų užtikrinta produkto kokybė bei proceso gerinimas.

| |

Privalumai ir trūkumai

Kad geriau suprasti atvirojo teksto programų naudojimo bei kūrimo privalumus, panagrinėsime visas sąveikaujančias šalis. Kertinė dalis – specifinis programų kūrimo procesas. Proceso vykdytojas – programinės įrangos gamintojas, iniciatorius – užsakovas, o rezultatai atitenka į vartotojų rankas. Apžvelgsime privalumus bei trūkumus kiekvienos šalies atžvilgiu.

| |

Licencija negali riboti kitų programinių produktų

Populiariausias licencijos tipas – Pagrindinė viešoji licencija. Komerciniu požiūriu ši licencija daugiausia draudžianti. Pagal ją, kiekvienas gali modifikuoti GPL programą, tačiau darbo rezultatas taip pat turi būti reguliuojamas GPL licencijos, t.y. turi būti platinamas nemokamai ir kartu su kodu. Šios licencijos tikslas – užtikrinti, kad programa ir darbas ją kuriant visada išliktų nemokamas. Tokio tipo yra Linux operacinė sistema. Visai priešinga yra BSD licencija, pagal kurios modelį buvo platinama Berklio universiteto sukurta Unix versija. Iš esmės licencija nieko nedraudžia. Kiekvienas gali modifikuoti programą ir vėliau ją platinti imdamas mokestį, nieko nemokėdamas pirminiam programos kūrėjui. Tad pagal šią licenciją šiek tiek modifikuotą programinę įrangą galima parduoti nors ir už milijoną, jei atsiras pirkėjas. FreeBSD operacinė sistema yra reguliuojama šios licencijos.