/[www]/www/philosophy/java-trap.bg.html
ViewVC logotype

Annotation of /www/philosophy/java-trap.bg.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.30 - (hide annotations) (download) (as text)
Fri Mar 24 12:24:01 2017 UTC (7 years, 7 months ago) by th_g
Branch: MAIN
CVS Tags: HEAD
Changes since 1.29: +12 -15 lines
File MIME type: text/html
Regenerate HTML from outdated POs.

1 th_g 1.29 <!--#set var="PO_FILE"
2     value='<a href="/philosophy/po/java-trap.bg.po">
3 th_g 1.30 https://www.gnu.org/philosophy/po/java-trap.bg.po</a>'
4 th_g 1.29 --><!--#set var="ORIGINAL_FILE" value="/philosophy/java-trap.html"
5     --><!--#set var="DIFF_FILE" value=""
6 th_g 1.30 --><!--#set var="OUTDATED_SINCE" value="2010-04-04" -->
7 yavor 1.13
8 yavor 1.5 <!--#include virtual="/server/header.bg.html" -->
9 th_g 1.29 <!-- Parent-Version: 1.77 -->
10 yavor 1.10
11     <!-- This file is automatically generated by GNUnited Nations! -->
12 th_g 1.29 <title>Свободен, но в окови - „клопката на Джава“ - Проектът GNU - Фондация за
13     свободен софтуер</title>
14 yavor 1.13
15 th_g 1.28 <!--#include virtual="/philosophy/po/java-trap.translist" -->
16 yavor 1.5 <!--#include virtual="/server/banner.bg.html" -->
17 th_g 1.29 <!--#include virtual="/server/outdated.bg.html" -->
18 ineiev 1.27 <h2>Свободен, но в окови – „клопката на Джава“</h2>
19 yavor 1.1
20 yavor 1.5 <p>от <a href="http://www.stallman.org/">Ричард Столман</a></p>
21 yavor 1.1
22 th_g 1.29 <div class="announcement"><blockquote><h3>Встъпителна бележка</h3>
23 ineiev 1.27 <p>През декември 2006 г., „Сън“ вече са започнали да <a
24     href="http://www.fsf.org/news/fsf-welcomes-gpl-java.html">преиздават своята
25     платформа на Джава под GNU GPL</a>. Очакваме, че когато тази промяна на
26     лиценза завърши, Джава вече няма да представлява клопка. Въпреки това, като
27     цяло, описаният тук въпрос ще остане важен, защото всяка несвободна
28     библиотека или платформа за програмиране може да причини подобен проблем.
29     Трябва да си вземем поука от историята на Джава, така че да избягваме други
30     клопки за в бъдеще.</p>
31 yavor 1.14
32 th_g 1.29 <p>Вижте също и <a href="/philosophy/javascript-trap.html">Клопката на
33     JavaScript</a>.</p>
34     </blockquote>
35 yavor 1.5 </div>
36 yavor 1.1
37 yavor 1.5 <p>12 април 2004 г.</p>
38 yavor 1.1
39     <p>
40 ineiev 1.27 Ако програмата ви е свободен софтуер, то тя по същество е етична.
41     Съществува обаче една клопка, за която трябва да бъдете нащрек. Въпреки че
42     сама по себе си е свободна, програмата ви може да бъде ограничена от
43     несвободния софтуер, от който зависи. Тъй като този проблем днес е най-ярко
44     изразен при програмите на Джава, наричаме го „клопката на Джава“.
45     </p>
46    
47     <p>
48     Една програма е свободен софтуер, ако потребителите ѝ притежават определени
49     съществени свободи. Грубо казано, те са: свободата да изпълняват
50     програмата, свободата да изучават и променят изходния код, свободата да
51     разпространяват изходния и двоичния код, и свободата да публикуват подобрени
52     версии. (Вижте <a
53 th_g 1.29 href="/philosophy/free-sw.html">http://www.gnu.org/philosophy/free-sw.html</a>.)
54 ineiev 1.27 Дали дадена програма е свободен софтуер зависи изцяло от волята, заложена в
55     лиценза ѝ.
56     </p>
57    
58     <p>
59     Дали обаче програмата може да бъде използвана в Свободния свят, дали може да
60     бъде използвана от хора, които са решени да живеят в свобода, е по-сложен
61     въпрос. Това не се определя само от лиценза на програмата, понеже нито една
62     програма не работи в изолация. Всяка програма зависи от други програми.
63     Например, ако дадена програма има нужда да бъде компилирана или
64     интерпретирана, то тя зависи от компилатор или интерпретатор. Ако е
65     компилирана до байткод, то тя зависи от интерпретатор на байткод. Освен
66     това, за да бъде изпълнявана, програмата се нуждае и от библиотеки. Също
67     така програмата би могла да извиква други самостоятелни програми, които се
68     изпълняват като отделни процеси. Всички тези програми са зависимости.
69     Зависимостите може да са необходими, за да бъде изобщо изпълнена програмата,
70     но може и да са нужни само за да функционират някои нейни възможности. Така
71     или иначе, цялата програма или част от нея не може да работи без
72 th_g 1.30 зависимостите.
73 ineiev 1.27 </p>
74    
75     <p>
76     Ако някои от зависимостите на програмата са несвободни, то това означава, че
77     цялата програма или част от нея не може да бъде изпълнена върху напълно
78     свободна система — тя е безполезна в Свободния свят. Разбира се, ние можем
79     да разпространяваме програмата и да притежаваме нейни копия върху машините
80     си, но от това няма голяма полза, щом не можем да я изпълняваме. Тази
81     програма е свободен софтуер, но на практика е окована от своите несвободни
82     зависимости.
83     </p>
84    
85     <p>
86     Този проблем може да възникне с всеки вид софтуер, на какъвто и да е език за
87     програмиране. Например, една свободна програма, която се изпълнява само
88     върху Майкрософт Уиндоус, е очевидно безполезна в Свободния свят. Но
89     софтуерът, който се изпълнява върху GNU/Линукс също може да бъде безполезен,
90     ако зависи от друг несвободен софтуер. В миналото, Мотиф (преди да имаме
91     ЛесТиф) и библиотеката „Кю ти“ (преди разработчиците ѝ да я направят
92     свободен софтуер) бяха основните причини за този проблем. Повечето
93     видеокарти с тримерно ускорение работят пълнофункционално само с несвободни
94     драйвери, което също води до този проблем. Но днес основният източник на
95     проблема е Джава, защото хората, които пишат свободен софтуер, често
96     чувстват, че Джава е секси. Заслепени от привличането си към езика, те
97 th_g 1.30 пренебрегват въпроса със зависимостите и така попадат в „клопката на Джава“.
98 ineiev 1.27 </p>
99    
100     <p>
101     Реализацията на Джава от „Сън“ е несвободна. Стандартните библиотеки на
102     Джава също са несвободни. Ние разполагаме със свободни реализации на Джава,
103     като например <a href="http://gcc.gnu.org/java/"> компилатора на GNU за
104     Джава</a> (GCJ) и <a href="/software/classpath">GNU Класпат</a> (GNU
105     Classpath), но те все още не поддържат напълно всички възможности. Все още
106     наваксваме.
107 yavor 1.10 </p>
108    
109     <p>
110 yavor 1.13 Ако разработвате програма на Джава върху платформата на Джава от „Сън“,
111     съществува опасност да използвате възможности, специфични само за „Сън“, без
112     дори да забележите. След време, когато откриете това, може да са минали
113     месеци, а пренаписването на тези части от програмата може да отнеме още
114     месеци. Бихте могли да кажете: „Това е твърде много работа, за да се
115     започне отначало.“ В този момент програмата ви ще е попаднала в „клопката
116 yavor 1.10 на Джава“. Програмата ви ще е безполезна в Свободния свят.
117     </p>
118    
119     <p>
120 yavor 1.13 Сигурният начин да избегнете „клопката на Джава“ е да разполагате само със
121     свободна реализация на Джава върху системата си. Тогава, ако използвате
122     възможност на Джава или библиотека, която свободния софтуер все още не
123     поддържа, ще откриете това незабавно и ще можете веднага да пренапишете кода
124 th_g 1.30 си.
125 yavor 1.10 </p>
126    
127     <p>
128 ineiev 1.27 „Сън“ продължава да разработва допълнителни „стандартни“ библиотеки на Джава
129     и почти всички те са несвободни. В много случаи, дори спецификацията на
130     библиотеката представлява търговска тайна, а последният лиценз на „Сън“ за
131     тези спецификации забранява издаването на непълни реализации на
132     спецификацията. (Вижте например <a
133 yavor 1.13 href="http://jcp.org/aboutJava/communityprocess/JSPA2.pdf">http://jcp.org/aboutJava/communityprocess/JSPA2.pdf</a>
134 ineiev 1.27 и <a
135 th_g 1.29 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>).
136 yavor 1.10 </p>
137    
138     <p>
139 ineiev 1.27 За щастие, този лиценз на спецификацията позволява издаването на нейна
140     реализация като свободен софтуер. Така на трети лица, получили
141     библиотеката, им е разрешено да я променят и не са задължени да се придържат
142     към спецификацията. Но изискването води до забрана на използването на
143     съвместен модел на разработка при произвеждането на свободна реализация.
144     Използването на такъв модел би довело до публикуване на незавършени версии,
145 th_g 1.30 което не е разрешено на тези, които са чели спецификацията.
146 yavor 1.10 </p>
147    
148     <p>
149 th_g 1.29 В зората на движението за свободен софтуер беше невъзможно да се избегнат
150 ineiev 1.27 зависимостите от несвободни програми. Преди да имаме компилатора на GNU за
151     Си, всяка програма на Си (свободна или не) зависеше от несвободен компилатор
152     за Си. Преди да имаме библиотеката на GNU за Си, всяка програма зависеше от
153     несвободна библиотека за Си. Преди да имаме Линукс, първото свободно ядро,
154     всяка програма зависеше от несвободно ядро. Преди да имаме Bash, всеки
155     скрипт на обвивката трябваше да бъде интерпретиран от несвободна обвивка.
156     Бе неизбежно първите ни програми да бъдат обременени от тези зависимости, но
157     ние приехме това, понеже последващото отърваване на тези програми бе част от
158     нашия план. Нашата голяма цел — самостоятелна операционна система GNU —
159     включваше свободни заместители на всички тези зависимости. Ако постигнехме
160     целта си, тогава всички програми биха били отървани. Така и стана — със
161     системата GNU/Линукс вече можем да изпълняваме тези програми върху свободни
162 th_g 1.30 платформи.
163 yavor 1.10 </p>
164    
165     <p>
166 ineiev 1.27 Ситуацията днес е различна. Сега разполагаме с мощни свободни операционни
167     системи и много свободни средства за програмиране. Каквато и задача да
168     захванете, можете да я извършите върху свободна платформа — няма нужда да
169     приемате несвободна зависимост, даже дори временно. Днес основната причина,
170     поради която хората попадат в клопката е, че не мислят за нея. Най-лесното
171 th_g 1.30 решение на проблема е да се обясни на хората да не попадат в клопката.
172 yavor 1.10 </p>
173    
174     <p>
175 yavor 1.13 За да предпазите кода си от „клопката на Джава“, инсталирайте свободна среда
176     за разработване на Джава и я използвайте. По-общо казано, какъвто и език да
177     използвате, отваряйте си очите на четири и проверявайте дали са свободни
178     програмите, от които зависи кода ви. Най-лесният начин да проверите дали
179     дадена програма е свободна е да погледнете за нея в Указателя на свободен
180     софтуер (<a
181     href="http://www.fsf.org/directory">http://www.fsf.org/directory</a>). Ако
182     програмата не е в указателя, можете да сверите лиценза (или лицензите) ѝ
183     спрямо списъка от лицензи за свободен софтуер (<a
184 yavor 1.10 href="/licenses/license-list.html">http://www.gnu.org/licenses/license-list.html</a>).
185     </p>
186    
187     <p>
188 ineiev 1.27 Опитваме се да отървем програмите на Джава, които са хванати в капана. Така
189     че, ако харесвате езика Джава, каним ви да помогнете при разработването на
190     GNU Класпат. Също би било полезно изпробването на програмите ви с
191     компилатора GCJ и GNU Класпат и докладването на всякакви проблеми, на които
192     сте се натъкнали при вече реализираните класове. Все пак, завършването на
193     GNU Класпат ще отнеме време — ако постоянно продължават да се добавят
194     несвободни библиотеки, може винаги да ни липсват последните от тях. Така
195     че, моля ви, не оковавайте свободния си софтуер. Днес, когато пишете
196     свободна приложна програма, пишете я така, че от самото начало да се
197     изпълнява върху свободни средства.
198 yavor 1.1 </p>
199    
200 yavor 1.5 <h3>Вижте още:</h3>
201 th_g 1.29 <p><a href="/philosophy/sun-in-night-time.html">Любопитният инцидент със „Сън“
202     в късна доба</a></p>
203 yavor 1.10
204 th_g 1.29 <div class="translators-notes">
205 yavor 1.12
206     <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
207     </div>
208 yavor 1.1 </div>
209 yavor 1.13
210 th_g 1.29 <!-- for id="content", starts in the include above -->
211 yavor 1.5 <!--#include virtual="/server/footer.bg.html" -->
212     <div id="footer">
213 th_g 1.28 <div class="unprintable">
214 yavor 1.1
215 th_g 1.29 <p>Моля, отправяйте въпроси относно ФСС и GNU по е-поща: <a
216 th_g 1.28 href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>. Има и други начини за <a
217 th_g 1.29 href="/contact/">връзка</a> с ФСС. Моля, изпращайте доклади за счупени
218     хипервръзки и други корекции (или предложения) на е-поща: <a
219     href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>.</p>
220    
221 yavor 1.1 <p>
222 th_g 1.29 <!-- TRANSLATORS: Ignore the original text in this paragraph,
223     replace it with the translation of these two:
224    
225     We work hard and do our best to provide accurate, good quality
226     translations. However, we are not exempt from imperfection.
227     Please send your comments and general suggestions in this regard
228     to <a href="mailto:web-translators@gnu.org">
229    
230     &lt;web-translators@gnu.org&gt;</a>.</p>
231    
232     <p>For information on coordinating and submitting translations of
233     our web pages, see <a
234     href="/server/standards/README.translations.html">Translations
235     README</a>. -->
236 th_g 1.28 Моля, докладвайте грешки и предложения относно българския превод чрез <a
237     href="mailto:web-translators@gnu.org">&lt;web-translators@gnu.org&gt;</a>.</p>
238 th_g 1.29 <p>Вижте <a href="/server/standards/README.translations.html">Документацията
239     за преводачи</a> за информация за координирането и подаването на преводи на
240     тази статия.</p>
241 th_g 1.28 </div>
242 yavor 1.1
243 th_g 1.29 <p>Copyright &copy; 2004 Ричард Столман</p>
244    
245     <p>Може да копирате и разпространявате тази статия според условията на <a
246 th_g 1.30 rel="license" href="http://creativecommons.org/licenses/by-nd/4.0/">Криейтив
247     Комънс „Признание-Без производни произведения“ 4.0</a>.</p>
248 yavor 1.5
249 th_g 1.28 <!--#include virtual="/server/bottom-notes.bg.html" -->
250 yavor 1.12 <div class="translators-credits">
251    
252     <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
253 th_g 1.30 <b>Превод</b>: Калоян Доганов <a
254 yavor 1.10 href="mailto:kaloian@doganov.org">&lt;kaloian@doganov.org&gt;</a>, 2006 г.</div>
255 th_g 1.28
256 th_g 1.29 <p class="unprintable"><!-- timestamp start -->
257 yavor 1.10 Последно обновяване:
258    
259 th_g 1.30 $Date: 2015/10/03 16:55:22 $
260 yavor 1.1
261     <!-- timestamp end -->
262     </p>
263     </div>
264 ineiev 1.27 </div>
265 yavor 1.1 </body>
266     </html>

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26