]>
Commit | Line | Data |
---|---|---|
ed914293 JN |
1 | --- |
2 | title: "EmacsConf 2019" | |
3 | date: 2019-11-03T15:40:09+05:30 | |
921d2ea1 | 4 | lastmod: 2019-11-04T15:40:09+05:30 |
ed914293 JN |
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 | ||
b63a9897 JN |
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 | |
ed914293 JN |
34 | |
35 | The core of emacs is written in C with Elisp offered as an extension language. | |
b63a9897 | 36 | All of the Elisp source code that is running on your Emacs is available easily |
ed914293 JN |
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 | ||
b63a9897 JN |
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 | ||
ed914293 JN |
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 | ||
3010a505 | 91 | ## Miscellaneous |
b63a9897 JN |
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. | |
8664a26e JN |
110 | You can also use the Racket shell called Rash, which is crazy powerful. Equake has |
111 | good integration with StumpWM. | |
112 | ||
113 | I was aware of the existence of Yasnippet, but never really used it much. I am | |
114 | more 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 |
119 | There was a talk by Parham Doustdar, a blind developer who uses Emacs as his |
120 | daily driver. There were some interesting insights on how neglecting | |
121 | accessibility in applications seriously impacts the productivity of | |
122 | vision-impaired users. Some features can be completely inaccessible. Though the | |
123 | W3C is doing some work to improve accessibility in browsers, most HTML is | |
124 | rendered by client-side JavaScript these days which makes life even more | |
125 | difficult for blind users. | |
3010a505 JN |
126 | |
127 | ### Replacing Shell Scripts? | |
128 | ||
129 | One of the talks was about trying to automate tasks using Elisp as a replacement | |
130 | for shell scripts (Emacs as my Go To Script Language - Howard Abrams). The idea | |
131 | is interesting but probably wouldn't entice a Perl hacker to try and use Elisp. | |
132 | I have done this myself in the past but the speaker went a bit further in | |
133 | building a framework for doing ad-hoc text processing and piping using Emacs. | |
134 | The hard reality is that text processing using macros or Elisp is very slow as | |
135 | compared to using a Python or Perl script. | |
136 | ||
921d2ea1 JN |
137 | ### Language Server Protocol |
138 | ||
139 | I've always imagined non-IDE editors like Emacs to be ideal for programming in | |
140 | scripting languages. I tried using Emacs for Scala or Java earlier, but always | |
141 | end up switching back to IntelliJ. I think the new LSP implementation for Java | |
142 | is a game-changer. Though I am not a big fan of Java, it is the open-source | |
143 | language that competes with Microsoft C# and has a lot of Apache projects | |
144 | written in it. Being able to use Emacs for Java programming with all the | |
145 | features of an IDE is definitely a big win for free software. Kotlin doesn't | |
146 | have LSP support yet. Maybe it's a conflict of interest for JetBrains. | |
147 | ||
148 | The conference had an excellent live-coding demonstration of LSP by Torstein | |
149 | Krause Johansen in his presentation titled "How Emacs became my awesome Java | |
150 | editing environment". | |
c0422b41 | 151 | |
1ef2f5bc JN |
152 | ### Evil mode |
153 | ||
154 | I was kinda disappointed that only one user used EViL mode. I expected that | |
155 | there were at least one talk on Evil mode itself. There was one talk by Zaiste | |
156 | about Doom Emacs but the title was too click-baity and showed no code. Maybe I | |
157 | should do a talk focussed on evil-mode in the next EmacsConf. | |
158 | ||
159 | ||
c0422b41 JN |
160 | ## Diversity |
161 | ||
162 | The conference seemed to have a good racial mix of speakers. There was a blind | |
163 | speaker too. I am happy to see some representation from non-programmers among | |
164 | the speakers. The conference can do better in terms of gender diversity. | |
165 | ||
166 | ## Conclusion | |
167 | ||
168 | The conference was totally worth losing a night's sleep over. I had to stay up | |
169 | till 5 am due to timezone differences. I am now more motivated to write some | |
170 | Elisp myself and customize Emacs to my specific needs. |