]> njoseph.me Git - blog.git/blame - content/posts/emacsconf-2019.md
Fix RSS feeds
[blog.git] / content / posts / emacsconf-2019.md
CommitLineData
ed914293
JN
1---
2title: "EmacsConf 2019"
3date: 2019-11-03T15:40:09+05:30
921d2ea1 4lastmod: 2019-11-04T15:40:09+05:30
ed914293
JN
5tags : [ "free-software", "emacs" ]
6categories : [ "conferences" ]
7layout: post
8type: "post"
9highlight: false
10---
11
a37c7a26 12![EmacsConf logo](/blog/emacsconf-logo.png)
ed914293
JN
13
14I attended the [EmacsConf 2019](https://emacsconf.org/2019/ "EmacsConf 2019") on
152nd November. It was offered as a video stream that anyone can watch over the
16internet, with audience conversations over IRC. The conference was powered
17entirely by free software tools. RMS and some FSF members were also among the
18audience.
19
b63a9897
JN
20More 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
25There was an Emacs community update and an Emacs development update. Both were
26very interesting. The community is sure taking notice of Spacemacs. Maybe Doom
27Emacs is not that popular yet. I am excited about the new built-in features of
28Emacs 27 - tab bar and ligatures. I was surprised that Emacs being one of the
29most popular free software projects still suffers from a lack of core
30developers. Maybe there are a lot of people willing to write Elisp but not many
31interested in contributing to the C core.
32
33## The Hackable Text Editor
ed914293
JN
34
35The core of emacs is written in C with Elisp offered as an extension language.
b63a9897 36All of the Elisp source code that is running on your Emacs is available easily
ed914293
JN
37through Emacs itself. Elisp is designed to be an easy-to-use minimalistic
38language that non-programmers can use to create small improvements in their
39workflow.
40
b63a9897
JN
41## Software Freedom
42
43One of the speakers called Emacs the mother of all free software. When RMS
44started the free software movement, one of the first tools he built was Emacs,
45using which all other free software was developed, starting with glibc. A lot of
46free software development is done on 40+ years old Emacs even to this day.
47
48Though most of the talks were about people doing cool things with Emacs, I was
49more emotionally touched by these two talks - "GNU Emacs as software freedom in
50practice" by an FSF member Greg Farough and "How to record executable notes with
51eev - and how to play them back" by Eduardo Ochs. These two talks emphasized
52the freedom that Emacs gives to its users, whether they are programmers or not.
53Both the speakers use Emacs the way it is meant to be used. They truly used
54Elisp as an extension language. I highly recommend watching the talks after
55they're posted. This got me thinking. Though I am primarily a programmer and use
56Emacs for almost all text editing, I barely programmed anything in Emacs - the
57programmable text editor. This is mostly because I think that my newbie elisp
58scripts are not as good as the ones already available as Elisp packages, so I
59refrain from writing elisp at all. I realized that this is not how Emacs is
60meant to be used.
61
62Emacs is all about taking the free software editor built by the community,
63making it your own through customization and contributing your improvements back
64to the community if you can.
65
66## Future of Emacs
67
ed914293
JN
68The most controversial talk and the one that generated the most conversation at
69the conference was a talk titled "Emacs: The Editor for the Next Forty Years" by
70Perry E. Metzger. It was quite a ranty talk by an Emacs user of over 20+ years.
71He mentioned that MacOS has better Emacs-everywhere keybindings as compared to
72mainstream GNU/Linux distributions that come with Gnome and KDE. I have to agree
73on this particular thing. But having used Emacs on MacOS myself, I had way too
74many segfaults and bad GUI experience. This was a much worse user experience in
75my opinion. My problems can be easily dismissed as user faults, well so can his.
76One might simply say that he could've used StumpWM or something that has better
77Emacs keybindings (I picked up StumpWM from B. Slade's talk at the same
78conference). The speaker goes on to recommend gradually replacing parts of Emacs
79with better languages that can stand the test of time, using a concept from
80philosophy called the Ship of Theseus. The core of Emacs can be changed from C -
81a dangerous language according to the speaker - to a relatively safer language
82like Rust. Elisp is not such a great language either with all the functions
83staying in the global scope. Maybe a better Lisp would do well as a replacement.
84I have to agree on both. The speaker says that we should put in the effort to
85design a programming language specificially for the use case of Emacs and not
86settle for a general purpose language. Also, the new language should
87interoperate with elisp since there's too much of it to replace without decades
88of work (e.g. org-mode has 120k lines of elisp). The importance of concurrency
89and parallelism in the new language is also stressed.
90
3010a505 91## Miscellaneous
b63a9897
JN
92
93Most of the talks were about how people were using Emacs in their daily life and
94about the cool applications they built on top of Emacs.
95
96As 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
99self-hosted web-based solution called [Organice](https://organice.200ok.ch/
100"Organice") interesting.
101
102The craziest hack I saw is making an object-oriented spreadsheet program in
103Elisp, putting sheet music in it and rendering the audio using a Scheme program.
104
105Almost all presenters used org-mode to make their presentations, with some
106people presenting it within Emacs and others using exported PDFs.
107
108Just 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.
8664a26e
JN
110You can also use the Racket shell called Rash, which is crazy powerful. Equake has
111good integration with StumpWM.
112
113I was aware of the existence of Yasnippet, but never really used it much. I am
114more motivated to use this important productivity tool after watching the talk
115"Don’t wait! Write your own (yas)snippet" by Tony Aldon.
b63a9897 116
3010a505
JN
117### Accessibility
118
b63a9897
JN
119There was a talk by Parham Doustdar, a blind developer who uses Emacs as his
120daily driver. There were some interesting insights on how neglecting
121accessibility in applications seriously impacts the productivity of
122vision-impaired users. Some features can be completely inaccessible. Though the
123W3C is doing some work to improve accessibility in browsers, most HTML is
124rendered by client-side JavaScript these days which makes life even more
125difficult for blind users.
3010a505
JN
126
127### Replacing Shell Scripts?
128
129One of the talks was about trying to automate tasks using Elisp as a replacement
130for shell scripts (Emacs as my Go To Script Language - Howard Abrams). The idea
131is interesting but probably wouldn't entice a Perl hacker to try and use Elisp.
132I have done this myself in the past but the speaker went a bit further in
133building a framework for doing ad-hoc text processing and piping using Emacs.
134The hard reality is that text processing using macros or Elisp is very slow as
135compared to using a Python or Perl script.
136
921d2ea1
JN
137### Language Server Protocol
138
139I've always imagined non-IDE editors like Emacs to be ideal for programming in
140scripting languages. I tried using Emacs for Scala or Java earlier, but always
141end up switching back to IntelliJ. I think the new LSP implementation for Java
142is a game-changer. Though I am not a big fan of Java, it is the open-source
143language that competes with Microsoft C# and has a lot of Apache projects
144written in it. Being able to use Emacs for Java programming with all the
145features of an IDE is definitely a big win for free software. Kotlin doesn't
146have LSP support yet. Maybe it's a conflict of interest for JetBrains.
147
148The conference had an excellent live-coding demonstration of LSP by Torstein
149Krause Johansen in his presentation titled "How Emacs became my awesome Java
150editing environment".
c0422b41 151
1ef2f5bc
JN
152### Evil mode
153
154I was kinda disappointed that only one user used EViL mode. I expected that
155there were at least one talk on Evil mode itself. There was one talk by Zaiste
156about Doom Emacs but the title was too click-baity and showed no code. Maybe I
157should do a talk focussed on evil-mode in the next EmacsConf.
158
159
c0422b41
JN
160## Diversity
161
162The conference seemed to have a good racial mix of speakers. There was a blind
163speaker too. I am happy to see some representation from non-programmers among
164the speakers. The conference can do better in terms of gender diversity.
165
166## Conclusion
167
168The conference was totally worth losing a night's sleep over. I had to stay up
169till 5 am due to timezone differences. I am now more motivated to write some
170Elisp myself and customize Emacs to my specific needs.