My biggest regret in life was that I was introduced to vim before emacs and got really comfortable with it.
Did not realize that everything I was building in my vim configs to make it better was already default in emacs i.e dired, compile mode, magit, org mode, etc.
If I wasn't able to multiplex with tmux I would have switched to emacs a long time ago.
I have been using Emacs for more than 30 years now. Other editors have come and gone, Emacs stayed. Parts of my configuration are more than 30 years old.
There were better and worse times in Emacs history. Recent times, however, are really good. Emacs is maintained and developed actively and there are many external packages which are impressive. Magit and ghostel are good examples of packages that I use on a daily basis to get my work done.
Recently, AI completely changed how I use Emacs, and in a very good way. I now treat AI as a fairy that can fulfill any wish. I describe how I want my editor to work, and boom! it works that way.
Examples: window and tab management, difftastic integration, markdown previews with beautifully rendered tables, markdown previews as PDFs, and many more.
What is most important, however, goes back to Stallman's original ideas. I am in control of my editor and my environment. I decide how it will look and behave. No corporation decides for me. No corporation builds in a new AI assistant. Nobody introduces ads or tracking. This is something I've learned to appreciate over the years.
On one hand, AI boosts Emacs development. On the other hand, as an Emacs user of 30 years, I have always felt that the number of people who deeply grasp Emacs Lisp and Emacs' internals is really small against the population of people merely using Emacs and lightly hacking their own setup, and I worry AI is not going to encourage any growth in that small elite that seems kinda important for Emacs' long-term future.
> the population of people merely using Emacs and lightly hacking their own setup
This is a good thing. Custom environments should be either minimal or upstream. Anybody should be able to sit down next to you and help you hack out a change. The more unusual/custom your environment is the less productive that is, and this more than balances out any possible gain you can make from custom setups. (don't forget to account for your cost to learn elisp and then make the changes!)
Somebody needs to make the correct setups. However most of us have better things to do.
I'm not advocating for making all (or even most) users spend so much time on internals that they don't get productivity gains. Rather, I'm concerned about maintaining, ensuring generational turnover, and healthily boosting the elite that the product depends on. It is no secret that a number of Emacs ecosystem core devs are middle-aged, and so the project is a few heart attacks or whatever away from losing the experience and competence that has sustained it so well.
Most of emacs is lisp. The actual C part is quite small considering the capabilities of the system. Lisp being what it is, it’s moslty about domain knowledge than language expertise.
>and I worry AI is not going to encourage any growth in that small elite
I wouldn't dismiss the help of lower friction of entry. Lots of recent Linux and neovim users due to how easy it is to debug an issue or edit a config now.
The larger the regular userbase, the more chances people gradually go deeper into the system.
Is anybody here consciously trying to keep their Emacs configs/setup "lean", minimalist, as small as possible?
I'm not a coder, but I did use Emacs daily around 2010-2012, with brief returns later. I always gave up eventually because the complexity of addons, the org-mode-can-do-everything-so-I-should-do-everything-with-it etc just grew over my head. I've discovered that I like Plan9 Sam, Acme and, in general, the one-thing-well camp better. Each their own, I guess.
That said, I did often like how "immersive" using Emacs can actually be at times. I'm a trained journalist, and it made managing bits of information, including PDFs etc, really streamlined, almost like a wonder. And, I had my own little OS on a USB stick that way (though the minimalist in me always whined that "an editor" should not weigh 100+ megabytes).
Incredible that it has been around for 50 years, with no signs whatsoever of being a "paradigm of the past".
> Is anybody here consciously trying to keep their Emacs configs/setup "lean", minimalist, as small as possible?
I tried but most of my config is just variable settings (with the use-package macro). I don’t really have custom code there. If I do think about a feature, I tried to build a package instead (like one for bridging subsonic and emms).
After a couple of years of detour I’m back to using Emacs since all the fancy lsp, debugger etc stuff in VSCode and Zed doesn’t matter as much for me anymore and I am just more productive with Emacs. But I am still using it like it is 2020. I hear people using coding agents to make crazy customizations to their emacs config and I can imagine Emacs is particularly suitable for this.
Curious what are the biggest things that have come out in the last year or two, and what emacs based personal software have others reading this made?
Wow I missed canvas support completely. This is going to make some custom UI's way easier to make compared to the hacks I had to resort to in the past [0]
I do hope one day we'd get a new cross platform performant display engine that draws like Zed does for more UI capabilities in Emacs. Neomacs[1] promises this and has some of this but looks like its suffering from never ending scope creep and continuously moving back and forth between 80% there and 90% there due to unattended agents running wild.
It looks like exc.el is built on top of a reactive UI framework, which, well, would have been incomprehensible to the first users of GNU Emacs on PDP-11 UNIX…
About two or three months ago I ditched Neovim as all the complicated modern crap wasn't working for me, and instead of reverting to Vim, I switched to Emacs and Doom + eVil, and am relieved to be back in a nice stable system again. I did ask GPT to port over my key commands and shortcuts, which it did, and things are great again!
not big but i'm still happy about how it allowed me to build a really expressive musical tracker with micro-tonality implemented by default. partly by Csound score paradigm but we also have an interesting macros, a scale paradigm for adding notes and real-time p-field information
Been using an Org file containing all my projects as the tracker for each, with a little custom tool that wraps emacsclient as the driver which my agents use. It's been pretty great, but the single-thread bites as it can get wedged sometimes and then I have to go hit C-g.
About 10+ years ago I found a guide on Helm [0] and a guide on Org-mode [1] when I was just getting into Emacs. This helped me move on from using Spacemacs to making my own configuration.
I no longer use Helm (I'm doing Vertico/Orderless/Consult), but I've stuck with Org-mode since then. I sometimes venture out to other apps (like Joplin, Obsidian, Apple Notes, Apple Reminders, etc), but Org-mode just works best for me.
I don't even use it's most advanced features. The most complicated thing I do is maybe recurring schedules and using the agenda. I don't even have agenda view defined (although I really should at this point, it would be really helpful).
I use it every day at work with a daily log.org file keeping track of what I did each day, a habits.org file for recurring tasks I want to make sure I do (check my email, find a PR to review, etc).
I have various files to help organize my personal life - I heavily rely on Beorg [2] for that.
Looking back on my years with Org-mode, I feel like the primary reason I use it is for the ease of use with keybindings and dealing with plain text. I don't need to dig through menus or swipe around. I just go in and type, write, and delete.
emacs is really something apart, by far the best software I ever had the chance to interact with, the closest thing we ever got of a lisp machine, a completly hackable, self documenting programming environment where you can change anything without limits.
It's unfortunate its underlying ideas aren't more widely used in our industry, the very idea that you don't need to expose a separate API for people to create and extends things since code is the api is a idea that put emacs on a league of its own .... Thank you to anyone who has been involved in developing it.
Also I would love to hear Stallman view of labs using (A)GPL code and not contributing back to the world since this is completly against not only the ethos of free software but what Stallman teached to the world about the very purpose of its license
In his senescence, licensing is all the geezer talks about. Unfortunately, to find out what he's saying you'd have to subscribe to an obscure mailing list hosted on a DEC machine in Chelmsford.
I started using Emacs 30 years ago. Used it as my main code editor for 15 years, and as my note-taking editor a little longer. I did write my share of elisp code, had a lot of fun with it, posted on gnu.emacs.sources back in the day, and shared a lot.
Emacs is still my main editor over ssh, so I happen to use it on a regular basis, and the commands are all imprinted on my fingers' muscle memory, so that's quite the comfort zone.
Emacs is awesome, but it is unfortunate that on Windows it still only supports x64, which is a legacy platform at this point. Hopefully arm64 will be supported soon as well!
So here's an embarassing confession for the occasion:
I code in Emacs almost every day. I read and write e-mail in Emacs almost every day. I take notes in Emacs almost every day. I maninpulate data in Emacs almost every day. Yet I don't know LISP (any LISP!) at all, I barely use any packages beyond "whatever it is that Debian ships by default", and I'm quite bad at fancy Emacs shortcuts. My Emacs config file is a hodge-podge of little snippets I don't properly understand – and it measures in at just about 100 lines, including comments and whitespace, with a significant part of that being just mundane configuration data for the mu4e Emacs client!
This has been the case for about 15 years now. And I'm the kind of person who really likes to know my tools. It's such a ridiculous situation! I somehow never get properly around to sitting down and learning, and I really struggle to make LISP click.
Sigh. I hope I'm not alone. I really really really should learn this thing!
Anyway, the most important part is: Despite all of this, Emacs is still fantastic for me! Here's to the next 50!
The reason Emacs survived 50 years while countless modern IDEs rose and died is architectural: Emacs isn't just a text editor with a plugin API—it's an interactive Lisp runtime that treats text buffers as first-class citizens.
Modern editors build layers upon layers of IPC, JSON-RPC protocols, and sandboxed extensions to keep the user from touching the core. Emacs did the opposite: it gave the user direct access to the live execution state. You don’t "configure" Emacs from the outside; you mold it into the exact operational extension of your own thought process.
In an era where modern developer tools consume gigabytes of memory just to render a UI tree, there is something deeply grounding about a piece of software from 1976 that still offers the most malleable computing medium on earth.
My biggest regret in life was that I was introduced to vim before emacs and got really comfortable with it.
Did not realize that everything I was building in my vim configs to make it better was already default in emacs i.e dired, compile mode, magit, org mode, etc.
If I wasn't able to multiplex with tmux I would have switched to emacs a long time ago.
I have been using Emacs for more than 30 years now. Other editors have come and gone, Emacs stayed. Parts of my configuration are more than 30 years old.
There were better and worse times in Emacs history. Recent times, however, are really good. Emacs is maintained and developed actively and there are many external packages which are impressive. Magit and ghostel are good examples of packages that I use on a daily basis to get my work done.
Recently, AI completely changed how I use Emacs, and in a very good way. I now treat AI as a fairy that can fulfill any wish. I describe how I want my editor to work, and boom! it works that way.
Examples: window and tab management, difftastic integration, markdown previews with beautifully rendered tables, markdown previews as PDFs, and many more.
What is most important, however, goes back to Stallman's original ideas. I am in control of my editor and my environment. I decide how it will look and behave. No corporation decides for me. No corporation builds in a new AI assistant. Nobody introduces ads or tracking. This is something I've learned to appreciate over the years.
On one hand, AI boosts Emacs development. On the other hand, as an Emacs user of 30 years, I have always felt that the number of people who deeply grasp Emacs Lisp and Emacs' internals is really small against the population of people merely using Emacs and lightly hacking their own setup, and I worry AI is not going to encourage any growth in that small elite that seems kinda important for Emacs' long-term future.
> the population of people merely using Emacs and lightly hacking their own setup
This is a good thing. Custom environments should be either minimal or upstream. Anybody should be able to sit down next to you and help you hack out a change. The more unusual/custom your environment is the less productive that is, and this more than balances out any possible gain you can make from custom setups. (don't forget to account for your cost to learn elisp and then make the changes!)
Somebody needs to make the correct setups. However most of us have better things to do.
I'm not advocating for making all (or even most) users spend so much time on internals that they don't get productivity gains. Rather, I'm concerned about maintaining, ensuring generational turnover, and healthily boosting the elite that the product depends on. It is no secret that a number of Emacs ecosystem core devs are middle-aged, and so the project is a few heart attacks or whatever away from losing the experience and competence that has sustained it so well.
Most of emacs is lisp. The actual C part is quite small considering the capabilities of the system. Lisp being what it is, it’s moslty about domain knowledge than language expertise.
>and I worry AI is not going to encourage any growth in that small elite
I wouldn't dismiss the help of lower friction of entry. Lots of recent Linux and neovim users due to how easy it is to debug an issue or edit a config now.
The larger the regular userbase, the more chances people gradually go deeper into the system.
I think that is part of the beauty of Emacs -- it is what one makes of it.
Is anybody here consciously trying to keep their Emacs configs/setup "lean", minimalist, as small as possible?
I'm not a coder, but I did use Emacs daily around 2010-2012, with brief returns later. I always gave up eventually because the complexity of addons, the org-mode-can-do-everything-so-I-should-do-everything-with-it etc just grew over my head. I've discovered that I like Plan9 Sam, Acme and, in general, the one-thing-well camp better. Each their own, I guess.
That said, I did often like how "immersive" using Emacs can actually be at times. I'm a trained journalist, and it made managing bits of information, including PDFs etc, really streamlined, almost like a wonder. And, I had my own little OS on a USB stick that way (though the minimalist in me always whined that "an editor" should not weigh 100+ megabytes).
Incredible that it has been around for 50 years, with no signs whatsoever of being a "paradigm of the past".
I usually just use Prelude for some modern defaults
> Is anybody here consciously trying to keep their Emacs configs/setup "lean", minimalist, as small as possible?
I tried but most of my config is just variable settings (with the use-package macro). I don’t really have custom code there. If I do think about a feature, I tried to build a package instead (like one for bridging subsonic and emms).
After a couple of years of detour I’m back to using Emacs since all the fancy lsp, debugger etc stuff in VSCode and Zed doesn’t matter as much for me anymore and I am just more productive with Emacs. But I am still using it like it is 2020. I hear people using coding agents to make crazy customizations to their emacs config and I can imagine Emacs is particularly suitable for this.
Curious what are the biggest things that have come out in the last year or two, and what emacs based personal software have others reading this made?
Native compilation is now default, so elisp is much faster than it was out of the box.
Tree-sitter support is quite smooth now, with automatic grammar installation.
Apparently very good Android support.
Canvas support is in master, people are building all kinds of crazy stuff[0] with this
Lots of nice built-in packages like modus themes, eglot, which-key. Editable grep/xref/occur results is also built-in now. New context menu things.
Load the "newcomer-presets" theme to enable stuff that newcomers tend to want enabled (tab bar, fancy completion, lots of little things).
[0] e.g. https://monadicsheep.org/blog/an-introduction-to-canvas-in-e..., and https://www.youtube.com/watch?v=61-uNV9N154 / https://github.com/yibie/exc.el
Fantastic rundown, thank you!
Wow I missed canvas support completely. This is going to make some custom UI's way easier to make compared to the hacks I had to resort to in the past [0]
I do hope one day we'd get a new cross platform performant display engine that draws like Zed does for more UI capabilities in Emacs. Neomacs[1] promises this and has some of this but looks like its suffering from never ending scope creep and continuously moving back and forth between 80% there and 90% there due to unattended agents running wild.
[0] https://github.com/ozanvos/emacs-webkit-color-picker
[1] https://github.com/eval-exec/neomacs
It looks like exc.el is built on top of a reactive UI framework, which, well, would have been incomprehensible to the first users of GNU Emacs on PDP-11 UNIX…
https://github.com/emacs-taf
About two or three months ago I ditched Neovim as all the complicated modern crap wasn't working for me, and instead of reverting to Vim, I switched to Emacs and Doom + eVil, and am relieved to be back in a nice stable system again. I did ask GPT to port over my key commands and shortcuts, which it did, and things are great again!
not big but i'm still happy about how it allowed me to build a really expressive musical tracker with micro-tonality implemented by default. partly by Csound score paradigm but we also have an interesting macros, a scale paradigm for adding notes and real-time p-field information
[0] https://github.com/luqtas/csound-score-emacs
Been using an Org file containing all my projects as the tracker for each, with a little custom tool that wraps emacsclient as the driver which my agents use. It's been pretty great, but the single-thread bites as it can get wedged sometimes and then I have to go hit C-g.
About 10+ years ago I found a guide on Helm [0] and a guide on Org-mode [1] when I was just getting into Emacs. This helped me move on from using Spacemacs to making my own configuration.
I no longer use Helm (I'm doing Vertico/Orderless/Consult), but I've stuck with Org-mode since then. I sometimes venture out to other apps (like Joplin, Obsidian, Apple Notes, Apple Reminders, etc), but Org-mode just works best for me.
I don't even use it's most advanced features. The most complicated thing I do is maybe recurring schedules and using the agenda. I don't even have agenda view defined (although I really should at this point, it would be really helpful).
I use it every day at work with a daily log.org file keeping track of what I did each day, a habits.org file for recurring tasks I want to make sure I do (check my email, find a PR to review, etc).
I have various files to help organize my personal life - I heavily rely on Beorg [2] for that.
Looking back on my years with Org-mode, I feel like the primary reason I use it is for the ease of use with keybindings and dealing with plain text. I don't need to dig through menus or swipe around. I just go in and type, write, and delete.
[0]: https://tuhdo.github.io/helm-intro.html
[1]: https://doc.norang.ca/org-mode.html
[2]: https://www.beorgapp.com/
emacs is really something apart, by far the best software I ever had the chance to interact with, the closest thing we ever got of a lisp machine, a completly hackable, self documenting programming environment where you can change anything without limits.
It's unfortunate its underlying ideas aren't more widely used in our industry, the very idea that you don't need to expose a separate API for people to create and extends things since code is the api is a idea that put emacs on a league of its own .... Thank you to anyone who has been involved in developing it.
Also I would love to hear Stallman view of labs using (A)GPL code and not contributing back to the world since this is completly against not only the ethos of free software but what Stallman teached to the world about the very purpose of its license
I would love to hear Stallman's view
In his senescence, licensing is all the geezer talks about. Unfortunately, to find out what he's saying you'd have to subscribe to an obscure mailing list hosted on a DEC machine in Chelmsford.
I started using Emacs 30 years ago. Used it as my main code editor for 15 years, and as my note-taking editor a little longer. I did write my share of elisp code, had a lot of fun with it, posted on gnu.emacs.sources back in the day, and shared a lot.
Emacs is still my main editor over ssh, so I happen to use it on a regular basis, and the commands are all imprinted on my fingers' muscle memory, so that's quite the comfort zone.
Happy Emacs anniversary to everyone!
I started using Emacs at the AI lab in 1978. It's still my main development tool and probably still the program I spend most of my time in today.
I named my cat Emacs, and he's only three years old. His sister's name is Pip.
And to answer the question I get a lot: no, it would be morally reprehensible to name a cat after an inferior editor such as "vi".
I often thought that a cat could be named /bin/cat. After all, many cats seem to enjoy being in boxes or bins!
And his brothers /bin/bzcat, /bin/pacat, /bin/netcat and /bin/sqfscat.
I can only imagine that Pip is an orange cat with typical orange cat characteristics like being crazy and breaking things occasionally.
TFA begins before GNU Emacs proper, but, still: does age and portability make Elisp the ultimate write-one-run-everywhere language?
Emacs is awesome, but it is unfortunate that on Windows it still only supports x64, which is a legacy platform at this point. Hopefully arm64 will be supported soon as well!
Anyone that wishes the death of Intel/AMD, will dearly miss the PC clones.
or, maybe more hopefully, Windows as a whole becomes a legacy platform soon :)
Ask Valve how it is going with their plans to drop Proton.
Proton is the shim for backwards compatibility with a messy legacy system. We've all been there.
And we've also seen how legacy systems refuse to die :(
Source?
What source? It is quite obvious without Proton there are no games for SteamOS.
So here's an embarassing confession for the occasion:
I code in Emacs almost every day. I read and write e-mail in Emacs almost every day. I take notes in Emacs almost every day. I maninpulate data in Emacs almost every day. Yet I don't know LISP (any LISP!) at all, I barely use any packages beyond "whatever it is that Debian ships by default", and I'm quite bad at fancy Emacs shortcuts. My Emacs config file is a hodge-podge of little snippets I don't properly understand – and it measures in at just about 100 lines, including comments and whitespace, with a significant part of that being just mundane configuration data for the mu4e Emacs client!
This has been the case for about 15 years now. And I'm the kind of person who really likes to know my tools. It's such a ridiculous situation! I somehow never get properly around to sitting down and learning, and I really struggle to make LISP click.
Sigh. I hope I'm not alone. I really really really should learn this thing!
Anyway, the most important part is: Despite all of this, Emacs is still fantastic for me! Here's to the next 50!
The reason Emacs survived 50 years while countless modern IDEs rose and died is architectural: Emacs isn't just a text editor with a plugin API—it's an interactive Lisp runtime that treats text buffers as first-class citizens.
Modern editors build layers upon layers of IPC, JSON-RPC protocols, and sandboxed extensions to keep the user from touching the core. Emacs did the opposite: it gave the user direct access to the live execution state. You don’t "configure" Emacs from the outside; you mold it into the exact operational extension of your own thought process.
In an era where modern developer tools consume gigabytes of memory just to render a UI tree, there is something deeply grounding about a piece of software from 1976 that still offers the most malleable computing medium on earth.
It's kind of striking how that joke post about ed (from 1991) presented Emacs as extremely resource-wasteful
https://www.gnu.org/fun/jokes/ed-msg.html
but I guess trends elsewhere were so keen on adding abstractions that now Emacs is an efficient, parsimonious choice by comparison.