Mike Gerwitz

Free Software Hacker+Activist

aboutsummaryrefslogtreecommitdiffstats
blob: e2c1016240a7decbe482f03b9704f520c4de4e8b (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
114
115
116
117
118
119
120
121
122
123
124
125
126
### GitHubbub!  GitHub Does Not Value Software Freedom.

<div class="inline-img octoflop">
  ![GitHub](/images/octoright-large.png "GitHub logo rotated 270° to resemble a Copyright symbol")
</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 important to consider whether the service or website is antithetical
  to the message you are trying to convey to your readers/visitors,
    and 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 to 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][jstrap]
  (often without your permission) ephemeral, unsigned, untrusted software.
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 a bit startling for a host that owes its very existence to the
  success and development of free software.

#### 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 to clarify 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