summaryrefslogtreecommitdiff
path: root/talermerchantdemos/blog/articles/sr/java-trap.html
blob: 651d7b22306c2d368255ef9d6de1e7d1244f6f79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
<!--#set var="PO_FILE"
 value='<a href="/philosophy/po/java-trap.sr.po">
 https://www.gnu.org/philosophy/po/java-trap.sr.po</a>'
 --><!--#set var="ORIGINAL_FILE" value="/philosophy/java-trap.html"
 --><!--#set var="DIFF_FILE" value=""
 --><!--#set var="OUTDATED_SINCE" value="2009-12-15" -->

<!--#include virtual="/server/header.sr.html" -->
<!-- Parent-Version: 1.77 -->

<!-- This file is automatically generated by GNUnited Nations! -->
<title>Слобода у оковима – замка језика Јава — Пројекат ГНУ — Задужбина за слободни
софтвер</title>

<!--#include virtual="/philosophy/po/java-trap.translist" -->
<!--#include virtual="/server/banner.sr.html" -->
<!--#include virtual="/server/outdated.sr.html" -->
<h2>Слобода у оковима – замка језика Јава</h2>

<p>од <a href="http://www.stallman.org/">Ричарда Сталмана</a></p>

<div class="announcement"><blockquote><h3>Напомена</h3>
<p>Од децембра 2006., у току је <a
href="http://www.fsf.org/news/fsf-welcomes-gpl-java.html">поновно
објављивање платформе за Јаву под ГНУ-овом ОЈЛ</a> од стране фирме Сан. Када
ова промена лиценце буде завршена, надамо се да Јава више неће представљати
замку. Ипак, општи принцип који је овде описан и даље важи, јер и било која
друга неслободна библиотека или програмерска платформа може произвести
сличан проблем. Морамо да научимо лекцију из Јавине историје, како бисмо
убудуће избегли друге замке.</p>

<p>Погледајте и: <a href="/philosophy/javascript-trap.html">Замка ЈаваСписа</a></p>
</blockquote>
</div>

<p>12. април 2004.</p>

<p>
  Ако је ваш програм слободан софтвер, он је у основи етичан, али се морате
чувати извесне замке. Иако је сам по себи слободан, ваш програм може бити
ограничен неслободним софтвером од кога зависи. Пошто је тренутно овај
проблем највише изражен у случају програма писаних у Јави, називамо га
замком језика Јава.
</p>

<p>
  Програм је слободан софтвер ако су његовим корисницима пружене извесне
основне слободе. Укратко, то су: слобода покретања програма, слобода
проучавања и измене изворног кода, слобода поновног расподељивања изворног
кода и бинарног облика, и слобода објављивања побољшаних верзија. (Видети <a
href="/philosophy/free-sw.html">http://www.gnu.org/philosophy/free-sw.html</a>.)
Слобода било ког програма зависи искључиво од смисла његове лиценце.
</p>

<p>
  Али, компликованије питање је да ли се програм може користити у слободном
свету, да ли га могу користити људи који желе да живе слободно. То није
одређено лиценцом самог програма, јер ниједан програм не ради
самостално. Сваки програм зависи од осталих програма. На пример, програм
мора да буде преведен или интерпретиран, па стога зависи од преводиоца или
интерпретатора. Ако се програм преводи у бајткод, онда он зависи од
интерпретатора бајткода. Штавише, њему су потребне библиотеке како би могао
да се извршава, а он може и позивати друге програме који се извршавају у
засебним процесима. Сви ти програми су предуслови за његово
функционисање. Предуслови могу бити неопходни да би се програм уопште
покренуо или могу бити неопходни само за одређене одлике. У сваком случају,
цео програм или његов део не могу да функционишу без предуслова.
</p>

<p>
  Ако су неки од предуслова програма неслободни, то значи да цео програм или
неки његов део не могу да се извршавају на потпуно слободном систему, па тај
програм не може да се употребљава у слободном свету. Наравно, могли бисмо да
поново расподељујемо програм и да држимо његове примерке на нашим машинама,
али нам то није од користи ако он не може да се покрене. Тај програм је
слободан софтвер, али је ефективно спутан својим неслободним предусловима.
</p>

<p>
  Овај проблем се може јавити у свим врстама софтвера, у било ком програмском
језику. На пример, слободни програм који се може извршавати само под
Микрософтовим Виндовсом је очито бескористан у слободном свету. Али, и
софтвер који се извршава под ГНУ-ом са Линуксом такође може бити бескористан
уколико зависи од другог неслободног софтвера. У прошлости су главни узроци
овог проблема били Мотиф (пре него што смо имали Лестиф – <em>LessTif</em>)
и Куте – <em>Qt</em> (пре него што су га његови градитељи учинили слободним
софтвером). Већина 3Д видео картица ради само са неслободним управљачким
програмима, што такође изазива овај проблем. Међутим, тренутно је највећи
извор овог проблема Јава, јер је људима који пишу слободни софтвер Јава
привлачна. Заслепљени својом привученошћу овим језиком, они занемарују
питање предуслова и падају у замку језика Јава.
</p>

<p>
  Саново остварење Јаве је неслободно. Блекдаун (<em>Blackdown</em>) је такође
неслободан; он је адаптација Сановог власничког кода. Стандардне Јавине
библиотеке су такође неслободне. Ми имамо слободна остварења Јаве, као што
је <a href="http://gcc.gnu.org/java/">ГНУ-ов преводилац за Јаву – ГПЈ</a>
(<em>GNU Compiler for Java – GCJ</em>) и <a
href="/software/classpath">ГНУ-ов Класпат</a> (<em>GNU Classpath</em>), али
они још не подржавају све одлике. Још увек заостајемо.
</p>

<p>
  Ако изграђујете програм у језику Јава под Сановом платформом за Јаву,
користићете одлике које су специфичне за Сан а да то и не приметите. Могли
бисте месецима да их користите док тога не постанете свесни, а поновно
писање кода вам може однети још месеци. Највероватније ћете рећи: „поновни
почетак је превише напоран“. Тада ће ваш програм упасти у замку језика Јава
и биће бескористан за слободни свет.
</p>

<p>
  Поуздан начин да избегнете замку језика Јава је да користите само слободна
остварења Јаве на вашем систему. На тај начин ћете одмах открити да ли
користите одлику или библиотеку коју слободни софтвер још не подржава, па
одмах можете да напишете тај део кода изнова.
</p>

<p>
  Сан наставља да изграђује додатне „стандардне“ Јавине библиотеке, које су
скоро све неслободне. Често је чак и спецификација библиотеке трговинска
тајна, а најновија Санова лиценца за те спецификације забрањује објављивање
било чега што је мање од пуног остварења спецификације. (Примера ради,
погледајте <a
href="http://jcp.org/aboutJava/communityprocess/JSPA2.pdf">http://jcp.org/aboutJava/communityprocess/JSPA2.pdf</a>
и <a
href="http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html">http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html</a>).
</p>

<p>
  Срећом, та лиценца спецификације дозвољава издавање остварења у виду
слободног софтвера. Другима који приме библиотеку може бити дозвољено да
мењају то остварење и да не буду приморани да следе спецификацију. Међутим,
тај услов производи ефекат забране коришћења модела изградње који се заснива
на сарадњи за производњу слободног остварења. Употреба тог модела би
захтевала објављивање непотпуних верзија, што онима који су прочитали
спецификацију није дозвољено.
</p>

<p>
  У прво време Покрета за слободни софтвер је било немогуће избећи зависност
од неслободних програма. Пре него што смо имали ГНУ-ов преводилац за Це,
сваки програм у језику Це (било да је слободан или не) је зависио од
неслободног преводиоца за Це. Пре него што смо имали ГНУ-ову библиотеку за
Це, сваки програм је зависио од неслободне библиотеке за Це. Пре него што
смо имали Линукс, прво слободно језгро, сваки програм је зависио од
неслободног језгра. Пре него што смо имали Баш, сваки спис љуске је морао да
буде интерпретиран од стране неслободне љуске. Није се могло избећи да у
почетку наши први програми буду спутани овим зависностима, али смо то
прихватили јер је наш план укључивао и њихово касније спасавање. Наш
свеобухватни циљ, самостални оперативни систем ГНУ, је укључио слободне
замене за све те предуслове. У случају постизања тог циља, сви наши програми
би били спасени. То се и десило. Са системом ГНУ са Линуксом сада можемо да
покрећемо те програме на слободним платформама.
</p>

<p>
  Данас је ситуација другачија. Сада имамо моћне слободне оперативне системе и
много слободних програмерских алата. Можете обављати све ваше послове на
слободној платформи. Нема потребе да прихватате неслободни предуслов чак ни
привремено. Главни разлог због кога људи данас падају у замку је што не
мисле о њој. Најлакше решење проблема замке језика Јава је научити људе да
не упадну у ту замку.
</p>

<p>
  Да бисте сачували ваш код у Јави од замке језика Јава, инсталирајте и
користите слободно окружење за изградњу програма у Јави. Уопште, без обзира
на то који језик користите, отворите четворе очи и проверите да ли су
програми од којих зависи ваш код слободни. Најлакши начин да проверите да ли
је програм слободан је да га потражите у каталогу слободног софтвера (<a
href="http://www.fsf.org/directory">http://www.fsf.org/directory</a>). Ако
програм није у каталогу, можете проверити да ли је његова лиценца (или
његове лиценце) наведена у списку слободних софтверских лиценци (<a
href="http://www.gnu.org/licenses/license-list.html">http://www.gnu.org/licenses/license-list.html</a>).
</p>

<p>
  Ми покушавамо да спасемо заробљене програме у језику Јава, па вас позивамо
да, уколико вам се свиђа програмски језик Јава, помогнете да се изгради
ГНУ-ов Класпат. Користиће нам и испробавање ваших програма у ГНУ-овом
Класпату и пријављивање евентуалних проблема у класама које су већ
остварене. Међутим, завршавање ГНУ-овог Класпата ће потрајати. Ако
неслободне библиотеке буду и даље додаване, можда никада нећемо имати све
најновије библиотеке. Зато вас молимо да не окивате ваш слободни
софтвер. Када будете писали апликативни програм, од почетка га напишите тако
да се извршава под слободним механизмима.
</p>

<h3>Погледајте и:</h3>
<p><a href="/philosophy/sun-in-night-time.html">Чудновата згода о Сану (Сунцу)
у глуво доба</a></p>

<div class="translators-notes">

<!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
 </div>
</div>

<!-- for id="content", starts in the include above -->
<!--#include virtual="/server/footer.sr.html" -->
<div id="footer">
<div class="unprintable">

<p>Молимо вас да шаљете питања у вези са ЗСС-ом и ГНУ-ом на адресу <a
href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>. Постоје и <a
href="/contact/">други начини да се обратите</a> ЗСС-у. Молимо вас да шаљете
неисправне везе и друге исправке (или предлоге) на адресу <a
href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>.</p>

<p>
<!-- TRANSLATORS: Ignore the original text in this paragraph,
        replace it with the translation of these two:

        We work hard and do our best to provide accurate, good quality
        translations.  However, we are not exempt from imperfection.
        Please send your comments and general suggestions in this regard
        to <a href="mailto:web-translators@gnu.org">

        &lt;web-translators@gnu.org&gt;</a>.</p>

        <p>For information on coordinating and submitting translations of
        our web pages, see <a
        href="/server/standards/README.translations.html">Translations
        README</a>. -->
Молимо да погледате <a
href="/server/standards/README.translations.html">ПРОЧИТАЈМЕ за преводе</a>
за више информација о координисању и слању превода овог чланка. (За допринос
српском преводу, корисно је да погледате и <a
href="http://alas.matf.bg.ac.rs/~mr99164/uput/kakoda-prevodim-gnu-ov-veb.html">
КАКОДА прeводим ГНУ-ов веб</a>.)</p>
</div>

<p><b>Ауторска права:</b><br />Copyright &copy; 2004 Richard Stallman</p>

<p>Ова страна је лиценцирана под условима лиценце <a rel="license"
href="http://creativecommons.org/licenses/by-nd/4.0/deed.sr">Creative
Commons Ауторство-Без прерада 4.0</a>.</p>

<!--#include virtual="/server/bottom-notes.sr.html" -->
<div class="translators-credits">

<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
<b>Превод:</b>
<a href="http://alas.matf.bg.ac.rs/~mr99164/index.php">Страхиња Радић</a>,
<a href="http://alas.matf.bg.ac.rs/~mr99164/posta.php"><em>vilinkamen</em>
на серверу <em>mail.ru</em></a>, 2008-2009.</div>

<p class="unprintable"><!-- timestamp start -->
Ажурирано:

$Date: 2017/03/11 10:17:43 $

<!-- timestamp end -->
</p>
</div>
</div>
</body>
</html>