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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
|
[[!meta title="GNU Emacs as software freedom in practice - Greg Farough"]]
[[!meta copyright="Copyright © 2019 Greg Farough"]]
[[!taglink CategoryPhilosophy]]
[[!template id=vid
src="https://mirror.csclub.uwaterloo.ca/emacsconf/2019/emacsconf-2019-24-gnu-emacs-as-software-freedom-in-practice--ggoes.webm"
type="video/webm"]]
### Download
- [Video](https://mirror.csclub.uwaterloo.ca/emacsconf/2019/emacsconf-2019-24-gnu-emacs-as-software-freedom-in-practice--ggoes.webm) (720p)
### Transcript
```org
* Transcript
First of all, I should give an introduction to myself. I'm Greg
Farough and my talk's going to be about GNU Emacs as an example of
software freedom in practice. That's not practice in the sense of
"training for something," but practice as in enacting the core values
of GNU as a project.
I'm the campaigns manager at the Free Software Foundation, but this is
not an FSF talk. So all of my opinions are my own. I don't think I'll
be saying anything especially controversial during this -- at least I
hope not.
I've been an Emacs user since about 2006, when I was age 12. That
does not mean I'm especially good at Emacs. I'm not a programmer.
Not at all, really. My college education was in Ancient Greek, not
computer science. So while I know one or two things about one kind of
lambda, I don't know much at all about the other kind of lambda. My
use of Emacs has always been about cobbling together a lot of
different things from various config files all over the place. It's
been a little hodgepodge over the years.
So even though I use Emacs for everything, and have used it for such a
long time, it's not something I consider myself a big expert at. Some
proofs I'm not a hacker: first of all, the delay in this presentation.
[Story about breaking laptop shortly before presentation.] So, I
clearly don't have the MIT AI Lab spirits behind me.
I can't use Org-mode very well (as evidenced by this presentation),
and I still can't record Emacs macros reliably. That's the whole
"-mac" part, right? But I still can't do it. I can write Greek
letters, though, thanks to its brilliant Unicode support.
But there's a little bit of a catch to that, right? Some of the
earliest Emacs users weren't much of programmers either.
In his account of his days at the AI Lab and the development of GNU
Emacs, RMS said that "programming new editing commands was so
convenient that even the secretaries in [Bernie Greenberg]'s office
started learning how to use it. They used a manual someone had
written which showed how to extend Emacs, but didn't say it was a
programming. So the secretaries, who believed they couldn't do
programming, weren't scared off. They read the manual, discovered
they could do useful things and they learned to program.
That's always been an interesting quote to me because it highlights
what I'll call that "mind expansion" moment that I was just talking to
someone about the other day. If you used to typical programs, or
nonfree programs like Microsoft Office, etc., and you go to Emacs, you
think it's this weird, arcane thing and you don't understand why the
"M" actually refers to the "Alt" key on your keyboard. You have to
feel like you're an octopus to use it.
But most everyone I know that has used Emacs for a long time can point
to one moment where things seemed to "click" for them. They come to
an understanding of Emacs' extensibility for the first time, and are
empowered by all that they suddenly realize they're able to do. And I
mean "empowered" in a very actual sense of empowerment. They're like:
"Wow, I can suddenly do all this stuff! It's incredible that I can do
this with a computer."
Tangentially, that's something you don't get in [computer literacy]
education that involves proprietary software, because you're learning
to use one "office suite." You're not learning any general purpose
computing concept. I think it's important to mention that when people
come to Emacs they have a moment like: "Oh, my gosh, I'm not terrible
at computers after all. I can actually adapt it to fit my needs!"
But these people often suffer from impostor syndrome. Sometimes they
never end up considering themselves "real" Emacs users. I'm guilty of
that, even though most people in the FSF office consider me to be the
quintessential Emacs user. I don't feel that way, personally. I've
just slowly accumulated everything into Emacs. It's just taken over
my life gradually. Maybe that's more owing to it than me. But it's
something that's important, especially when you start to think about
contributing to Emacs. You might say, "I can't do anything. My
patches don't matter. They'll reject them," or whatever. That's
something that I feel like we should be counteracting when we talk
about contributing to Emacs.
I've come up with my own criteria for being an Emacs hacker. If you
have customized Emacs to any degree, to cleverly help it fit your
needs, you are an Emacs hacker. I'm the FSF campaigns manager, and
I'm telling you that right now. If you've had that "Emacs experience"
that I mentioned earlier, you're an Emacs hacker as well. There's no
high barrier of entry. If you enjoy the program, if you enjoy its
incredibly bizarre, arcane, baroque complexity -- great. Hop on board
the Emacs train, because we're happy to have you there.
Emacs's ability to blow people's minds comes from more than its
sitting on top of a Lisp interpreter. And I think it comes from more
than just its being around for a long time. Software freedom itself
plays a large part of it. I'd argue that its the most crucial reason
for its success.
How does software freedom help Emacs? Well, the whole "catch" of
Emacs is that anyone and at any time can study and edit the code of
Emacs. Without recompiling it, without doing anything difficult.
That's software freedom #1 in a nutshell, right? The Free Software
Definition calls it, "The freedom to study how the program works, and
change it so it does your computing as you wish (freedom 1). Access
to the source code is a precondition for this." And that says it.
You could write that on the Emacs family crest. You can see all of
the source code; you can edit it at any moment, and that's phenomenal.
That's a lot of what makes Emacs accessible to people. Once they go
beyond using it and learning certain key commands -- when they
actually start doing that first cool C-x C-e -- and they evaluate
something for the first time, that's a very good feeling. I think of
Emacs being in some ways the "flagship" GNU program. It's not the one
that's the most used by everybody, that's Coreutils or Bash, but it
emphasizes the GNU philosophy in a special way. While it's so gnarly
and crazy, every feature is welcome in it. Even M-x butterfly and the
kitchen sink. The old Emacs logo used to literally be a kitchen sink.
The only requirement placed on you is to be a good member of the Emacs
community: to share your work back to the community, even if it's not
something that's considered "useful" to the working world, like
implementing a psychotherapist in an underused programming language,
or writing a Tetris clone. That's something that I think could only
happen in a free software environment. Nobody at Microsoft could go,
"Hey! Why don't we add a Rogerian therapist to Microsoft Office
instead of Clippy? That would be a great idea!" That would get shot
down really quickly, I think.
Another key part of Emacs are the other software freedoms. You can
modify and distribute it. It's extremely difficult to imagine an
Emacs that wasn't modifiable, or where modifiable versions couldn't be
shared back to the community. If at the beginning Emacs had been
licensed permissively, say under the MIT or BSD licenses, something
like this might have happened. We could have had a less wonderful
"core" Emacs. All the good bits like the psychotherapist, and Magit,
and my favorite theme wouldn't have been there if the only free part
of Emacs was its core. Copyleft is very integral to the success of
Emacs, and why it's so unique and widely spread.
So! Here's a quote about being divided and helpless.
"This is a matter of the freedom to cooperate. We're used to thinking
of freedom and cooperation with society as if they are opposites. But
here they're on the same side. With free software you are free to
cooperate with other people as well as free to help yourself. With
non-free software, somebody is dominating you and keeping people
divided. You're not allowed to share with them, you're not free to
cooperate or help society, anymore than you're free to help yourself.
Divided and helpless is the state of users using non-free software."
We've heard multiple times about how that's what it's like to use
nonfree productivity programs in general, and nonfree software in
general. Everything you [would want to add] depends on your sending
an email to a developer saying something like, "Oh, please, please add
this feature for me! I'll give you so much money!" But in the free
software community, just throw it in. It's likely to get included -
if not in ELPA, then in the core Emacs. That's something that's
really cool.
So we have the GPL, cool. We have Emacs, cool. But what else is
contributing to Emacs's success? There's one license that I haven't
mentioned. I hope it's the most controversial thing I say today, but
maybe it won't be.
The GNU Free Documentation License has a clause for invariant
sections. That's a section that you can't take out of the
documentation. That pertains to a particular part of the Emacs
documentation: the part describing the motivations describing the GNU
Project, and the origin story of the GNU Project. Due to the GFDL,
every version of Emacs, no matter what operating system it's running
on, no matter whether it's free or nonfree, has included that. The
political "splash screen" Emacs starts up with was many people's
introductions to free software concepts. It was mine. I just saw
this weird, cursive cow logo and said, "Oh, what's this link?" I
clicked it and ended up reading a political manifesto without using
it.
To paraphrase another quote from RMS's Emacs origin story, "Emacs was
part of an explicit political campaign to make software free." At its
best, Emacs is exactly still that way.
We need to keep things going. How can we ensure the Emacs spirit
stays with us? I have one or two things that I can recommend.
First, use copyleft wherever possible. If you write software, please
consider releasing it under the GPL or another strong copyleft license
to benefit the community. After all, this was a core part of Emacs's
success. It doesn't bar you from selling the software. The FSF used
to sell Emacs on reel-to-reel tape for $150 way back in the day.
There are actually some behind me right now, but you can't see them.
Insist on free software in other areas: in your operating system, in
your phone, even in your GNU/Linux distribution, which may not be
fully free. Nominally, it could be "free software," but don't be
content with 50%, 60%, or even 80%. Always be pushing for the extra
bit to be freed, even if that's a tiny bit at a time, and even if that
seems impossible. With cell phones, right now it seems impossible that
the mobile baseband could be freed. It seems inconceivable. But I
think if we rally everyone together, we could get there. That's a
core element of campaigning for software freedom and what has made
Emacs so successful. It has always strongly pushed the copyleft
philosophy.
Second, do all that you can do to make the community welcoming. This
includes tolerance of the "non-hacker hackers" like me and many
others, who are not the most technical, but do genuinely love Emacs.
Setting standards for good behavior are a necessary part of this, in
the case of underrepresented groups, and people who feel like the
audience that writes Emacs is not their own. Their contributions are
also extremely valuable, because Emacs could get even more incredible
and strange if it's being contributed to by people who don't share the
same perspective as you or share the same background as you.
Please support the Free Software Foundation. Not only do because they
pay my salary, but because they write the GPL. They are also the
copyright holder for Emacs, and take its legal protection extremely
seriously.
Contribute to Emacs, and every other free software project, even
non-GNU projects, as much as you can. No matter what it is, and no
matter how small you think your contribution may be. Chances are,
there's someone that has that one nagging bug; that they're saying,
"if only someone could fix this for me!" I've seen that happen with
Emacs multiple times. It's happened to me. Most recently, Gnus was
always marking my read emails as unread again, and there was nothing I
could do. And then someone ended up fixing it with a single line
commit a few weeks ago. So if you notice anything like that, please
contribute. Every part benefits the community.
Thanks very much.
```
### Slides
```org
* Slides
** GNU Emacs as software freedom in practice
*** Greg Farough <gregf@gnu.org>
** What I do
*** Campaigns Manager at Free Software Foundation
*** (Opinions are my own)
*** Emacs user since 2006 (age 12)
** But I'm not really a programmer.
*** My college education was in Ancient Greek, not CS.
*** So while I know one or two things about one kind of lambda, I don't know anything about the real λ we care about.
** Proofs I'm not a hacker
*** I am giving this presentation form a 14 year-old laptop because I broke mine while trying to fix it.
*** I can't use Org-mode well (as evidenced by this presentation).
*** I still can't record Emacs macros reliably.
*** But I can write Greek letters reliably! Έμάκς!
** But there's a catch
** Some of the earliest Emacs users weren't really "programmers" either.
"[P]rogramming new editing commands was so convenient that even the
secretaries in his office started learning how to use it. They
used a manual someone had written which showed how to extend Emacs,
but didn't say it was a programming. So the secretaries, who
believed they couldn't do programming, weren't scared off. They
read the manual, discovered they could do useful things and they
learned to program." - RMS, 'My Lisp Experiences and the
Development of GNU Emacs
<https://www.gnu.org/gnu/rms-lisp.html>
** Mind-expansion
Most everyone who's been introduced to Emacs has that *one* moment
where things seemed to "click" for them. They come to an
understanding of Emacs' extensibility for the first time, and are
empowered by all that they suddenly realize they're able to do.
** Note on impostor syndrome
But sometimes, these people don't ever consider themselves "real"
Emacs users. I'm guilty of that, even though most people consider
me to be a quintessential Emacs user, as I do everything in it.
** Greg's criteria
If you have customized Emacs to any degree, to cleverly help it fit
your needs, you are an Emacs hacker.
If you've had that "Emacs experience," you're an Emacs hacker.
** So what does that mean?
Emacs's ability to blow people's minds comes from more than just
Lisp, and more than just its being around for so long.
Software freedom plays a large part of it: maybe the most crucial
part.
** How does it help Emacs?
The ability for anyone, at any time, to study and alter the code of
the Emacs text editor is software freedom 1.
"The freedom to study how the program works, and change it so it
does your computing as you wish (freedom 1). Access to the source
code is a precondition for this." - Free Software Definition
<https://www.gnu.org/philosophy/free-sw.html>
** Study and share
Being in some ways the "flagship" GNU program, Emacs emphasizes its
core philosophy in a special way. While complex and baroque, every
feature is welcome: even M-x butterfly and the kitchen sink.
The only requirement placed on you is to be a good member of the
Emacs community: to share your work with us; even if it's the Emacs
psychotherapist, and even if it's M-x tetris.
** Modify and distribute
It's extremely difficult to imagine an Emacs that wasn't
modifiable, or where modifiable versions couldn't be shared.
If at the beginning Emacs had been licensed permissively, something
like this might have happened. We could have had a less wonderful
"core" Emacs, and all the good bits (like the psychotherapist),
could have been made part of a proprietary distribution.
** "Divided and helpless"
"This is a matter of the freedom to cooperate. We're used to
thinking of freedom and cooperation with society as if they are
opposites. But here they're on the same side. With free software
you are free to cooperate with other people as well as free to help
yourself. With non-free software, somebody is dominating you and
keeping people divided. You're not allowed to share with them,
you're not free to cooperate or help society, anymore than you're
free to help yourself. Divided and helpless is the state of users
using non-free software." RMS, 'My Lisp Experiences and the
Development of GNU Emacs
<https://www.gnu.org/gnu/rms-lisp.html>
** Spreading the message
OK, great, we have the GPL and we have Emacs. What else has
contributed?
There's one more license we haven't mentioned.
And it should be the only controversial thing I bring up today.
** The Manifesto
- The GNU Free Documentation License (GFDL) and its invariant
sections have ensured that the origin story and motivations for
GNU have been included with every version of Emacs -- no matter
what operating system it's running on.
The political "splash screen" Emacs starts up with was many
people's introductions to free software concepts. Mine, for
example.
"[Emacs] was part of an explicit political campaign to make
software free." [ED: This is also a quote from 'My Lisp
Experiences and the Development of GNU Emacs.']
** Keeping things going
How can we ensure that the Emacs spirit stays with us?
We can recommend a few things.
** Use copyleft wherever possible
If you write software, please consider releasing it under the GPL
or another strong copyleft license to benefit the community. After
all, this was a core part of Emacs's success.
Insist on free software in other areas: in your operating system,
in your phone, even in your GNU/Linux distribution, which may not
be fully free. Don't be content with 50%, 60%, or even 80%.
** Do all that you can to make the community welcoming
This includes tolerance of the "non-hacker hackers" like me and
many others, who are not the most technical, but do genuinely love
Emacs.
Setting standards for good behavior -- codes of conduct -- are a
necessary part of this.
** Support
Please support the Free Software Foundation. Not only do we write
the GPL: we are also the copyright holder for Emacs, and take its
legal protection very seriously.
Contribute to Emacs (and every other free software project!) as
much as you can. No matter what it is, and no matter how small you
think your contribution may be.
** Thanks very much.
```
|