You may be running nonfree programs on your computer every day without realizing it—through your web browser.
In the free software community, the idea that nonfree programs mistreat their users is familiar. Some of us refuse entirely to install proprietary software, and many others consider nonfreedom a strike against the program. Many users are aware that this issue applies to the plug-ins that browsers offer to install, since they can be free or nonfree.
In addition to being nonfree, many of these programs are malware because they snoop on the user .
Java applets also run in the browser, and raise similar issues. In general, any sort of applet system poses this sort of problem. Having a free execution environment for an applet only brings us far enough to encounter the problem.
It is theoretically possible to program in HTML and CSS, but in practice this capability is limited and inconvenient; merely to make it do something is an impressive hack. Such programs ought to be free, but CSS is not a serious problem for users' freedom as of 2016.
Silently loading and running nonfree programs is one among several issues raised by "web applications". The term "web application" was designed to disregard the fundamental distinction between software delivered to users and software running on a server. It can refer to a specialized client program running in a browser; it can refer to specialized server software; it can refer to a specialized client program that works hand in hand with specialized server software. The client and server sides raise different ethical issues, even if they are so closely integrated that they arguably form parts of a single program. This article addresses only the issue of the client-side software. We are addressing the server issue separately.
What do we mean by "nontrivial"? It is a matter of degree, so this is a matter of designing a simple criterion that gives good results, rather than finding the one correct answer.
Thank you toMatt Lee and John Resig for their help in defining our proposed criterion, and to David Parunakian for helping to make me aware of the problem.
For references to corresponding source code, we recommend
followed by the URL. This satisfies the GNU GPL's requirement to distribute source code. If the source is on a different site, you must take care tohandle that properly. Source code is necessary for the program to be free.
Of course, all of this should be contained in a multiline comment.
I thank Jaffar Rumith for bringing this issue to my attention.