<!--#include virtual="/server/header.html" -->
<!-- Parent-Version: 1.96 -->
<!-- This page is derived from /server/standards/boilerplate.html -->
<!--#set var="TAGS" value="essays aboutfs practice" -->
<!--#set var="DISABLE_TOP_ADDENDUM" value="yes" -->
<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" -->
<!--#include virtual="/philosophy/ph-breadcrumb.html" -->
<!--#include virtual="/server/top-addendum.html" -->
<div class="article reduced-width">
<h2>Imperfection is not the same as oppression</h2>

<address class="byline">by <a href="http://www.stallman.org/">Richard

<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 — that functionality—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

<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" role="contentinfo">
<div class="unprintable">

<p>Please send general FSF & GNU inquiries to
<a href="mailto:gnu@gnu.org"><gnu@gnu.org></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"><webmasters@gnu.org></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">

        <p>For information on coordinating and contributing translations of
        our web pages, see <a
        README</a>. -->
Please see the <a
README</a> for information on coordinating and contributing translations
of this article.</p>

<!-- Regarding copyright, in general, standalone pages (as opposed to
     files generated as part of manuals) on the GNU web server should
     be under CC BY-ND 4.0.  Please do NOT change or remove this
     without talking with the webmasters or licensing team first.
     Please make sure the copyright date is consistent with the
     document.  For web pages, it is ok to list just the latest year the
     document was modified, or published.
     If you wish to list earlier years, that is ok too.
     Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
     years, as long as each year in the range is in fact a copyrightable
     year, i.e., a year in which the document was published (including
     being publicly visible on the web or in a revision control system).
     There is more detail about copyright years in the GNU Maintainers
     Information document, www.gnu.org/prep/maintain. -->

<p>Copyright © 2014, 2021 Free Software Foundation, Inc.</p>

<p>This page is licensed under a <a rel="license"
Commons Attribution-NoDerivatives 4.0 International License</a>.</p>

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

<p class="unprintable">Updated:
<!-- timestamp start -->
$Date: 2021/11/11 15:30:25 $
<!-- timestamp end -->
</div><!-- for class="inner", starts in the banner include -->