Comment by grep_name
17 hours ago
People definitely sleep on emacs, which is a shame, but I do get it. I switched to emacs fulltime for coding for my work a few years ago, and really had it tailored to my preferences but drift (that took just slightly too long for me to keep up with while on the job) combined with AI features in other editors led me to land on Zed for code, which saddened me but is probably the best fit for coding.
However, Org-Mode is seriously a killer feature that is well worth it on its own. I use emacs to handle all my finances, notes with org-roam, blogging with ox-hugo, dotfiles in a massive org-tangle document, etc. I couldn't find anything remotely to compare it to, and have failed attempts at switching. There are tons of ways of interacting with Emacs that are just lightyears ahead of anything else. Literate programming and tangle are a godsend for tons of different use cases for me as well. I even keep running notes in the base of my codebase so I can hop to various files and capture locations in the relevant files as links in notes.
The only pain point for these tools for me is trying to use them as part of a commandline integration. I really wish org-mode and org-roam's functions were callable outside of emacs, e.g. for automated document generation from org-mode. One of the most painful things I've had to setup is an org-roam-server integration that updates and deploys org-roam-server when the git repo containing its files is updated. Only way to do that seemingly is to run emacs in a very strange way inside of a docker image. Intuitively it feels like org-roam-server should be able to build itself into a static website for deployment. Might seem like a nitpick, but it's really not -- that interface is a huge part of why I use it and not being able to host it without horribly hacky workarounds seems like a massive weakness.
> I really wish org-mode and org-roam's functions were callable outside of emacs
What are you even talking about? It's like wishing for java programs to be able to execute without JVM, or Erlang-code without BEAM. While that's theoretically possible to a certain degree (using Graal and Lumen), it's not easily achievable.
Org-mode is written in Elisp, of course it needs Emacs to run. You just need Emacs executable and you can absolutely run scripts in batch mode. I have done it many times, running tests on GitHub Actions, etc.
Which is why I've settled on neovim; I've written my code to be as modular as possible, so I can pull it in an CLI program if needs be.
Neovim is a text editor. You can't compare Emacs with just a text editor. Just like you can't compare Emacs with a browser, music player, note-taking app, email client, etc. Emacs, first and foremost, is a Lisp REPL, with an embedded text editor. Without deeply understanding and respecting this aspect it is difficult to appreciate what Emacs could be, what you can do with it.
Imagine this — one morning I was watching my colleague showing me a bunch of things over a Zoom video, and I didn't feel comfortable interrupting him with "wait, don't scroll away, I didn't get that, allow me to read it", "hold on, I'm taking notes", etc. I sacrificed my lunch break to write a small Elisp command that runs tesseract to OCR the image in the clipboard. Now, I don't even have to ask my colleagues for explanations or tell them to share the url they are currently browsing — I can just grab it with a couple of keystrokes to make a note. And that's just one, single, isolated example. It cost me twenty minutes of my time. Twenty minutes of investment that paid itself many times over already. And I have tons of similar examples.
And this is why I stay away from eMacs.
1 reply →