Читаем Free Software, Free Society: selected essays of Richard M. Stallman. 2nd edition. полностью

Since this article was first published, on 12 April 2004, Sun has relicensed most of its Java platform reference implementation under the GNU General Public License, and there is now a free development environment for Java. Thus, the Java language as such is no longer a trap.

You must be careful, however, because not every Java platform is free. Sun continues distributing an executable Java platform which is nonfree, and other companies do so too.

The free environment for Java is called IcedTea; the source code Sun freed is included in that. So that is the one you should use. Many GNU/Linux distributions come with IcedTea, but some include nonfree Java platforms.

To reliably ensure your Java programs run fine in a free environment, you need to develop them using IcedTea. Theoretically the Java platforms should be compatible, but they are not compatible 100 percent.

In addition, there are nonfree programs with “Java” in their name, such as JavaFX, and there are nonfree Java packages you might find tempting but need to reject. So check the licenses of whatever packages you plan to use. If you use Swing, make sure to use the free version, which comes with IcedTea.

Aside from those Java specifics, the general issue described here remains important, because any nonfree library or programming platform can cause a similar problem. We must learn a lesson from the history of Java, so we can avoid other traps in the future.


If your program is free software, it is basically ethical—but there is a trap you must be on guard for. Your program, though in itself free, may be restricted by nonfree software that it depends on. Since the problem is most prominent today for Java programs, we call it the Java Trap.

A program is free software if its users have certain crucial freedoms. Roughly speaking, they are: the freedom to run the program, the freedom to study and change the source, the freedom to redistribute the source and binaries, and the freedom to publish improved versions. (See “The Free Software Definition,” on p. 3.) Whether any given program in source form is free software depends solely on the meaning of its license.

Whether the program can be used in the Free World, used by people who mean to live in freedom, is a more complex question. This is not determined by the program’s own license alone, because no program works in isolation. Every program depends on other programs. For instance, a program needs to be compiled or interpreted, so it depends on a compiler or interpreter. If compiled into byte code, it depends on a byte-code interpreter. Moreover, it needs libraries in order to run, and it may also invoke other separate programs that run in other processes. All of these programs are dependencies. Dependencies may be necessary for the program to run at all, or they may be necessary only for certain features. Either way, all or part of the program cannot operate without the dependencies.

If some of a program’s dependencies are nonfree, this means that all or part of the program is unable to run in an entirely free system—it is unusable in the Free World. Sure, we could redistribute the program and have copies on our machines, but that’s not much good if it won’t run. That program is free software, but it is effectively shackled by its nonfree dependencies.

Перейти на страницу:

Похожие книги

Африканский дневник
Африканский дневник

«Цель этой книги дать несколько картинок из жизни и быта огромного африканского континента, которого жизнь я подслушивал из всего двух-трех пунктов; и, как мне кажется, – все же подслушал я кое-что. Пребывание в тихой арабской деревне, в Радесе мне было огромнейшим откровением, расширяющим горизонты; отсюда я мысленно путешествовал в недра Африки, в глубь столетий, слагавших ее современную жизнь; эту жизнь мы уже чувствуем, тысячи нитей связуют нас с Африкой. Будучи в 1911 году с женою в Тунисии и Египте, все время мы посвящали уразуменью картин, встававших перед нами; и, собственно говоря, эта книга не может быть названа «Путевыми заметками». Это – скорее «Африканский дневник». Вместе с тем эта книга естественно связана с другой моей книгою, изданной в России под названием «Офейра» и изданной в Берлине под названием «Путевые заметки». И тем не менее эта книга самостоятельна: тему «Африка» берет она шире, нежели «Путевые заметки». Как таковую самостоятельную книгу я предлагаю ее вниманию читателя…»

Андрей Белый , Николай Степанович Гумилев

Публицистика / Классическая проза ХX века