Ako programata vi e svoboden softuer, to tia po sushtestvo e etichna.
Sushtestvuva obache edna klopka, za koiato triabva da budete nashtrek.
Vupreki che sama po sebe si e svobodna, programata vi mozhe da bude
ogranichena ot nesvobodniia softuer, ot koito zavisi. Tui kato tozi
problem dnes e nai-iarko izrazen pri programite na Dzhava, narichame go
„klopkata na Dzhava“.
Edna programa e svoboden softuer, ako potrebitelite ѝ pritezhavat
opredeleni sushtestveni svobodi. Grubo kazano, te sa: svobodata da
izpulniavat programata, svobodata da izuchavat i promeniat izhodniia
kod, svobodata da razprostraniavat izhodniia i dvoichniia kod, i
svobodata da publikuvat podobreni
versii. (Vizhte
http://www.gnu.org/philosophy/free-sw.html.) Dali dadena
programa e svoboden softuer zavisi iztsialo ot voliata, zalozhena v
litsenza ѝ.
Dali obache programata mozhe da bude izpolzvana v Svobodniia sviat, dali
mozhe da bude izpolzvana ot hora, koito sa resheni da zhiveiat v
svoboda, e po-slozhen vupros. Tova ne se opredelia samo ot litsenza na
programata, ponezhe nito edna programa ne raboti v izolatsiia. Vsiaka
programa zavisi ot drugi programi. Naprimer, ako dadena programa
ima nuzhda da bude kompilirana ili interpretirana, to tia zavisi ot
kompilator ili interpretator. Ako e kompilirana do baitkod, to tia
zavisi ot interpretator na baitkod. Osven tova, za da bude
izpulniavana, programata se nuzhdae i ot biblioteki. Sushto taka
programata bi mogla da izvikva drugi samostoiatelni programi, koito
se izpulniavat kato otdelni protsesi. Vsichki tezi programi sa
zavisimosti. Zavisimostite mozhe da sa neobhodimi, za da bude izobshto
izpulnena programata, no mozhe i da sa nuzhni samo za da funktsionirat
niakoi neini vuzmozhnosti. Taka ili inache, tsialata programa ili chast
ot neia ne mozhe da raboti bez zavisimostite.
Ako niakoi ot zavisimostite na programata sa nesvobodni, to tova
oznachava, che tsialata programa ili chast ot neia ne mozhe da bude
izpulnena vurhu napulno svobodna sistema — tia e bezpolezna v
Svobodniia sviat. Razbira se, nie mozhem da razprostraniavame
programata i da pritezhavame neini kopiia vurhu mashinite si, no ot
tova niama goliama polza, shtom ne mozhem da ia izpulniavame. Tazi
programa e svoboden softuer, no na praktika e okovana ot svoite
nesvobodni zavisimosti.
Tozi problem mozhe da vuznikne s vseki vid softuer, na kakuvto i da
e ezik za programirane. Naprimer, edna svobodna programa, koiato se
izpulniava samo vurhu Maikrosoft Uindous, e ochevidno bezpolezna v
Svobodniia sviat. No softuerut, koito se izpulniava vurhu GNU/Linuks
sushto mozhe da bude bezpolezen, ako zavisi ot drug nesvoboden softuer.
V minaloto, Motif (predi da imame LesTif) i bibliotekata „Kyu ti“
(predi razrabotchitsite ѝ da ia napraviat svoboden softuer) biaha
osnovnite prichini za tozi problem. Povecheto videokarti s trimerno
uskorenie rabotiat pulnofunktsionalno samo s nesvobodni draiveri,
koeto sushto vodi do tozi problem. No dnes osnovniiat iztochnik na
problema e Dzhava, zashtoto horata, koito pishat svoboden softuer, chesto
chuvstvat, che Dzhava e seksi. Zaslepeni ot privlichaneto si kum ezika,
te prenebregvat vuprosa sus zavisimostite i taka popadat v „klopkata
na Dzhava“.
Realizatsiiata na Dzhava ot „Sun“ e nesvobodna. Tazi ot „Blekdaun“
sushto e nesvobodna, tia e adaptatsiia na sobstvenicheskiia kod na „Sun“.
Standartnite biblioteki na Dzhava sushto sa nesvobodni. Nie
razpolagame sus svobodni realizatsii na Dzhava, kato naprimer
kompilatora na GNU za Dzhava (GCJ) i GNU Klaspat (GNU Classpath), no
te vse oshte ne poddurzhat napulno vsichki vuzmozhnosti. Vse oshte
navaksvame.
Ako razrabotvate programa na Dzhava vurhu platformata na Dzhava ot
„Sun“, sushtestvuva opasnost da izpolzvate vuzmozhnosti, spetsifichni
samo za „Sun“, bez dori da zabelezhite. Sled vreme, kogato otkriete
tova, mozhe da sa minali mesetsi, a prenapisvaneto na tezi chasti ot
programata mozhe da otneme oshte mesetsi. Bihte mogli da kazhete: „Tova
e tvurde mnogo rabota, za da se zapochne otnachalo.“ V tozi moment
programata vi shte e popadnala v „klopkata na Dzhava“. Programata vi shte
e bezpolezna v Svobodniia sviat.
Sigurniiat nachin da izbegnete „klopkata na Dzhava“ e da razpolagate samo
sus svobodna realizatsiia na Dzhava vurhu sistemata si. Togava, ako
izpolzvate vuzmozhnost na Dzhava ili biblioteka, koiato svobodniia
softuer vse oshte ne poddurzha, shte otkriete tova nezabavno i shte mozhete
vednaga da prenapishete koda si.
„Sun“ produlzhava da razrabotva dopulnitelni „standartni“ biblioteki
na Dzhava i pochti vsichki te sa nesvobodni. V mnogo sluchai, dori
spetsifikatsiiata na bibliotekata predstavliava turgovska taina, a
posledniiat litsenz na „Sun“ za tezi spetsifikatsii zabraniava izdavaneto
na nepulni realizatsii na spetsifikatsiiata. (Vizhte naprimer
http://jcp.org/aboutJava/communityprocess/JSPA2.pdf i
http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html).
Za shtastie, tozi litsenz na spetsifikatsiiata pozvoliava izdavaneto na
neina realizatsiia kato svoboden softuer. Taka na treti litsa,
poluchili bibliotekata, im e razresheno da ia promeniat i ne sa
zadulzheni da se pridurzhat kum spetsifikatsiiata. No iziskvaneto vodi
do zabrana na izpolzvaneto na suvmesten model na razrabotka pri
proizvezhdaneto na svobodna realizatsiia. Izpolzvaneto na takuv model
bi dovelo do publikuvane na nezavursheni versii, koeto ne e razresheno
na tezi, koito sa cheli spetsifikatsiiata.
V zorata na Dvizhenieto za svoboden softuer beshe nevuzmozhno da se
izbegnat zavisimostite ot nesvobodni programi. Predi da imame
kompilatora na GNU za Si, vsiaka programa na Si (svobodna ili ne)
zaviseshe ot nesvoboden kompilator za Si. Predi da imame
bibliotekata na GNU za Si, vsiaka programa zaviseshe ot nesvobodna
biblioteka za Si. Predi da imame Linuks, purvoto svobodno iadro,
vsiaka programa zaviseshe ot nesvobodno iadro. Predi da imame Bash,
vseki skript na obvivkata triabvashe da bude interpretiran ot
nesvobodna obvivka. Be neizbezhno purvite ni programi da budat
obremeneni ot tezi zavisimosti, no nie priehme tova, ponezhe
posledvashtoto oturvavane na tezi programi be chast ot nashiia plan.
Nashata goliama tsel — samostoiatelna operatsionna sistema GNU
— vklyuchvashe svobodni zamestiteli na vsichki tezi zavisimosti.
Ako postignehme tselta si, togava vsichki programi biha bili oturvani.
Taka i stana — sus sistemata GNU/Linuks veche mozhem da
izpulniavame tezi programi vurhu svobodni platformi.
Situatsiiata dnes e razlichna. Sega razpolagame s moshtni svobodni
operatsionni sistemi i mnogo svobodni sredstva za programirane.
Kakvato i zadacha da zahvanete, mozhete da ia izvurshite vurhu svobodna
platforma — niama nuzhda da priemate nesvobodna zavisimost, dazhe
dori vremenno. Dnes osnovnata prichina, poradi koiato horata popadat v
klopkata e, che ne misliat za neia. Nai-lesnoto reshenie na problema e
da se obiasni na horata da ne popadat v klopkata.
Za da predpazite koda si ot „klopkata na Dzhava“, instaliraite svobodna
sreda za razrabotvane na Dzhava i ia izpolzvaite. Po-obshto kazano,
kakuvto i ezik da izpolzvate, otvariaite si ochite na chetiri i
proveriavaite dali sa svobodni programite, ot koito zavisi koda vi.
Nai-lesniiat nachin da proverite dali dadena programa e svobodna e da
poglednete za neia v Ukazatelia na svoboden softuer
(http://www.fsf.org/directory).
Ako programata ne e v ukazatelia, mozhete da sverite litsenza (ili
litsenzite) ѝ spriamo spisuka ot litsenzi za svoboden softuer
(http://www.gnu.org/licenses/license-list.html).
Opitvame se da oturvem programite na Dzhava, koito sa hvanati v
kapana. Taka che, ako haresvate ezika Dzhava, kanim vi da pomognete
pri razrabotvaneto na GNU Klaspat. Sushto bi bilo polezno
izprobvaneto na programite vi s kompilatora GCJ i GNU Klaspat i
dokladvaneto na vsiakakvi problemi, na koito ste se natuknali pri
veche realiziranite klasove. Vse pak, zavurshvaneto na GNU Klaspat shte
otneme vreme — ako postoianno produlzhavat da se dobaviat
nesvobodni biblioteki, mozhe vinagi da ni lipsvat poslednite ot tiah.
Taka che, molia vi, ne okovavaite svobodniia si softuer. Dnes, kogato
pishete svobodna prilozhna programa, pishete ia taka, che ot samoto
nachalo da se izpulniava vurhu svobodni sredstva.
Avtor: Richard Stolman — 12 april 2004 g.
Prevod: Kaloian Doganov
Avtorski prava © 2004 Richard Stolman
Doslovnoto kopirane i razprostranenie na tsialata statiia sa pozvoleni za vseki tip nositel bez nuzhda ot zaplashtaneto na taksi, stiga tazi belezhka da bude zapazena.