wwworst-app-store.html (9307B)
1 <!--#include virtual="/server/header.html" --> 2 <!-- Parent-Version: 1.96 --> 3 <!-- This page is derived from /server/standards/boilerplate.html --> 4 <!--#set var="TAGS" value="essays cultural evils" --> 5 <!--#set var="DISABLE_TOP_ADDENDUM" value="yes" --> 6 <title>The WWWorst App Store 7 - GNU Project - Free Software Foundation</title> 8 <style type="text/css" media="print,screen"><!-- 9 #content p { margin: .5em 0 0; } 10 --></style> 11 <!--#include virtual="/philosophy/po/wwworst-app-store.translist" --> 12 <!--#include virtual="/server/banner.html" --> 13 <!--#include virtual="/philosophy/ph-breadcrumb.html" --> 14 <!--GNUN: OUT-OF-DATE NOTICE--> 15 <!--#include virtual="/server/top-addendum.html" --> 16 <div class="article reduced-width"> 17 <h2>The WWWorst App Store</h2> 18 19 <address class="byline">by Alexandre Oliva</address> 20 21 <p>Picture the most abusive app store.</p> 22 23 <p>Programs in it are meant to run on your own computer.</p> 24 25 <p>However, you have to be online to run them.</p> 26 27 <p>Every time you start them, they contact the app store.</p> 28 29 <p>If there is an updated version, it's installed automatically, no 30 questions asked. You'd rather run the earlier version? Tough.</p> 31 32 <p>If the app store decides you're no longer welcome, the program won't 33 start any more.</p> 34 35 <p>If the app store servers are offline, or if you are, it won't start 36 either.</p> 37 38 <div class="important"> 39 <p>Programs in this app store must also hold your data in the app store's 40 servers.</p> 41 42 <p>If the program won't start, you can't get to the data on the servers 43 any more.</p> 44 45 <p>You may have downloaded backups of your data, but you'd have to figure 46 out how to decode them without the program.</p> 47 </div> 48 49 <p>Sounds like a nightmare? It is. But it's also very real.</p> 50 51 <p>Well-known app stores are approaching this level of nastiness.</p> 52 53 <p>But they are just catching up with the real thing.</p> 54 55 <p>The most abusive app store is the business-driven perversion of the 56 old user-empowering distributed hypertext system called “the Web.”</p> 57 58 <p>Users have been encouraged to adopt “web apps” for much of their 59 computing, paving the way for other app stores to follow suit.</p> 60 61 <div class="important"> 62 <p>“Web apps” are most often distributed as JavaScript (though Java and 63 Flash have served similar purposes), automatically installed and 64 executed on your browser.</p> 65 66 <p>But the problem is not that they're in JavaScript, or that it's your 67 browser that runs them. It's that:</p> 68 69 <ul> 70 <li>you don't have control over what the program does;</li> 71 <li>you don't have control over when you can run it;</li> 72 <li>you don't have control over your own data.</li> 73 </ul> 74 75 <p>The app store owner takes all that control away from you, thereby 76 gaining control over you.</p> 77 78 <p>You lose when the JavaScript code is nonfree software.<br /> 79 <a href="/philosophy/javascript-trap.html"> 80 https://www.gnu.org/philosophy/javascript-trap.html</a></p> 81 82 <p>But you also lose when it is (nominally) free software!</p> 83 </div> 84 85 <p>When the app / web site has so much control over what runs on 86 your computer, the effect “is equivalent to using a nonfree program 87 with surveillance features and a universal back door.” <br /> 88 <a href="/philosophy/network-services-arent-free-or-nonfree.html"> 89 https://www.gnu.org/philosophy/network-services-arent-free-or-nonfree.html</a> <br /> 90 91 <a href="/philosophy/who-does-that-server-really-serve.html"> 92 https://www.gnu.org/philosophy/who-does-that-server-really-serve.html</a> </p> 93 94 <p>The owner gets all the freedom, and you, the user, get none.</p> 95 96 <p>That's not a self-respectful way to do your computing.</p> 97 98 <p>It invades your privacy, it keeps you and your data hostage, it takes 99 away your agency and your freedom when it comes to your digital life.</p> 100 101 <hr class="column-limit" /> 102 103 <p>The web used to be a wonderful way to share information.</p> 104 105 <p>Web apps and mandatory JavaScript have turned it into the worst app 106 store.</p> 107 108 <p>It is time to separate the WWWonderful from the WWWorst practices.</p> 109 110 <p>Here are some ways to help:</p> 111 112 <ul> 113 <li>request web sites that require JavaScript execution to offer either: 114 <ul> 115 <li>alternate means of access to information they publish, or</li> 116 <li>alternate means of delivery for their apps;</li> 117 </ul> 118 </li> 119 120 <li>promote free browser extensions that control JavaScript execution;<br /> 121 <a href="/software/librejs/">https://www.gnu.org/software/librejs/</a></li> 122 123 <li>beware of apps that are mere front ends for SaaSS;<br /> 124 <a href="/philosophy/who-does-that-server-really-serve.html"> 125 https://www.gnu.org/philosophy/who-does-that-server-really-serve.html</a></li> 126 127 <li>demand software you use to be delivered in freedom-respecting ways;</li> 128 129 <li>promote hypertext systems that do not grant servers control over users.<br /> 130 <a href="https://en.wikipedia.org/wiki/Gemini_(protocol)"> 131 https://en.wikipedia.org/wiki/Gemini_(protocol)</a><br /> 132 <a href="https://en.wikipedia.org/wiki/Gopher_(protocol)"> 133 https://en.wikipedia.org/wiki/Gopher_(protocol)</a></li> 134 </ul> 135 136 <p>More generally:</p> 137 138 <ul> 139 <li>as a self-respecting user, reject the abusive practices whenever you can;<br /> 140 <a href="/philosophy/saying-no-even-once.html"> 141 https://gnu.org/philosophy/saying-no-even-once.html</a></li> 142 143 <li>discourage automatic execution of downloaded code;<br /> 144 <a href="https://www.fsfla.org/blogs/lxo/pub/who-is-afraid-of-spectre-and-meltdown.en.html"> 145 https://www.fsfla.org/blogs/lxo/pub/who-is-afraid-of-spectre-and-meltdown.en.html</a></li> 146 147 <li>as a network service operator, set a user-respecting example;<br /> 148 <a href="/philosophy/network-services-arent-free-or-nonfree.html"> 149 https://www.gnu.org/philosophy/network-services-arent-free-or-nonfree.html</a></li> 150 151 <li>spread awareness of the problem, and advice on solving and avoiding it.<br /> 152 <a href="/help/help-javascript.html"> 153 https://www.gnu.org/help/help-javascript.html</a></li> 154 </ul> 155 156 <p>Now, if you wish your site to give its users a taste of how the 157 WWWorst app store feels to us, add to web pages you control the 158 following JavaScriptlet:</p> 159 160 <p class="emph-box"> 161 document.body.textContent = 'Please disable JavaScript to view this site.'</p> 162 163 <p>If you wish, make “disable JavaScript” a link to this article.</p> 164 165 <hr class="column-limit" /> 166 167 <p>Thanks to Richard Stallman for the inspiration to write about this 168 issue, and for the encouragement to publish it.</p> 169 170 <p><em>2021-04-01 update:</em> thanks to KE0VVT for letting me know that 171 textContent can't have links; you need innerHTML for that.</p> 172 </div> 173 174 </div><!-- for id="content", starts in the include above --> 175 <!--#include virtual="/server/footer.html" --> 176 <div id="footer" role="contentinfo"> 177 <div class="unprintable"> 178 179 <p>Please send general FSF & GNU inquiries to 180 <a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. 181 There are also <a href="/contact/">other ways to contact</a> 182 the FSF. Broken links and other corrections or suggestions can be sent 183 to <a href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p> 184 185 <p><!-- TRANSLATORS: Ignore the original text in this paragraph, 186 replace it with the translation of these two: 187 188 We work hard and do our best to provide accurate, good quality 189 translations. However, we are not exempt from imperfection. 190 Please send your comments and general suggestions in this regard 191 to <a href="mailto:web-translators@gnu.org"> 192 <web-translators@gnu.org></a>.</p> 193 194 <p>For information on coordinating and contributing translations of 195 our web pages, see <a 196 href="/server/standards/README.translations.html">Translations 197 README</a>. --> 198 Please see the <a 199 href="/server/standards/README.translations.html">Translations 200 README</a> for information on coordinating and contributing translations 201 of this article.</p> 202 </div> 203 204 <!-- Regarding copyright, in general, standalone pages (as opposed to 205 files generated as part of manuals) on the GNU web server should 206 be under CC BY-ND 4.0. Please do NOT change or remove this 207 without talking with the webmasters or licensing team first. 208 Please make sure the copyright date is consistent with the 209 document. For web pages, it is ok to list just the latest year the 210 document was modified, or published. 211 212 If you wish to list earlier years, that is ok too. 213 Either "2001, 2002, 2003" or "2001-2003" are ok for specifying 214 years, as long as each year in the range is in fact a copyrightable 215 year, i.e., a year in which the document was published (including 216 being publicly visible on the web or in a revision control system). 217 218 There is more detail about copyright years in the GNU Maintainers 219 Information document, www.gnu.org/prep/maintain. --> 220 221 <p>Copyright © 2021 Alexandre Oliva</p> 222 223 <p>This page is licensed under the <a rel="license" 224 href="https://creativecommons.org/licenses/by-sa/4.0/">Creative 225 Commons Attribution-ShareAlike 4.0 International License</a>.</p> 226 227 <!--#include virtual="/server/bottom-notes.html" --> 228 229 <p class="unprintable">Updated: 230 <!-- timestamp start --> 231 $Date: 2021/09/10 11:28:41 $ 232 <!-- timestamp end --> 233 </p> 234 </div> 235 </div><!-- for class="inner", starts in the banner include --> 236 </body> 237 </html>