Most active commenters
  • ubermonkey(6)
  • DonHopkins(5)

←back to thread

Bare Metal (The Emacs Essay)

(waxbanks.wordpress.com)
197 points hpaone | 16 comments | | HN request time: 0.313s | source | bottom
Show context
billfruit ◴[] No.45653702[source]
While I still use emacs, I find that that despite the "batteries included" narrative about emacs, the things which are not included are causes of major frustration.

Such essential functionality like grep-find and LSP servers which is required for out of the box auto complete are not bundled with emacs. Most modern IDEs/editors have these functionality baked in.

If you install emacs for windows you find that grep-find doesn't work, because it depends on support from environment. A full text search should be built into the editor.

replies(13): >>45653816 #>>45653935 #>>45654013 #>>45654310 #>>45654657 #>>45654749 #>>45654984 #>>45655041 #>>45655085 #>>45655291 #>>45655623 #>>45656821 #>>45682752 #
ubermonkey ◴[] No.45655085[source]
>If you install emacs for windows...

...you are a second class citizen in the emacs republic.

I mean, I don't endorse this position, but it's the way things are.

replies(1): >>45655228 #
1. DonHopkins ◴[] No.45655228[source]
>If you install emacs for mac...

...you are a third class citizen in the emacs republic.

In spite of the fact that you can't spell emacs without mac.

Also:

>If you install emacs for linux...

...you get flamed for not calling it gnu/linux.

replies(2): >>45656184 #>>45658821 #
2. slowmovintarget ◴[] No.45656184[source]
Emacs for Mac is fine though?: https://github.com/jimeh/emacs-builds

That build has native compilation, and if you go for a Doom install you may need to build ripgrep yourself, but... that's also not difficult.

replies(2): >>45656246 #>>45660174 #
3. jpfromlondon ◴[] No.45656246[source]
they mean you live within the walled garden, that you are playing make-believe.
replies(1): >>45658831 #
4. ubermonkey ◴[] No.45658821[source]
I use emacs on a Mac and it is dead easy, so I'm not sure what you mean by this. I had to do nothing at all to make it work. It just worked.
5. ubermonkey ◴[] No.45658831{3}[source]
That's not true, either, but I understand it's important for a certain sort of FOSS person to believe it anyway.
replies(1): >>45666460 #
6. DonHopkins ◴[] No.45660174[source]
Oh sweet summer child.

http://xahlee.info/emacs/misc/emacs_macos_emoji.html

Color emoji was deliberately disabled on macOS (2016): policy first, parity later. Emacs 25 turned off multicolor fonts on the Cocoa port even though they worked, with a NEWS note saying they’d be re-enabled "once it is also implemented in Emacs on free operating systems." This was widely read as a political parity requirement that penalized macOS users for years.

https://www.gnu.org/prep/standards/standards.html

"Prefer GNU/GNU-Linux" development time: an explicit guideline. GNU’s own standards advise spending time on features "useful on GNU and GNU/Linux, rather than on supporting other incompatible systems." That guideline has often been cited in Emacs discussions to argue against platform-specific work that would land only on macOS.

https://irreal.org/blog/?p=13137

https://xenodium.com/emacs-send-to-aka-macos-sharing-merged-...

macOS-only features face extra process friction, or must be generalized. The "send-to" (macOS Sharing) patch was finally merged in 2025 -- but only after a lengthy debate and a rework into a cross-platform framework to satisfy GNU policy concerns about adding features that target a non-free OS first. (The end result is good! -- but the path illustrates the extra hurdles for macOS-first work.)

https://bitbucket.org/mituharu/emacs-mac

Long-running reliance on mac-specific forks to get a polished UX. For years, many mac users have depended on Mitsuharu Yamamoto's Emacs Mac port (emacs-mac) or distributions like Aquamacs to get native scrolling, gestures, font/rendering tweaks, and other integrations that either lagged upstream or weren’t accepted. The continued popularity and active maintenance of these forks reflects a gap in first-party mac attention.

https://xlii.space/eng/emacs-the-macos-bug/

https://news.ycombinator.com/item?id=44737676

Recent high-profile macOS performance pathology highlighted as "non-primary platform" pain. In 2025, a widely-read analysis ("Emacs: The macOS Bug") traced severe jank/memory growth to how Emacs drives Cocoa’s runloop (e.g., NSApp run usage inside the select/IO path), arguing that historical architecture -- plus macOS not being a primary target -- left deep issues unaddressed for years. Follow-on bug threads on emacs-devel discuss memory fragmentation and event handling. This is more engineering history than politics, but it shows practical consequences of platform de-prioritization.

https://www.gnu.org/philosophy/applying-free-sw-criteria

FSF position on non-free systems frames the culture. FSF materials repeatedly emphasize using and prioritizing free systems. Even where they explicitly say they didn’t drop support for non-free OSes, the values signal still affects triage, reviews, and what maintainers feel comfortable merging first. This shapes outcomes like color emoji support and the review friction in the "send-to" patch.

https://lists.gnu.org/r/emacs-devel/2012-07/msg00287.html

https://www.gnu.org/software/emacs/manual///html_node/efaq/N...

https://aquamacs.org/features/

https://lists.nongnu.org/archive/html/emacs-devel/2008-03/ms...

2008–2010, the long, bumpy road to a native Mac port: During Emacs 23’s cycle the old Carbon port was "completely broken ... for almost a year," and was ultimately removed when the new Cocoa/Nextstep port was merged. For years many Mac users relied on forks (Aquamacs, Mitsuharu's "Emacs Mac Port") for a smoother experience, reinforcing the "not a first-class target" vibe.

https://www.reddit.com/r/emacs/comments/bek5b2/til_emacs_was...

https://www.tuhs.org/pipermail/tuhs/2025-April/031758.html

https://github.com/SimHacker/NeMACS/blob/main/src/config.h#L...

RMS isn't only against Emacs on Macs and Windows. He also has some strong opinions about UniPress Software, who sold a version of Gosling's Emacs for Gosling's own NeWS window system, Apple Lisa, Mac, MS-DOS, Amiga, Xenix, SGI IRIX, Intergraph, xePIX, Northern Telecom, Cadmus, DEC Rainbow, VMS, VAX BSD, DECWRL Titan, TI Professional, Masscomp, Apollo, HP, Stride, AT&T 3B, System V, Gould, NBI U! ("Nifty Box"), Pyramid, Perkin-Elmer, Cray UniCos, and many other proprietary Unix systems.

https://news.ycombinator.com/item?id=28419139

>I worked at UniPress on the Emacs display driver for the NeWS window system (the PostScript based window system that James Gosling also wrote), with Mike "Emacs Hacker Boss" Gallaher, who was charge of Emacs development at UniPress. One day during the 80's Mike and I were wandering around an East coast science fiction convention, and ran into RMS, who's a regular fixture at such events.

>Mike said: "Hello, Richard. I heard a rumor that your house burned down. That's terrible! Is it true?"

>RMS replied right back: "Yes, it did. But where you work, you probably heard about it in advance."

>Everybody laughed. It was a joke! Nobody's feelings were hurt. He's a funny guy, quick on his feet!

replies(2): >>45660945 #>>45662070 #
7. ubermonkey ◴[] No.45660945{3}[source]
Wow that's a wall of text proving pretty much nothing, other than that RMS is an out of touch goofball.

As I and others have noted, actually using emacs on a Macintosh is dead easy. MacOS ships with an older terminal version, so you don't even have to download anything if you're fine with that distro. OTOH, multiple native build distributions exist and are a click away.

I spend a good chunk of my day in a native build between text, scripting, and Orgmode, and, again, it's just not a problem. It's far easier, in fact, to use emacs on a Mac than on Windows precisely because MacOS is a unixy environment.

replies(1): >>45660995 #
8. DonHopkins ◴[] No.45660995{4}[source]
It only proves nothing if you didn't bother reading it (which you words "wall of text" imply) and didn't check any of the links proving what I said. Instead of dismissing everything by handwaving, please tell me which specific points I made that you disagree with, and what is your evidence?

How long have you been using Emacs, yourself? If you just got started a few years ago, then that excuses your ignorance of history (but not your unwillingness to learn), but there is a LOT of well documented history about Emacs on the Mac, and all those links you didn't bother following prove it.

You can't win an argument by being ignorant of history, claiming tl;dr, and refusing to look at the evidence. That's just conceding my points by default. Can you do any better than that?

replies(2): >>45661345 #>>45662207 #
9. slowmovintarget ◴[] No.45661345{5}[source]
It feels like this changed roughly in the last five years. That's about how long I've been using Emacs on Mac.

I'd mostly been using Sublime / Atom / Eclipse / Vim before that (and a long list of other IDEs and editors going back to Turbo Pascal 3.0 on IBM XTs). So perhaps I've not felt the same pain.

I'm glad I can use Emacs at work (on Macs) and at home (on Linux). The funny thing is it's been easier to get Emacs up and running on Mac than on Linux. To get the latest stable Emacs I had to pull the source and build it myself (Ubuntu repos had old versions). On Mac it was just finding the right cask in Homebrew.

replies(1): >>45661623 #
10. DonHopkins ◴[] No.45661623{6}[source]
>It feels like this changed roughly in the last five years.

Hmm, that's about how long ago RMS got "canceled" and resigned from the FSF board (September 2019). Go figure!

11. hirvi74 ◴[] No.45662070{3}[source]
I've got another one for macOS. It's not as significant as what you listed, but it was extremely annoying for me.

When using homebrew, the default package for emacs is version 30. However, that version on macOS was compiled with an outdated tree-sitter version (v14). If one tries to install a tree-sitter parser for a particular language it will not work with emacs 29 or 30 on macOS (or at least not that I could figure out). I tried the D12Frosted version and some of the alternatives for macOS (I forget the names).

The current tree-sitter project is on v15+, so in order for it to work, one has to go through the commit histories for each language and find when the tree sitter's parser version was last compatible with v14. To my knowledge, this was not clearly listed in all the git commits in a nice clean manner.

One alleged workaround was to install everything via RedHat OS and move the installed parsers over to macOS since their version of emacs and the tree-sitter parsers are still compatible. However, I was not interested in doing this.

Interestingly enough, Neovim does not have this issue on macOS to my knowledge, but I could be wrong.

Now, this is not entirely an emacs issue, but it does introduce an interesting issue. If emacs has to be compiled with a particular tree-sitter version, then it makes things quite difficult to maintain. The maintainers apparently are discussing various options on how to handle this going forward, but there isn't a clear way to work around this.

Now, I do believe if one builds emacs from source, he or she can work around this issue to some degree, but I was also not interesting in doing this because one loses out on some of the nice features that the macOS focused emacs versions come with. I also did not want to install all the dependencies required to build from source since those dependencies are not something I have any other use for other than building emacs.

So, I just gave up on the tree-sitter. Though, I think emacs 31 has this fixed until it happens again, but I also encountered a lot of other bugs when trying other use it since it's a prerelease version anyway.

This was all months ago, so maybe things have changed. I haven't kept up. I can live without tree-sitter for the time being.

12. ubermonkey ◴[] No.45662207{5}[source]
The point is that you came in here with a pasted wall of text with a whole bunch of urls claiming emacs users on MacOS are somehow 3rd class citizens because ... of things from long ago, I guess.

My point, Don, is that these long-ago issues are now irrelevant. Your position here runs utterly counter to the lived experience of Mac emacs users.

I don't care what RMS did in 2005. It's not relevant to using emacs on a Mac in 2025.

I don't even need to care about the history of emacs on the Mac, or whatever other ill-advised chicanery the FSF has committed on this or any other point (and, not to put too fine a point on it, but at 55 I've seen plenty of goofy own-goals from that crowd).

What matters now is "gee, how easy is it for a Mac user to access and use emacs productively?" That answer, for at least the last 8 to 10 years (which is also the answer to your gatekeepy question), has been "very!" You open terminal and type "emacs," or you download a build that runs as a gui from any of several maintainers. You're done.

It's about as simple as it is to run it on a Linux box (which I also do), and far simpler than getting it to behave under Windows (and I have those scars, too).

So what was your point again?

replies(2): >>45662522 #>>45684074 #
13. tom_ ◴[] No.45662522{6}[source]
My thoughts too. I've never had any real problems running it on Windows myself, but it doesn't feel like Mac users are any worse off.

I've been using Mac Emacs since about 2010, so perhaps I dodged some of the worst stuff, and it's always felt - for good or for ill - very much the same as using it on Windows or Linux/X-Windows, both of which I've been using since 2005 or so.

I've always used the standard GNU version rather than any specific Mac port. Over the years I'll have done some mix of downloading prebuilt binaries, building it from source, or getting the MacPorts version.

Perhaps I have missed out on some Fancy Extra Mac Stuff, the sort of thing that would come as standard with any project that took the platform seriously, but it's never really felt like a problem. And indeed, I figure if I'm happy enough with it running on X-Windows and on Windows, why wouldn't I be just as happy with exactly the same thing on macOS too? A consistent (or near enough) cross-platform experience is part of why I use Emacs anyway.

14. jpfromlondon ◴[] No.45666460{4}[source]
take it up with the fundamentalists, I'm a Mac Emacs user.
replies(1): >>45668047 #
15. ubermonkey ◴[] No.45668047{5}[source]
Ah, fair. Me too.
16. DonHopkins ◴[] No.45684074{6}[source]
My sweet summer child.