top | item 36929514

Emacs 29.1

378 points| pimeys | 2 years ago |emacsredux.com

308 comments

order
[+] jwr|2 years ago|reply
So happy to see my favorite IDE for the last 30 years being actively developed and maintained. Multiple IDEs have come and gone over those 30 years, and I waved to them on their way as they arrived and then as they passed away into nothingness.

Every time a new IDE arrived, crowds cheered, and it was all the rage and fashion, while my Emacs was called "obsolete", "hard to use", "bizarre", and other things. I spent some time over those 30 years looking at new IDEs, trying them out, configuring them, and each and every time this was time wasted, because the IDE was discontinued, abandoned, or otherwise became useless.

If I could tell something to my younger self, it would be: keep faith in solutions that are open and have been around for a while, you will save a lot of time over the years.

[+] rdtsc|2 years ago|reply
Same here. It's the oldest continuously used piece of software for me. I tried it first on a Sun Unix workstation at the university around the late 90s. I've tried komodo, vscode, sublime, vi and many others and still use emacs. The funny thing I don't even know that many key combinations and use only a few customizations.

I was pleasantly surprised when I was issued a mac at work that most of the basic editing commands on macos text widgets support emacs key bindings (ctrl+a/e/k/p/n).

[+] hiepph|2 years ago|reply
> Emacs was called "obsolete", "hard to use", "bizarre", and other things.

Well, Emacs isn't designed for a common user, but for a power user. From my experience, first time using Emacs was really frustrated.

In contrary, VSCode, Atom, Sublime Text etc. were usable right from the start. But these IDEs didn't stick for me. Easy come, easy go, I guess.

Emacs and Vim, although took a lot of effort to configure them into usable text editors/IDEs, stick with me 'til these days and I'm continuing to use them in the future. The power of configurations are astounding and I can shape them into whatever I want.

[+] nvy|2 years ago|reply
>Emacs was called "obsolete", "hard to use", "bizarre", and other things.

As a daily emacs user, it is all those things. It's just also awesome if you put in the time to get over the hump and learn it.

The "out of box" experience for emacs is really, really bad.

[+] pama|2 years ago|reply
I'm also very happy with Emacs' continued existence. Frankly, I don't know what I'd do without M-x shell plus related hacks, but I think I'd have to reinvent the concept of having arbitrary numbers of named shells with infinite output/input streams attached to them, with searchable histories, etc. Just like the unix concept that everything is a file was super powerful, so is the Emacs concept that everything is text. And of course lisp helps smooth things out whenever there are rough edges.
[+] Dobiasd|2 years ago|reply
> I spent some time over those 30 years looking at new IDEs, trying them out, configuring them, and each and every time this was time wasted, because the IDE was discontinued, abandoned, or otherwise became useless.

"wasted" sounds a bit too hard to me. If you learn and use some tool productively for some years, even if this stops, the years were not wasted. Ephemeral things can also have value.

[+] jon_adler|2 years ago|reply
No an eMacs user myself, but do you ever imagine a time when the software might be considered “done”?
[+] garfieldnate|2 years ago|reply
To be fair, this release supports LSP and TreeSitter (which is super cool), but these are features that were pioneered by other editors and available elsewhere long before emacs. These ideas wouldn't be coming to emacs if it weren't for the experimentation and polishing done elsewhere.
[+] xyproto|2 years ago|reply
This is an emacs-centric world view and many of the same arguments applies to open source software in general.
[+] pjmlp|2 years ago|reply
As someone whose daily code editor was XEmacs during the heyday of UNIX wars, because Emacs wasn't as a friendly for GUI users, I really wouldn't call it an IDE, those were the things IBM, Borland and Microsoft were giving me on PC side.

I doubt if Emacs was a commercial product, that many people would bother to use it, same applies to VI derivatives.

If the experiece is above anything else out there, certainly it is worth paying for.

[+] goku12|2 years ago|reply
One of my favorite aspect of Emacs is its configuration file. I use an org-mode file for configuration - which means that we can have rich documentation along with the code - all neatly folded up. The init.el file is just a stub meant to load the configuration from the org-mode file. Even better - the init.el itself is written within the org-mode file. The org-mode file can be executed like a shell script (actually elisp script) to extract the init.el file.

Similar executable org-mode files are used to configure the environment (sway) and personal information management (email, calendar & contacts). The latter one got so complicated that I had to add an integration diagram using the draw.io app.

[+] anonzzzies|2 years ago|reply
Treesitter and eglot are excellent. I am moving from vscode back to emacs and do far it’s been a great experience. Should’ve done that a long time ago.

Off-topic: what is an emacs quality alternative for docker? It’s such a piece of garbage for something so pervasive.

[+] kstrauser|2 years ago|reply
I did the same a while back.

I've been enjoying podman.

[+] ParetoOptimal|2 years ago|reply
> Off-topic: what is an emacs quality alternative for docker? It’s such a piece of garbage for something so pervasive.

Nix and direnv via envrc-mode.

[+] TacticalCoder|2 years ago|reply
I'd really love Emacs to have native JPEG XL support. For I use Emacs as a pictures viewer and the only thing preventing me from converting all my family pictures from JPEG to JPEG XL (it's a 22% saving which results in JPEG XL files that can be converted back, bit-for-bit, to the original JPEG file) is the lack of Emacs support for JPEG XL.

Does anyone know if it's coming? Anything in the JPEG XL or JPEG XL libs license that makes it a problem to incorporate in Emacs?

[+] mark_l_watson|2 years ago|reply
Looks good. For me, the best recent feature is native compilation so Emacs feels super fast and responsive. I often use macOS and I wonder is going to GTK will help a lot there?
[+] aardvark179|2 years ago|reply
As another commenter has said native compilation has been there for a while, but you may need to explicitly enable it if you’re installing via brew or similar. The macOS port doesn’t use GTK or X unless you specifically link them. What problems are you having?
[+] blahgeek|2 years ago|reply
Native compilation has been in emacs since 28.1.

AFAIK native GTK should be unrelated to macOS since macOS version uses its own cocoa frontend

[+] ducktective|2 years ago|reply
I wonder if the latency would be comparable to neovim/vim? I've only tried Emacs without nativecomp and the really noticeable input lag left a bad impression.
[+] bingemaker|2 years ago|reply
How do you compile Emails on OSX? I use `brew install emacs-head@30 --with-cocoa` and I feel that org-mode is bit laggy. Is there a better way?
[+] agumonkey|2 years ago|reply
makes me wonder, is the target of native compilation something general like 386 ? can i share .eln between x86 computers ?
[+] treeblah|2 years ago|reply
Really happy to see this. I've been using Emacs 29+ for the past while and have enjoyed simplifying my configuration now that use-package is OOTB. I think now is a really excellent time to try Emacs if you haven't already.

I put together a simple tool to generate a starter Emacs config from a few configurable options, which I can now update to point at a proper release channel instead of a prerelease:

https://emacs-config-generator.fly.dev/

[+] teddyh|2 years ago|reply
> Emacs is now capable of editing files with very long lines. The display of long lines has been optimized, and Emacs should no longer choke when a buffer on display contains long lines. The variable 'long-line-threshold' controls whether and when these display optimizations are in effect.

Yes!

[+] grumpyprole|2 years ago|reply
What an amazing release. Thank you to all that contributed and made it happen!
[+] goku12|2 years ago|reply
And they haven't even started taking full advantage of Pure-GTK and Treesitter. This release will cause an explosion new packages based on them.
[+] pard68|2 years ago|reply
Took a new job and ended up putting emacs aside. Using Google's Lit framework is unbearable on emacs. It has some deeply nested html/js in template strings and emacs can't keep up with the nesting.
[+] voicedYoda|2 years ago|reply
Every single time i open up the tutorials on how to learn emacs, a million other priorities come along. I know there are die hard fans of it, and I'd love to learn it, but with VSCode, vi, tmux, and all the MacOS tools i know, I'm not sure I'll get around to learning it before i burn out completely from engineering
[+] todd8|2 years ago|reply
Emacs is daunting, I've used it since grad school in the 80's, and I'm still familiar with only a couple of hundred packages/extensions available out of thousands that are available. Likewise, I use maybe a couple of hundred commands and key bindings (out of thousands available--Emacs interactive help with finding the commands makes this possible).

I can imagine how hard it must be to learn the basics buried within a mountain of functionality. The way I learned to use Emacs originally was by learning to use a stripped down Emacs-like editor that ran on my home PC running MS-DOS. This editor used the same basic key bindings and supported the fundamental operations one uses to edit files: navigation, directory browsing, reading and saving files and so forth, all with the same keys that full blown Emacs uses.

Instead of installing Emacs, try installing micro-Emacs (its actual name is mg). This should run on Linux, MacOS, or Windows. On the Mac, you can install mg using homebrew. This is a perfectly good editor, and it uses the keys and commands that make up most of the ones I use every day. It just has fewer features, no Org mode, no image browsing, no support for git, no Email clients, no GPG support, no Voice output, no games, etc. It's just a solid text editor that will run in text mode.

Within a few days of using mg, you will be able to navigate around a document, open and save files, browse directories, and know how to get basic help within the editor. Then try Emacs and only add extensions as you need or want them.

[+] legends2k|2 years ago|reply
I hear you. The only way I could get around trying to learn Emacs was to stop and actually use it as my daily driver (making a pact with myself not to use another editor for 15 days). Given "normal" editor keys (cursor keys, page up/down) work out of the box in Emacs, this wasn't hard (you could enable CUA additionally for regular cut, copy, paste, I stuck with kill and yank though).
[+] legends2k|2 years ago|reply
I hear you. The only way I could get around trying to learn Emacs was to stop and actually use it as my daily driver (making a pact with myself not to use another editor for 15 days). Given "normal" editor keys (CUE) work out of the box in Emacs, this wasn't hard.
[+] billfruit|2 years ago|reply
Does intellisense like autocomplete now work out of the box? Is company bundled in, as of recent versions? Is there any dependency on Clang to get it working for C/C++ code?
[+] gnuvince|2 years ago|reply
Eglot is the built-in LSP client. You need an external server. If you do C or C++, clangd is likely what you want. Install it (apt install clangd) and enable eglot for C or C++ files in your Emacs config, (add-hook 'c-mode-hook 'eglot-ensure).
[+] yissp|2 years ago|reply
You still need to set up an LSP server, so not exactly out-of-the-box. Something like clangd or ccls for C/C++.
[+] gjvc|2 years ago|reply
emacs has never been in better shape
[+] sph|2 years ago|reply
For a 50 year old project, they have been quick to adopt new technologies like Tree Sitter lately. It definitely feels there is a lot of activity behind the scenes to remain as relevant as ever in face of editor fads such as VSCode and (ducks) NeoVIM.
[+] goku12|2 years ago|reply
They have even started an Android port. It's on F-Droid already - though it's not very usable yet.
[+] ladyanita22|2 years ago|reply
It's a shame modern distros don't ship with it...
[+] jjrh|2 years ago|reply
The core issue is there isn't a 'emacs.tiny' package that contains a small subset of emacs features.

This makes it difficult to install emacs on a resource constrainted environment like a embedded system, and hard to justify installing on a server. (Yes we can use tramp but it's not always a option)

It's a real shame and why I still need to know vi and vim.

[+] adr1an|2 years ago|reply
Yes! I have Ubuntu at my office and is difficult to get the latest emacs. I found a PPA but it has a bit of lagging behind..
[+] TacticalCoder|2 years ago|reply
Which version am I running yet? (I know it's not too old for I regularly compile Emacs from source)

    ELISP> (emacs-version)
    "GNU Emacs 29.0.60 ..."
Ah... Time to upgrade ; )
[+] globular-toast|2 years ago|reply
I haven't touched my emacs config in a while, looks like it's due for a big update! I'm excited!
[+] cutler|2 years ago|reply
For Clojure there's nothing better than Emacs + CIDER/nREPL. I've tried Calva/VS Code, Conjure/NeoVim and Cursive/IntelliJ but none of them come close. Maybe it's the ELisp foundation facilitating code-as-data.
[+] michaelcampbell|2 years ago|reply
Sadly this doesn't play well with fzf-el (at least not with fzf-find-file). I've entered a ticket on the fzf.el github, but it seems a mostly dead or dying project.

Anyone else use fzf successfully with 29.x?

[+] throw156754228|2 years ago|reply
Is performance any better than 28 on Mac? I recently tried putting 28 on my work M1 and magit diffing on the status screen, where you can roll up diff hunks by hitting minus, was unusably slow on large files. My own Linux laptop has no such problem.