I like what Mercurial does: never remove anything, no matter how obsolete. In Mercurial, &quot;obsolete&quot; just means it won&#x27;t show up in the docs or the wiki or anything. The code is still there, but nobody talks about it, and nobody has to use it. Also, nobody has to fix it. Sure, it&#x27;s a bit annoying as an hg dev that we can&#x27;t get rid of any public functionality, but hg users are much happier that the scripts they wrote ten years ago against hg still work today. It doesn&#x27;t mean that progress can&#x27;t happen; it just means that progress can&#x27;t trample other people&#x27;s habituation.<p>Emacs has been around for over 30 years or even 40 years, depending on how you count. People have come to rely on all sorts of behaviour since the dawn of time. Changing that behaviour just to make the developers a little less annoyed is completely at the expense of the users.<p>I reiterate some of Steve Losh&#x27;s here,<p><pre><code>     Allow me to illustrate this with a helpful Venn diagram:

                      -------
                     &#x2F;3333333\
                    |333333333|
                     \3333333&#x2F;
                      -------

    11 -&gt; People who give a shit what a program&#x27;s codebase
    11    looks like.

    22 -&gt; The authors of said program.
    22

</code></pre>
<a href="http:&#x2F;&#x2F;stevelosh.com&#x2F;blog&#x2F;2012&#x2F;04&#x2F;volatile-software&#x2F;" rel="nofollow">http:&#x2F;&#x2F;stevelosh.com&#x2F;blog&#x2F;2012&#x2F;04&#x2F;volatile-software&#x2F;</a>