]> njoseph.me Git - blog.git/blob - content/posts/emacsconf-2019.md
emacsconf 2019: Reordering and headings fixes
[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 ## Miscellaneous
92
93 Most of the talks were about how people were using Emacs in their daily life and
94 about the cool applications they built on top of Emacs.
95
96 As an
97 [Orgzly](https://njoseph.me/blog/posts/replacing-cloud-based-to-do-apps-with-orgzly-and-syncthing/
98 "Replacing cloud-based To-Do apps with Orgzly and Syncthing") user, I found a
99 self-hosted web-based solution called [Organice](https://organice.200ok.ch/
100 "Organice") interesting.
101
102 The craziest hack I saw is making an object-oriented spreadsheet program in
103 Elisp, putting sheet music in it and rendering the audio using a Scheme program.
104
105 Almost all presenters used org-mode to make their presentations, with some
106 people presenting it within Emacs and others using exported PDFs.
107
108 Just like the Quake-inspired terminals Guake and Yakuake, there's one called
109 [Equake](https://gitlab.com/emacsomancer/equake) that launches a drop-down eshell.
110 You can also use the racket shell called Rash, which is crazy powerful. This has
111 very good integration with StumpWM.
112
113 ### Accessibility
114
115 There was a talk by Parham Doustdar, a blind developer who uses Emacs as his
116 daily driver. There were some interesting insights on how neglecting
117 accessibility in applications seriously impacts the productivity of
118 vision-impaired users. Some features can be completely inaccessible. Though the
119 W3C is doing some work to improve accessibility in browsers, most HTML is
120 rendered by client-side JavaScript these days which makes life even more
121 difficult for blind users.
122
123 ### Replacing Shell Scripts?
124
125 One of the talks was about trying to automate tasks using Elisp as a replacement
126 for shell scripts (Emacs as my Go To Script Language - Howard Abrams). The idea
127 is interesting but probably wouldn't entice a Perl hacker to try and use Elisp.
128 I have done this myself in the past but the speaker went a bit further in
129 building a framework for doing ad-hoc text processing and piping using Emacs.
130 The hard reality is that text processing using macros or Elisp is very slow as
131 compared to using a Python or Perl script.
132