summaryrefslogtreecommitdiff
path: root/talermerchantdemos/blog/articles/ru/java-trap.html
diff options
context:
space:
mode:
Diffstat (limited to 'talermerchantdemos/blog/articles/ru/java-trap.html')
-rw-r--r--talermerchantdemos/blog/articles/ru/java-trap.html297
1 files changed, 297 insertions, 0 deletions
diff --git a/talermerchantdemos/blog/articles/ru/java-trap.html b/talermerchantdemos/blog/articles/ru/java-trap.html
new file mode 100644
index 0000000..886ea30
--- /dev/null
+++ b/talermerchantdemos/blog/articles/ru/java-trap.html
@@ -0,0 +1,297 @@
+<!--#set var="ENGLISH_PAGE" value="/philosophy/java-trap.en.html" -->
+
+<!--#include virtual="/server/header.ru.html" -->
+<!-- Parent-Version: 1.77 -->
+
+<!-- This file is automatically generated by GNUnited Nations! -->
+<title>Свободны, но в кандалах — Западня Java - Проект GNU - Фонд свободного
+программного обеспечения</title>
+
+<!--#include virtual="/philosophy/po/java-trap.translist" -->
+<!--#include virtual="/server/banner.ru.html" -->
+<h2>Свободны, но в кандалах — Западня Java</h2>
+
+<p><a href="http://www.stallman.org/">Ричард Столмен</a></p>
+
+
+<div class="announcement"><blockquote><h3>Вводное замечание</h3>
+<p>С тех пор, как была написана эта статья, компания Sun (ныне филиал Oracle)
+<a
+href="http://www.fsf.org/news/fsf-welcomes-gpl-java.html">перевыпустила</a>
+почти всю свою эталонную реализацию платформы Java под Стандартной
+общественной лицензией GNU, и свободная среда разработки для Java теперь
+есть. Таким образом, язык Java как таковой больше не западня.</p>
+
+<p>Однако вы должны быть осторожны, поскольку не всякая платформа Java
+свободна. Sun продолжает распространять в исполняемом виде платформу Java,
+которая не свободна, и другие компании тоже так поступают.</p>
+
+<p>Свободная среда для Java называется IcedTea; она включает в себя исходный
+текст, освобожденный компанией Sun. Так что это та реализация, которой вам
+следует пользоваться. Многие дистрибутивы GNU/Linux поставляются с IcedTea,
+но некоторые включают в себя несвободные платформы Java. (Добавлено в
+октябре 2015&nbsp;года: свободная реализация Java во многих дистрибутивах
+GNU/Linux известна как OpenJDK.)</p>
+
+<p>Чтобы надежно гарантировать, что ваши программы на Java будут прекрасно
+выполняться в свободной среде, вам нужно разрабатывать их с помощью
+IcedTea. Теоретически платформы Java должны быть совместимы, но они
+совместимы не на сто процентов.</p>
+
+<p>Кроме того, есть несвободные программы, в названии которых есть слово
+&ldquo;Java&rdquo;, такие, как JavaFX, и есть несвободные пакеты Java,
+которые вы, возможно, сочли бы заманчивыми, но должны отвергать. Так что
+проверяйте лицензии всех пакетов, какими только вы планируете
+воспользоваться. Если вы пользуетесь Swing, убедитесь, вы пользуетесь
+свободной версией&nbsp;&mdash; той, что входит в состав IcedTea. (Добавлено
+в октябре 2015&nbsp;года: была выпущена свободная замена JavaFX под
+названием OpenFX.)</p>
+
+<p>Не считая этих деталей, связанных с Java, общая проблема, описанная здесь,
+остается важной, потому что несвободная библиотека или платформа
+программирования может создать подобную же проблему. Из истории Java мы
+должны извлечь урок, чтобы в будущем избежать других ловушек.</p>
+
+<p>См. также <a href="/philosophy/javascript-trap.html"> Западня
+JavaScript</a>.</p>
+</blockquote>
+</div>
+
+<p>12 апреля 2004&nbsp;года</p>
+
+<p>
+ Если ваша программа свободна, она в основном этична&nbsp;&mdash; но есть
+западня, которой вы должны остерегаться. Ваша программа, даже если она сама
+по себе свободна, может быть ограничена несвободными программами, от которых
+она зависит. Поскольку наиболее ярко эта проблема выражена сегодня для
+программ на Java, мы называем это западней Java.
+</p>
+
+<p>
+ Программа свободна, если у ее пользователей есть определенные жизненно
+важные свободы. Грубо говоря, это свобода выполнять программу, свобода
+изучать и править исходный текст, свобода перераспространять исходный текст
+и двоичные файлы, а также свобода публиковать улучшенные версии. (См. <a
+href="/philosophy/free-sw.html">
+http://www.gnu.org/philosophy/free-sw.html</a>.) Является ли данная
+программа в виде исходного текста свободной, полностью определяется смыслом
+ее лицензии.
+</p>
+
+<p>
+ Может ли программа применяться в мире свободы&nbsp;&mdash; применяться
+людьми, которые намерены жить свободно,&mdash; более сложный вопрос. Это
+определяется не только собственной лицензией программы, потому что никакая
+программа не работает изолированно. Всякая программа зависит от других
+программ. Например, программу нужно скомпилировать или интерпретировать, так
+что она зависит от компилятора или интерпретатора. Если она компилируется в
+промежуточный псевдокод, то она зависит от интерпретатора псевдокода. Более
+того, чтобы выполняться, ей нужны библиотеки, и она может вызывать другие
+самостоятельные программы, которые выполняются в других процессах. Все эти
+программы&nbsp;&mdash; зависимости. Зависимости могут быть необходимы для
+того, чтобы программа могла хоть как-то выполняться, или только для доступа
+к определенным возможностям. Как бы то ни было, вся программа или ее часть
+не может функционировать без зависимостей.
+</p>
+
+<p>
+ Если какая-то из зависимостей программы несвободна, это значит, что вся или
+часть программы не сможет выполняться в полностью свободной
+системе&nbsp;&mdash; ее нельзя использовать в мире свободы. Разумеется, мы
+могли бы перераспространять эту программу и копировать ее на свои машины, но
+пользы от этого не много, потому что она не станет работать. Эта программа
+свободна, но фактически она скована несвободными зависимостями.
+</p>
+
+<p>
+ Эта проблема может возникнуть в программах любого рода, на любом
+языке. Например, свободная программа, которая выполняется только под
+Microsoft Windows, явно бесполезна для мира свободы. Но программа, которая
+выполняется под GNU/Linux, тоже может быть бесполезна, если она зависит от
+других несвободных программ. В прошлом Motif (до того, как у нас появился
+Lesstif) и Qt (до того, как его разработчики сделали его свободным) были
+серьезными источниками этой проблемы. Большинство видеоплат с трехмерной
+графикой в полном объеме работают только с несвободными драйверами, что тоже
+создает эту проблему. Но сегодня серьезнейший источник этой
+проблемы&nbsp;&mdash; Java, потому что люди, которые пишут свободные
+программы, часто испытывают влечение к Java. Ослепленные притягательностью
+языка, они закрывают глаза на проблему зависимостей и попадают в западню
+Java.
+</p>
+
+<p>
+ Реализация Java компании Sun несвободна. Стандартные библиотеки Java тоже
+несвободны. Свободные реализации Java у нас есть&nbsp;&mdash; такие, как <a
+href="http://gcc.gnu.org/java/">компилятор GNU языка Java</a> (GCJ) и <a
+href="/software/classpath">GNU Classpath</a>,&mdash; но они поддерживают еще
+не все возможности. Мы пока только догоняем.
+</p>
+
+<p>
+ Если вы разрабатываете программу на Java с помощью платформы Java компании
+Sun, вы, скорее всего, будете пользоваться возможностями, доступными только
+для платформы Sun, даже не замечая этого. К тому времени, как вы обнаружите
+это, вы, возможно, будете пользоваться ими уже многие месяцы, и на переделку
+тоже уйдут месяцы. Может оказаться, что вы скажете: &ldquo;Это слишком
+большая работа, чтобы начинать ее заново&rdquo;. Тогда ваша программа
+провалится в западню Java; ею нельзя будет пользоваться в мире свободы.
+</p>
+
+<p>
+ Надежный способ избежать западни Java&nbsp;&mdash; устанавливать в своей
+системе только свободную реализацию Java. Тогда, если вы воспользуетесь
+особенностью языка или библиотеки, которую свободные программы пока не
+поддерживают, вы сразу же это обнаружите, и вы сможете немедленно переписать
+эту часть программы.
+</p>
+
+<p>
+ Sun продолжает разрабатывать дополнительные &ldquo;стандартные&rdquo;
+библиотеки Java, и почти все они несвободны; во многих случаях даже
+спецификации библиотеки являются коммерческой тайной, и последняя лицензия
+Sun на эти спецификации запрещает выпуск чего бы то ни было, кроме полной
+реализации спецификаций. (См., например, <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>
+ На заре движения за свободное программное обеспечение было невозможно
+избежать зависимости от несвободных программ. До того, как у нас появился
+компилятор Си GNU, каждая программа на Си (свободная или нет) зависела от
+несвободного компилятора Си. До того, как у нас появилась библиотека Си GNU,
+каждая программа зависела от несвободной библиотеки Си. До появления у нас
+Linux, первого свободного ядра, каждая программа зависела от несвободного
+ядра. До того, как у нас появился BASH, каждую программу для командного
+интерпретатора приходилось выполнять в несвободном командном
+интерпретаторе. Наши первые программы изначально были опутаны этими
+зависимостями, это было неизбежно; но мы пошли на это, потому что в наши
+планы входило последующее избавление наших программ. Наша высшая
+цель&nbsp;&mdash; самодостаточная операционная система GNU&nbsp;&mdash;
+содержала свободные замены всех этих зависимостей; если бы мы достигли цели,
+все наши программы были бы спасены. Так и случилось: благодаря системе
+GNU/Linux сейчас мы можем выполнять эти программы на свободных платформах.
+</p>
+
+<p>
+ Сегодня ситуация другая. Теперь у нас есть мощные свободные операционные
+системы и большое количество свободных средств разработки. Какую бы работу
+вы ни хотели выполнить, вы можете делать это на свободной платформе; нет
+необходимости соглашаться даже на временную несвободную зависимость. Главная
+причина, по которой люди попадают сегодня в западню&nbsp;&mdash; то, что они
+не думают об этом. Проще всего эту проблему решить, приучая людей ее
+распознавать и не попадать в нее.
+</p>
+
+<p>
+ Чтобы предохранить ваши программы на Java от этой западни, установите
+свободную среду разработки Java и пользуйтесь ею. Вообще, каким бы языком вы
+ни пользовались, смотрите в оба и проверяйте, свободны ли пакеты, от которых
+зависят ваши программы. Самый простой способ проверить, является ли
+программа свободной&nbsp;&mdash; поискать ее в Каталоге свободных программ
+(<a
+href="http://www.fsf.org/directory">http://www.fsf.org/directory</a>). Если
+программы в каталоге нет, можно проверить, перечислены ли ее лицензии в
+списке лицензий свободных программ (<a href="/licenses/license-list.html">
+http://www.gnu.org/licenses/license-list.html</a>).
+</p>
+
+<p>
+ Мы пытаемся спасти завязнувшие программы на Java, так что если вам нравится
+этот язык, мы приглашаем вас помочь в разработке GNU Classpath. Если вы
+испытаете свои программы с компилятором GCJ и GNU Classpath и расскажете о
+любых проблемах, с которыми вы столкнетесь в уже реализованных классах, это
+тоже будет полезно. Однако до конца разработки GNU Classpath пройдет
+какое-то время; если несвободные библиотеки будут по-прежнему добавляться, у
+нас, может быть, никогда не будет самых последних из них. Так что не
+сажайте, пожалуйста, свои свободные программы в кандалы. Когда сегодня вы
+будете писать прикладную программу, пишите ее так, чтобы она с самого начала
+выполнялась на свободных средствах.
+</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.ru.html" -->
+<div id="footer">
+<div class="unprintable">
+
+<p>Пожалуйста, присылайте общие запросы фонду и GNU по адресу <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="mailto:web-translators@gnu.org">&lt;web-translators@gnu.org&gt;</a>.
+</p><p>Сведения по координации и предложениям переводов наших статей см. в
+<a href="/server/standards/README.translations.html">&ldquo;Руководстве по
+переводам&rdquo;</a>.</p>
+</div>
+
+<p>Copyright &copy; 2004, 2010, 2015 Richard Stallman</p><p>Copyright &copy;
+2012, 2013, 2015 Free Software Foundation, Inc. (translation)</p>
+
+<p>Это произведение доступно по <a rel="license"
+href="http://creativecommons.org/licenses/by-nd/4.0/deed.ru">лицензии
+Creative Commons Attribution-NoDerivs (<em>Атрибуция&nbsp;&mdash; Без
+производных произведений</em>) 4.0 Всемирная</a>.</p>
+
+<!--#include virtual="/server/bottom-notes.ru.html" -->
+<div class="translators-credits">
+
+<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
+<em>Внимание! В подготовке этого перевода участвовал только один человек. Вы
+можете существенно улучшить перевод, если проверите его и расскажете о
+найденных ошибках в <a
+href="http://savannah.gnu.org/projects/www-ru">русской группе переводов
+gnu.org</a>.</em></div>
+
+<p class="unprintable"><!-- timestamp start -->
+Обновлено:
+
+$Date: 2015/10/03 17:28:16 $
+
+<!-- timestamp end -->
+</p>
+</div>
+</div>
+</body>
+</html>