Mike Gerwitz

Activist for User Freedom

aboutsummaryrefslogtreecommitdiffstats
blob: 63c6df63f239c10565945a0aa8e9a42c1c98c36f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
### GitHubbub!  GitHub Does Not Value Software Freedom.

<div class="inline-img octoflop">![GitHub](/images/octoright-large.png "GitHubbub!")</div>

If you hit this page expecting to have been taken to my GitHub profile, then
this is probably not what you were looking for.  But let me tell you why
you're here.

Before providing a link to something hosted on a service, it is wise to
consider whether doing so is a good idea---whether the service or website
is antithetical to the message you are trying to send to your
readers/visitors, or whether it deserves clarification.  There's a little
bit of both here.

If you're looking for a host friendly toward free software, take a look at
the [GNU ethical repository criteria][gnu-repo], which sets standards for
acceptable hosts of parts of the [GNU operating system][gnu].


#### Non-Free JavaScript
[Free software][freesw] guarantees your freedom to study, modify, and share
the software that you use.  We value these freedoms on the desktop, so why
should we compromise when websites serve proprietary JavaScript
[just because it creates the illusion of remote execution][whyfreejs]?  When
you visit a website that serves JavaScript to the client, your web browser
is automatically [downloading and executing (often without your permission)
untrusted software][jstrap].  If that JavaScript is not
[freely licensed][librejs], then the software running in your web browser
is proprietary.

**When you visit `github.com`, you download over 200kB of obfuscated code,
much of which is proprietary.**  This code provides many website features
that are fairly essential, and *do not work with JavaScript disabled*:

- Change repository names or descriptions;
- Delete repositories;
- Add an SSH key to your account;
- Fork repositories;
- Create pull requests;
- Enable and disable project features;
- Use the wiki and issue trackers;
- View graphs of statistics;
- And others.

That is---GitHub forces you to run proprietary software in order to use much
of their website.  This is unethical.

#### Desire To Remain Non-Free
I contacted GitHub back in April 2014, pointing out these concerns and
asking if they would be able to either liberate their JavaScript, or make
GitHub's essential functionality work without JavaScript enabled.  The first
response I received was from one of their "JavaScript Developers":

> Hi Mike,
> 
> Thanks for getting in touch with us here. Some of our internal projects are
> specific to running GitHub, and as such will probably remain closed. We do
> make an effort to open source projects that we create that we think would be
> beneficial to the community, some of which is JavaScript.
> 
> You can see a list of some of the open source projects that power GitHub
> here:
> 
> https://github.com/showcases/projects-that-power-github

This response is unfortunately misguided: yes, it is good that GitHub
produces free software, but it is a false assumption that their proprietary
code would serve no benefit to the community: the very existence of
their proprietary software
[gives them unjust control over their users][unjust].  Relinquishing that
control is of benefit to the community.

I replied to the above message, clarifying my point.  After receiving no
response, I forwarded the e-mail to GitHub's original founders: [Tom
Preston-Werner][tom], [Chris Wanstrath][chris], and [PJ Hyett][pj].  The
response I received from Chris was blunt and discouraging:

> Hey Mike,
> 
> We have no plans to release github.com's JavaScript as free software at
> this time, nor do we have plans to remove the site's dependence on
> JavaScript. Thanks for the interest.

The original correspondence is provided here:

1. [Original request][gh-request] to `support@github.com`, Tom, Chris, and
  PJ.
2. [Reply to my original request][gh-request-reply] from one of the developers.
3. [My reply to the developer][gh-request2] providing more information and
   asking for a commitment.
4. [Forward of my reply][gh-request3] to Tom, Chris, and PJ, after having
  received no response from the developer.
5. [Response from Chris Wanstrath][gh-request3-reply] stating that GitHub
   has "no plans" to liberate its JavaScript or "remove the site's
   dependence on JavaScript".


[gnu-repo]: https://www.gnu.org/software/repo-criteria.html
[gnu]: https://www.gnu.org/gnu/gnu.html
[freesw]: https://www.gnu.org/philosophy/free-sw.html
[whyfreejs]: https://www.gnu.org/software/easejs/whyfreejs.html
[jstrap]: https://www.gnu.org/philosophy/javascript-trap.html
[librejs]: https://www.gnu.org/software/librejs/free-your-javascript.html
[unjust]: https://www.gnu.org/philosophy/free-software-even-more-important.html
[tom]: https://github.com/mojombo
[chris]: https://github.com/defunkt
[pj]: https://github.com/pjhyett

[gh-request]: /docs/gh/email-request.txt
[gh-request-reply]: /docs/gh/email-request-reply.txt
[gh-request2]: /docs/gh/email-request2.txt
[gh-request3]: /docs/gh/email-request3.txt
[gh-request3-reply]: /docs/gh/email-request3-reply.txt