/[www]/www/philosophy/wwworst-app-store.html
ViewVC logotype

Contents of /www/philosophy/wwworst-app-store.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.9 - (show annotations) (download) (as text)
Fri Sep 10 11:28:41 2021 UTC (3 years, 1 month ago) by th_g
Branch: MAIN
CVS Tags: HEAD
Changes since 1.8: +2 -2 lines
File MIME type: text/html
Typo.

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 &ldquo;the Web.&rdquo;</p>
57
58 <p>Users have been encouraged to adopt &ldquo;web apps&rdquo; for much of their
59 computing, paving the way for other app stores to follow suit.</p>
60
61 <div class="important">
62 <p>&ldquo;Web apps&rdquo; 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 &ldquo;is equivalent to using a nonfree program
87 with surveillance features and a universal back door.&rdquo; <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 &ldquo;disable JavaScript&rdquo; 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>&nbsp; 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 &amp; GNU inquiries to
180 <a href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</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">&lt;webmasters@gnu.org&gt;</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 &lt;web-translators@gnu.org&gt;</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 &copy; 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 09:04:50 $
232 <!-- timestamp end -->
233 </p>
234 </div>
235 </div><!-- for class="inner", starts in the banner include -->
236 </body>
237 </html>

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26