summaryrefslogtreecommitdiff
path: root/talermerchantdemos/blog/articles/en/imperfection-isnt-oppression.html
blob: 78343e6f36e96c3984f6e3b89bc3a69debc37c1a (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
<!--#include virtual="/server/header.html" -->
<!-- Parent-Version: 1.77 -->

<title>Imperfection is not the same as oppression
- GNU Project - Free Software Foundation</title>
 <!--#include virtual="/philosophy/po/imperfection-isnt-oppression.translist" -->
<!--#include virtual="/server/banner.html" -->
<h2>Imperfection is not the same as oppression</h2>

<p>by <a href="http://www.stallman.org/">Richard Stallman</a></p>

<p>When a free program lacks capabilities that users want, that is
  unfortunate; we urge people to add what is missing. Some would go
  further and claim that a program is not even free software if it lacks
  certain functionality &mdash; that it denies freedom 0 (the freedom to
  run the program as you wish) to users or uses that it does not
  support. This argument is misguided because it is based on
  identifying capacity with freedom, and imperfection with oppression.</p>

<p>Each program inevitably has certain functionalities and lacks others
  that might be desirable. There are some jobs it can do, and others it
  can't do without further work. This is the nature of software.</p>

<p>The absence of key functionality can mean certain users find the
  program totally unusable. For instance, if you only understand
  graphical interfaces, a command line program may be impossible for you
  to use. If you can't see the screen, a program without a screen
  reader may be impossible for you to use. If you speak only Greek, a
  program with menus and messages in English may be impossible for you
  to use. If your programs are written in Ada, a C compiler is
  impossible for you to use. To overcome these barriers yourself
  is unreasonable to demand of you. Free software really ought to
  provide the functionality you need.</p>

<p>Free software really ought to provide it, but the lack of that feature
  does not make the program nonfree, because it is an imperfection,
  not oppression.</p>

<p>Making a program nonfree is an injustice committed by the developer
  that denies freedom to whoever uses it. The developer deserves
  condemnation for this. It is crucial to condemn that developer,
  because nobody else can undo the injustice as long as the developer
  continues to do it. We can, and do, try to rescue the victims by
  developing a free replacement, but we can't make the nonfree program
  free.</p>

<p>Developing a free program without adding a certain important
  feature is not doing wrong to anyone. Rather, it's doing some good
  but not all the good that people need. Nobody in particular deserves
  condemnation for not developing the missing feature, since any
  capable person could do it. It would be ungrateful, as well as
  self-defeating, to single out the free program's authors for blame
  for not having done some additional work.</p>

<p>What we can do is state that completing the job calls for doing
  some additional work. That is constructive because it helps us
  convince someone to do that work.</p>

<p>If you think a certain extension in a free program is important,
  please push for it in the way that respects our contributors. Don't
  criticize the people who contributed the useful code we have. Rather,
  look for a way to complete the job. You can urge the program's
  developers to turn their attention to the missing feature when they
  have time for more work. You can offer to help them. You can recruit
  people or raise funds to support the work.</p>

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

<p>Please send general FSF &amp; GNU inquiries to
<a href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>.
There are also <a href="/contact/">other ways to contact</a>
the FSF.  Broken links and other corrections or suggestions can be sent
to <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>. -->
Please see the <a
href="/server/standards/README.translations.html">Translations
README</a> for information on coordinating and submitting translations
of this article.</p>
</div>

<p>Copyright &copy; 2014 Free Software Foundation, Inc.</p>

<p>This page is licensed under a <a rel="license"
href="http://creativecommons.org/licenses/by-nd/3.0/us/">Creative
Commons Attribution-NoDerivs 3.0 United States License</a>.</p>

<!--#include virtual="/server/bottom-notes.html" -->

<p class="unprintable">Updated:
<!-- timestamp start -->
$Date: 2014/05/29 12:27:36 $
<!-- timestamp end -->
</p>
</div>
</div>
</body>
</html>