[[!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 ** 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 ** 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 ** 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 ** 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. ```