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.
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).
> 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.
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.
> 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.
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.
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.
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.
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.
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?
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?
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?
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.
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:
> 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.
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.
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
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.
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).
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.
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?
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).
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.
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.
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.
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.
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.
[+] [-] jwr|2 years ago|reply
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
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
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
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
[+] [-] ramblerman|2 years ago|reply
1. https://en.m.wikipedia.org/wiki/Lindy_effect
[+] [-] Dobiasd|2 years ago|reply
"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
[+] [-] garfieldnate|2 years ago|reply
[+] [-] xyproto|2 years ago|reply
[+] [-] pjmlp|2 years ago|reply
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.
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] goku12|2 years ago|reply
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
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've been enjoying podman.
[+] [-] cropcirclbureau|2 years ago|reply
[+] [-] ParetoOptimal|2 years ago|reply
Nix and direnv via envrc-mode.
[+] [-] TacticalCoder|2 years ago|reply
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
[+] [-] aardvark179|2 years ago|reply
[+] [-] blahgeek|2 years ago|reply
AFAIK native GTK should be unrelated to macOS since macOS version uses its own cocoa frontend
[+] [-] ducktective|2 years ago|reply
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] bingemaker|2 years ago|reply
[+] [-] agumonkey|2 years ago|reply
[+] [-] treeblah|2 years ago|reply
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
Yes!
[+] [-] teddyh|2 years ago|reply
Official release announcement: <https://lists.gnu.org/archive/html/info-gnu/2023-07/msg00008...>
[+] [-] grumpyprole|2 years ago|reply
[+] [-] goku12|2 years ago|reply
[+] [-] pard68|2 years ago|reply
[+] [-] voicedYoda|2 years ago|reply
[+] [-] todd8|2 years ago|reply
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
[+] [-] legends2k|2 years ago|reply
[+] [-] billfruit|2 years ago|reply
[+] [-] gnuvince|2 years ago|reply
[+] [-] yissp|2 years ago|reply
[+] [-] gjvc|2 years ago|reply
[+] [-] sph|2 years ago|reply
[+] [-] goku12|2 years ago|reply
[+] [-] ladyanita22|2 years ago|reply
[+] [-] jjrh|2 years ago|reply
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
[+] [-] TacticalCoder|2 years ago|reply
[+] [-] globular-toast|2 years ago|reply
[+] [-] clircle|2 years ago|reply
[+] [-] cutler|2 years ago|reply
[+] [-] michaelcampbell|2 years ago|reply
Anyone else use fzf successfully with 29.x?
[+] [-] throw156754228|2 years ago|reply