]> njoseph.me Git - blog.git/blob - content/posts/emacsconf-2019.md
10531afcfa32757e89437d4ed27d284de9abd725
[blog.git] / content / posts / emacsconf-2019.md
1 ---
2 title: "EmacsConf 2019"
3 date: 2019-11-03T15:40:09+05:30
4 lastmod: 2019-11-03T15:40:09+05:30
5 tags : [ "free-software", "emacs" ]
6 categories : [ "conferences" ]
7 layout: post
8 type: "post"
9 highlight: false
10 ---
11
12 ![EmacsConf logo](https://emacsconf.org/s/emacsconf-logo1-256.png)
13
14 I attended the [EmacsConf 2019](https://emacsconf.org/2019/ "EmacsConf 2019") on
15 2nd November. It was offered as a video stream that anyone can watch over the
16 internet, with audience conversations over IRC. The conference was powered
17 entirely by free software tools. RMS and some FSF members were also among the
18 audience.
19
20 More details about any of the talks mentioned here can be found in the
21 [notes](https://pads.ccc.de/fPYMhovcNN "notes").
22
23 ## Updates
24
25 There was an Emacs community update and an Emacs development update. Both were
26 very interesting. The community is sure taking notice of Spacemacs. Maybe Doom
27 Emacs is not that popular yet. I am excited about the new built-in features of
28 Emacs 27 - tab bar and ligatures. I was surprised that Emacs being one of the
29 most popular free software projects still suffers from a lack of core
30 developers. Maybe there are a lot of people willing to write Elisp but not many
31 interested in contributing to the C core.
32
33 ## The Hackable Text Editor
34
35 The core of emacs is written in C with Elisp offered as an extension language.
36 All of the Elisp source code that is running on your Emacs is available easily
37 through Emacs itself. Elisp is designed to be an easy-to-use minimalistic
38 language that non-programmers can use to create small improvements in their
39 workflow.
40
41 ## Software Freedom
42
43 One of the speakers called Emacs the mother of all free software. When RMS
44 started the free software movement, one of the first tools he built was Emacs,
45 using which all other free software was developed, starting with glibc. A lot of
46 free software development is done on 40+ years old Emacs even to this day.
47
48 Though most of the talks were about people doing cool things with Emacs, I was
49 more emotionally touched by these two talks - "GNU Emacs as software freedom in
50 practice" by an FSF member Greg Farough and "How to record executable notes with
51 eev - and how to play them back" by Eduardo Ochs. These two talks emphasized
52 the freedom that Emacs gives to its users, whether they are programmers or not.
53 Both the speakers use Emacs the way it is meant to be used. They truly used
54 Elisp as an extension language. I highly recommend watching the talks after
55 they're posted. This got me thinking. Though I am primarily a programmer and use
56 Emacs for almost all text editing, I barely programmed anything in Emacs - the
57 programmable text editor. This is mostly because I think that my newbie elisp
58 scripts are not as good as the ones already available as Elisp packages, so I
59 refrain from writing elisp at all. I realized that this is not how Emacs is
60 meant to be used.
61
62 Emacs is all about taking the free software editor built by the community,
63 making it your own through customization and contributing your improvements back
64 to the community if you can.
65
66 ## Future of Emacs
67
68 The most controversial talk and the one that generated the most conversation at
69 the conference was a talk titled "Emacs: The Editor for the Next Forty Years" by
70 Perry E. Metzger. It was quite a ranty talk by an Emacs user of over 20+ years.
71 He mentioned that MacOS has better Emacs-everywhere keybindings as compared to
72 mainstream GNU/Linux distributions that come with Gnome and KDE. I have to agree
73 on this particular thing. But having used Emacs on MacOS myself, I had way too
74 many segfaults and bad GUI experience. This was a much worse user experience in
75 my opinion. My problems can be easily dismissed as user faults, well so can his.
76 One might simply say that he could've used StumpWM or something that has better
77 Emacs keybindings (I picked up StumpWM from B. Slade's talk at the same
78 conference). The speaker goes on to recommend gradually replacing parts of Emacs
79 with better languages that can stand the test of time, using a concept from
80 philosophy called the Ship of Theseus. The core of Emacs can be changed from C -
81 a dangerous language according to the speaker - to a relatively safer language
82 like Rust. Elisp is not such a great language either with all the functions
83 staying in the global scope. Maybe a better Lisp would do well as a replacement.
84 I have to agree on both. The speaker says that we should put in the effort to
85 design a programming language specificially for the use case of Emacs and not
86 settle for a general purpose language. Also, the new language should
87 interoperate with elisp since there's too much of it to replace without decades
88 of work (e.g. org-mode has 120k lines of elisp). The importance of concurrency
89 and parallelism in the new language is also stressed.
90
91 ### Replacing Shell Scripts?
92
93 One of the talks was about trying to automate tasks using Elisp as a replacement
94 for shell scripts (Emacs as my Go To Script Language - Howard Abrams). The idea
95 is interesting but probably wouldn't entice a Perl hacker to try and use Elisp.
96 I have done this myself in the past but the speaker went a bit further in
97 building a framework for doing ad-hoc text processing and piping using Emacs.
98 The hard reality is that text processing using macros or Elisp is very slow as
99 compared to using a Python or Perl script.
100
101 ### Miscellaneous
102
103 Most of the talks were about how people were using Emacs in their daily life and
104 about the cool applications they built on top of Emacs.
105
106 As an
107 [Orgzly](https://njoseph.me/blog/posts/replacing-cloud-based-to-do-apps-with-orgzly-and-syncthing/
108 "Replacing cloud-based To-Do apps with Orgzly and Syncthing") user, I found a
109 self-hosted web-based solution called [Organice](https://organice.200ok.ch/
110 "Organice") interesting.
111
112 The craziest hack I saw is making an object-oriented spreadsheet program in
113 Elisp, putting sheet music in it and rendering the audio using a Scheme program.
114
115 Almost all presenters used org-mode to make their presentations, with some
116 people presenting it within Emacs and others using exported PDFs.
117
118 Just like the Quake-inspired terminals Guake and Yakuake, there's one called
119 [Equake](https://gitlab.com/emacsomancer/equake) that launches a drop-down eshell.
120 You can also use the racket shell called rash, which is crazy powerful. This has
121 very good integration with StumpWM.
122
123 There was a talk by Parham Doustdar, a blind developer who uses Emacs as his
124 daily driver. There were some interesting insights on how neglecting
125 accessibility in applications seriously impacts the productivity of
126 vision-impaired users. Some features can be completely inaccessible. Though the
127 W3C is doing some work to improve accessibility in browsers, most HTML is
128 rendered by client-side JavaScript these days which makes life even more
129 difficult for blind users.