Download

Transcript

* 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

* 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.