29 ms·
Toward a “modern” Emacs
- didibus 6y agoI admit that out of the box Emacs is underwhelming. The popularity of Doom, Spacemacs and Prelude show that. I actually had been working on a config for noobs. Which basically make it feel like Atom. I think having a choice between that or standard when you start Emacs could be a win. I also agree that the mouse UX should be modernized. It's just bad, I mean, I barely use the mouse, but also the mouse UX is crippled so I don't want to use it.
- Ericson2314 6y agoYeah definitely ignore all the seasonal requests for the latest fads, and just focus on the last paragraph. I think the post author agrees, hence the sarcastic tone. The fact is Emacs does many neat things but is also a giant steaming pile of sh-- tech debt. I'm sure VSCode will get there too as time passes, but older editors simply have a head start in this regard. Emacs needs it's Neovim (which also contributes back to Vim) moment. My old favorite would be returning to https://www.emacswiki.org/emacs/GuileEmacs https://www.emacswiki.org/emacs/GuileEmacs and finishing that off. No reason Emacs needs to also maintain it's own Lisp engine, and I'm sure lexical scope would help reign in tech debt too. Oh, and make emacsclient to a eamcsserver on another machine work, please! That would be such a killer app.
- mjw1007 6y agoemacsclient to an emacsserver on another machine works fine. You'll want to tunnel it over ssh. If the machines don't have a shared filesystem namespace, I suggest writing a small wrapper that translates the file's pathname to what the server needs (whether that's a mounted network filesystem or a tramp string or whatever).
- Ericson2314 6y ago> emacsclient to an emacsserver on another machine works fine. You'll want to tunnel it over ssh. Yeah after a bunch of dumb stackoverflows said it was impossible because it uses a unix domain socket (eyeroll), I tried that. > If the machines don't have a shared filesystem namespace, I suggest writing a small wrapper that translates the file's pathname to what the server needs (whether that's a mounted network filesystem or a tramp string or whatever). Err but I don't want to try to align the file systems at all. I want the server to do all the work so the client is just doing human<->computer IO.
- klodolph 6y agoI would love something like “Emacs’s Neovim”. Guile should be enough. Keep packages out of the global namespace. Get rid of Elisp and all its differences. Let me use C-Z/X/C/V for undo/cut/copy/paste (or maybe C-Shift-C is fine?) Keep org-mode, web-mode, etc :-)
- Jtsummers 6y agoI don't think we even need Guile (though I wouldn't complain). Just cleaning up the way packages install (a proper package system, which could be optional) would be a vast improvement for elisp. By creating a package system, making everything default into the el-user package if not otherwise specified, and moving the core elisp capabilities to the el/emacs-lisp package (used by el-user, importing everything), you'd create a clean path for moving forward. I have zero time and energy to contribute to emacs, but this is really the only fundamental change I'd want as someone who does delve into elisp frequently (or used to, not so much in the past year or so).
- klodolph 6y agoPersonally, I would love Guile. There are just so many quirks to Elisp, and Scheme is more “known”.
- evolve2k 6y agoYes this 100%. My son is just finishing high school and is taking an interest in code to the level of questioning if it’s worth learning emacs/vim. At the time I spoke of how emacs seems to be approaching a neovim moment and then pointed out that practically if the community was not prepared to invest in supporting new users like him, then he’s better off not supporting them and to look solidly at neovim (beyond the default of vscode).
- evolve2k 6y agoAs I see it the older emacs users see many of their decisions as right because they made them. What I’m sensing is a total lack of basic design thinking. A “neoEmacs” could achieve this, get clear who the new target audience is and based around this what a neoEmacs clear project goals would be (something like “position an emacs to be the editor of choice for people born after the year 2000”) [or whatever] and then with a new persona start to unpack critical design considerations and priorities a project plan from there. For emacs to survive/thrive it will need to go through a process of transformation. Even from these conversations I can see right now that can’t happen with the current core emacs project. I neoEmacs would be a great way forward.
- abhiyerra 6y agoNot saying this is the way to do it but there is a remacs which is working on rewriting Emacs in Rust and fixing the C level issues in the process: https://github.com/remacs/remacs https://github.com/remacs/remacs
- agumonkey 6y agoI'm surprised by this .. emacs have seen so much activity on so many layers. From cute transient overlays, lsp, deeply critical modes (magit), and even deep level work. The community is sharing a lot of extensions of all kinds through melpa and similar. I don't think emacs have been as 'popular' as now since long ago. Also one consideration, emacs is still lean, all those others editors are html/js based and hyper heavy.
- klodolph 6y agoFunny that Emacs is considered “lean” today. It was definitely consider one of the heaviest, most bloated editors out there in the past. “Eight Megabytes And Constantly Swapping”
- agumonkey 6y agoIndeed but the swap is real, I tried vscode (win64) on a 2nd gen i5 and couldn't insert chars in real time. Emacs is not smooth on windows but I couldn't go back to it fast enough.
- icedchai 6y agoSeriously! In my early Linux days (before 1994) I wouldn't run emacs. My first serious Linux system (486) had 8 megs of RAM and running emacs would bring things to a halt. I upgraded it to 32 megs which was amazing for the time...
- BeetleB 6y agoThe article did point it out. It likely has more users than it ever has - just that the growth is slow, and it has dropped in terms of percentage use.
- agumonkey 6y agobut the market share war is absurd, nothing of quality came out of this
- 6y ago
- JacksonGariety 6y agoThe Emacs community should start by perfecting lsp-mode so that it can compete with VS Code in terms of functionality. That will simultaneously keep power users from switching AND bring in people from other "easy to use" editors that lack such functionality.
- math0ne 6y agoEmacs needs this so bad but I really believe it could never attract enough people to develop and maintain it without sane defaults.
- smabie 6y agoI find that lsp-mode works pretty well most of the time. If you look at the commit history, the project is very active. It's also pretty easy to set up.
- da39a3ee 6y agoI found that it didn't work out of the box for me (Rust and Python) but that eglot did work out of the box. Eglot, not lsp-mode, will be the LSP implementation that makes it into the GNU Emacs distribution (because it is being developed with FSF assignments, and because the maintainer is active in the GNU Emacs development community, maintaining eldoc and flymake, and maybe others).
- bananaface 6y agoIt would be bad if it did, IMO. Eglot is a pretty dodgy piece of software and the code is much worse than lsp-mode.
- da39a3ee 6y agoCould you give some justification for that criticism and assertion please? (On its own, your comment falls short of HN standards.)
- math0ne 6y agoI think if you could easily install and use emacs to edit a text file with no knowledge it's userbase would grow exponentially overnight.
- jorams 6y agoYou can. By default it boots up with a menu bar and toolbar, with familiar buttons to open and save files. Most keys do exactly what you expect. This does not affect the size of the userbase much. If your needs are that simple, just stick to any basic editor you're already familiar with.
- nobody9999 6y ago>I think if you could easily install and use emacs to edit a text file with no knowledge it's userbase would grow exponentially overnight. Why do you put such a value on growing the user base exponentially? Is that important? Or even desirable? Emacs isn't a toaster or even a web browser. It has specific use cases that a very small number of people actually need. The really nice part about it is that it's extensible and endlessly modifiable. Again, that's not something that most folks need.
- BeetleB 6y ago> There was some discussion of adopting the Solarized color palette in particular. As Dmitry Gutov pointed out, though, Solarized makes for a rather low-contrast experience This is a strange complaint - it's tautological. The whole point of Solarized is to reduce the contrast.[1] It's kind of like saying having a dark background is bad, because it is dark. For people who stare at a computer all day, a lower contrast is good. When I introduced it to a coworker, he didn't want to switch to it because of the low contrast. After a week of using it, he can't imagine going back to high contrast. As for the rest, while I do agree with some points, I will say: If you make Emacs more like VS Code, then people will have even fewer reasons to use Emacs. [1] https://ethanschoonover.com/solarized/ https://ethanschoonover.com/solarized/
- Finnucane 6y agoIt's an accessibility issue. Low contrast sucks for people with vision issues. dark mode can be kinda sucky too. Not that the default modes of most editors are much better. I'm color blind and have never really found a totally satisfactory scheme.
- SippinLean 6y agoThe point isn't to reduce the contrast, it's to use contrast based on hue and less on value. Accessibility is the real concern. Solarized fails many of the checks for accessible text under standards such as WCAG 2.0.
- BeetleB 6y ago> The point isn't to reduce the contrast, it's to use contrast based on hue instead of value. It's not one or the other. It's both: > Solarized reduces brightness contrast but, unlike many low contrast colorschemes, retains contrasting hues
- mrob 6y agoHue contrast is objectively worse than brightness contrast because human cone cells are lower resolution than rod cells. This is the reason chroma subsampling is used in lossy video/image compression.
- robocat 6y agoI love this: “Or, as Richard Stallman put it”: ‘It is unfortunate that the people who implemented the newer editors chose incompatibility with Emacs.’ It is interesting to see a comment that is 100% at odds with the brutal evolution of ideas that occurs in a good ecology of software. If the same mindset applies to the rest of emacs then they really stand no chance or real progress. (edit: the rest of emacs, and not just key bindings which the RMS quote I have removed from context applies to).
- Finnucane 6y agoI suppose rms can't understand why anybody would think anything could be better than what he chose to do 40-something years ago.
- beagle3 6y agoA lot of things are different without being better. Before ctrl-x/Ctrl-v became the standard for Cut/paste, it was Ctrl-del/Ctrl-insert in many dos and early Windows editors - which makes a lot more mnemonic sense. It’s better to standardize on something, but that something isn’t necessarily better and is often worse.
- Jtsummers 6y agoC-x and C-c make some sense as cut and copy. But C-v, C-z, C-y as paste, undo, and redo just make little sense. The first two make sense for their proximity to x and c in the QWERTY layout. y only makes sense if it happened to be unassigned. Keyboard shortcuts will always fall into one of two categories: That makes perfect sense (usually mapping to a mnemonic like C-a for "select all"); That's totally arbitrary (C-y). It makes sense (and cua-mode offers it) to offer the opportunity to rebind the keys to the mainstream arbitrarily selected shortcuts, but it also makes sense to keep what's been used by emacs users for 40 years since that's what they're used to at this point (oh hell, I've been using it for 20 years, time has flown).
- robocat 6y ago
- Otek 6y agoOh look. It's THIS thread again
- rhabarba 6y agoBeing easy to use by newbies has killed too many great ideas already.
- auganov 6y agoThe biggest threat to Emacs is a number of hard to fix performance issues. Like rendering of very long lines. Luckily for Emacs other editors have their own performance issues, but their architectures might make them more fixable. The other issue is the display model. Rendering using browser technologies enables other editors to do things Emacs just can't. I'm sure some gimmicks might bring in more users. But implicit in this kind of thinking is that Emacs is perfect as it is and with right marketing it will explode. I sincerely doubt this. The biggest problems are pretty fundamental.
- _ph_ 6y agoJust today I edited a file which basically consisted out of a line with almost 2 million characters, my emacs was basically unresponsive for a longer time. This amount of data shouldn't slow down a modern machine that badly.
- twblalock 6y agoHonestly it's the package management that is the problem. VS Code is also kinda slow, yet it's popular because it's so easy to discover and download plugins.
- d0mine 6y agoEmacs has packages too: M-x package-install Or install & configure in .emacs: (use-package projectile) # :ensure is enabled
- SeanLuke 6y agoEmacs is in that disastrous stage of a product's life where the geezers destroy their own community by refusing to adapt to new expected behavior, thus driving away the newbies. Eventually the product dwindles to just supporting the few remaining geezers left. I'm not talking about stupid fads such as skinning and color palette changes. But cut-copy-paste keybindings (not to mention select-all, save, close window, undo, etc.) are not a fad. They have been the standard in everything except for Emacs for over THIRTY FIVE YEARS. They were standard when Ronald Reagan was president. Pop-up menus on right-button-click have been standard for almost as long, dating to X11 and NeXTSTEP (which is where OS X got them). And the most awful trend is in preventing clear improvements in modes and functionality from coming to the forefront simply because geezers are not used to them. The argument seems to be that making all these kinds of things standard would be hard on the geezers. This is nonsense. Unlike the newbies, the geezers know how to turn this stuff off. The geezers prevent this because Emacs is their ecosystem. But for everyone else, Emacs is a small part of a much larger ecosystem (MacOS, Linux, Windows) with which it is increasingly incompatible and archaic. This is myopia pure and simple.
- vinceguidry 6y agoEmacs has been at that stage for well over a decade, arguably two. What we're seeing now is the slow process of finally muddling their way out.
- deleted 6y ago[deleted]
- liability 6y agoAs an Emacs newbie (less than one year of usage) I could not disagree more. I disagree with basically everything you just said. If somebody wants notepad++, they should just use that instead of trying to turn Emacs into something it never was. As an olive branch: Perhaps Emacs could prompt the user on first run what sort of control scheme they want. Emacs standard, Evil mode, or some notepad clone could be modes that ship with Emacs by default (evil already does.) (I chose evil, because I came from vim. Maybe this is why Emacs was so easy for me to pick up. But by the same token, Vim is arcane compared to Notepad style editors but is quite popular, so I outright reject the hypothesis that Emacs has lower numbers because it's arcane. Rather, I think it has a marketting ''problem'' relative to Vim.)
- im3w1l 6y agoEmacs' very-hard-to-fix issue is that it's based on a grid of characters. This means it will never be able to do many nice IDE things.
- FandangoRanger 6y agoEmacs will never be a GUI-only editor, it was designed for a terminal and that is still a use case that many people take advantage of. Don't worry though - if you don't like Emacs you can use any of a number of other editors.
- efficax 6y agoWhat can you not do with a grid of characters exactly?
- FandangoRanger 6y agoI think we're seeing a culture clash between people who come from a computing background where the terminal was either not used at all, or was a second class citizen, and people who come from a background where a terminal is the main way to interact with the system and the GUI is relegated to mostly showing terminals and doing the GUI-oriented tasks that can't be easily accomplished in the terminal, like pixel-image editing and drawing.
- mrob 6y agoEdit natural language documents without wasting about 1/4 of your screen width on useless column alignment information.
- im3w1l 6y agoNicely formatted math. Gui designers. Diagrams. And personally I find tabs is the most efficient design for switching between files.
- BeetleB 6y ago> Nicely formatted math. Can you elaborate? With a keystroke, it renders a LaTeX formula inline.
- mapgrep 6y agoI don’t know. I read the whole article and it seems the suggestions boil down to emacs needing to be more “modern” by defaulting to dark mode, making color theming easier, changing right click behavior, the menus, and changing the shortcuts. And the author of the article would like the development process to be more “modern.” Emacs is one of the most successful text editors of all time if not the most successful. It is widely used for a staggering array of tasks. It is over 40 years old. When I see a highly successful 40+ year old piece of software, my first instinct isn’t to ask what the people behind it can learn from me but what I can learn from them. I’m not saying the editor can not be improved. But I think the bar is much higher than this. It’s not an insult to say something like emacs is not “modern.” Of course it’s not. And changing the colors? The shortcuts that have worked for decades? Please. If someone thinks emacs will be more successful with these cosmetic changes they are welcome to fork it since this is one of the earliest open source programs. Code talks, a bunch of people opining on a mailing list is pretty worthless in comparison.
- wtetzner 6y agoYou don’t even need to fork it. Just have write a .emacs file that new users can copy to their home directory that sets all of that stuff up.
- neltnerb 6y agoI think I still have the .emacs file I inherited from an upperclassman. It had better syntax highlighting than what was built in at the time =)
- da39a3ee 6y agoThis really doesn't seem that complicated. (1) Either we aim to make Emacs popular or we don't. Personally, I don't think we should bother: I suggest we make it a razor-sharp tool for people prepared to learn some lisp. I also suggest we open up the development experience to allow contributions and code review via PRs. But lots of people want to make it popular. So fine, we do that. Then there's no argument at all for keeping the defaults like a bunch of male lisp programmers over the age of 50 want. Because every single one of them has an emacs init file they've been tending to for decades and they know how to make the relevant changes to override the defaults. So if we are making it popular there should be no time whatsoever given to RMS saying that some keybinding from the early 80s is objectively better.
- flowerlad 6y agoI have been an Emacs user for 20+ years, and I don't use editors that can't be configured to use Emacs key bindings. Luckily IDEs like Visual Studio can be configured to mimic Emacs. To me the issues that make Emacs not modern are: (1) Slow startup. (2) Buggy language modes. (The ones that come with it are good, but third party ones such as web-mode are buggy.) and (3) No intellisense out of the box.
- dragandj 6y agoFor the first point, use emacs service + emacsclient. Starts instantly.
- onedognight 6y agoThis and avoiding require in your .emacs. When packages are autoloaded on demand emacs starts up quickly. As a quick test try emacs -q” to see if something in your .emacs is the cause of the slowdown.
- ywei3410 6y agoTo add to this excellent point; a common culprit is not using ~use-package~ correctly to lazy-load as much as you can. I use Emacs extensively for all my languages and have loads of packages installed, but the startup time is around half-a-second on a newish Ryzen laptop running Nix from a cold restart.
- alecigne 6y agoIt is not that slow. On my machine Vanilla Emacs starts in 0.1 second. With my 12 years-old config, it starts in 0.4 second. Emacs 27 pre-init system made it even faster. And if your machine is slow you can use a daemon.
- the-smug-one 6y agoHow about instead the Emacs website and splash screen recommends different `flavours' of Emacs instead? Such as Doom and Prelude for example. No reason to change vanilla Emacs. Stop having Emacs be the recommended way to install and use Emacs.
- FandangoRanger 6y agoIf only there were projects that repackaged Emacs together with packages which adapt the program for people who prefer other keybindings. And failing that, maybe Emacs should include some facility for remapping key bindings?
- the-smug-one 6y agoI don't understand why you're sarcastic, it's as if you did not read my post.
- mrob 6y agoI tried Ergo Emacs, because I like Xah Lee's attitude to modernization, but even somebody so willing to abandon old defaults can't make Emacs feel modern. Emacs makes assumptions like "a document has a backing file on disk" and "a cursor has a location on screen" that only make sense with obsolete hardware. The weird janky feeling is embedded too deep for any easy fix.
- webmaven 6y ago> If only there were projects that repackaged Emacs together with packages which adapt the program for people who prefer other keybindings. And failing that, maybe Emacs should include some facility for remapping key bindings? The sarcasm here isn't warranted, the request wasn't for for distros of emacs to exist, but for them to be promoted to prospective users on the emacs website over a bare install.
- FandangoRanger 6y agoMy objection isn't to repackaging emacs with new defaults, but promoting forks and such on the emacs site. That's not what GNU does with other forks historically either. What'd be the point of it all? There are perhaps dozens to hundreds of personal takes on emacs on Github and around the web. emacs will remain as it is, it isn't for some people and that's OK.
- xrd 6y agoI've been an emacs user for more than 20 years. Is it just me, or is this article completely missing the point? I've switched to VS Code because I can install extensions so easily. Getting a theme installed is not my concern at all. With emacs, I'm still never sure how to get elpa (or why not melpa) to work correctly. And, modern packages for react never seem to be available there anyway. I'm still astounded package management is so bad on emacs. For the record, emacs and tmux are still the first thing I install on any new server. I still use emacs on a daily basis. But, not on my desktop Linux machine anymore.
- ssivark 6y agoHave you tried the “straight” package manager? Quite nifty.
- tome 6y agoI agree. straight.el is the only thing that makes emacs package management usable for me.
- wtetzner 6y agouse-package has basically solved the package management problem for me in Emacs.
- BeetleB 6y agouse-package can make package management easier, but using it s not beginner friendly. As an advanced Emacs user, when I read its docs, there were too many subtleties that can trip up a beginner. Indeed, just yesterday I stopped using use-package for one of my packages as I couldn't figure out why it wasn't behaving properly - reverting to require solved it.
- bananaface 6y agoThe Emacs docs are absolutely horrendous, they read like they're written for the core dev team. Useless as an introduction, everyone ends up on Xah Lee's site. They could be completely fixed by just providing examples of all these esoteric elisp functions.
- mrob 6y agoHere's a new user perspective on Emacs (based on memory; I actually have more experience than this): I open emacs-gtk. A document is already loaded. I try to type something, and every letter I type gives the unhelpful error message "[letter] is undefined". I guess this means I need to create a new document first. I open the File menu, and see "Visit New File...". "Visit" sounds weird, and the "..." is suspicious, but at least it has "New" in it, so I pick that. It opens a file picker, so "Visit New File..." must be Emacs slang for "Open...", and there is apparently no "New" functionality in the File menu. There's also an "Open File..." menu item too for some mysterious reason, but that's obviously not what I want, so I ignore it. I check the Help menu. This has 19 (!) top level options, none of which are obviously correct, and one of which is "Emacs Psychotherapist". I click that one out of curiosity. It replaces the starting document without warning and there's no obvious way to get it back. I'm presented with more Emacs slang. I assume "RET" means Enter, and that Psychotherapist must be a Microsoft Clippy clone. I type "new document", hoping it will search the documentation. I immediately notice the scroll bar flickering. This draws my attention to the incorrect size of the drag handle. I click the empty space below the drag handle, which moves the drag handle but doesn't actually affect the text. I drag the drag handle back up, which makes the text glitch out for a moment, but otherwise does nothing. I press "RET" twice, and get "Why do you say new document?" I then realize that it's actually an Eliza clone not a Clippy clone, and I've wasted my time. I give up on trying to create a new file, and just Open an existing one. I immediately notice the cursor is an ugly inverse video cursor instead of a normal thin line cursor. I press and hold the down arrow key, and notice that scrolling moves in big jumps instead of line-by-line. It also forcibly moves the cursor. It seems the cursor lives in screen space like it's still the 1970s and I'm using a hardware terminal. There is no obvious way to keep its position in the document while you navigate somewhere else. Despite this, Page Up cannot move the cursor to the beginning of the document like it should. Page Down works though. I assume that, like every modern text editor, there's a "Find in This Document..." feature bound to Control-F for easy navigation. There's not: Control-F is bound to right arrow. Presumably this made sense 40 years ago. There is not even any Find functionality in the Edit menu, which you'd think would be core functionality for any text editor. In the course of this experimentation, I notice that merely moving the mouse cursor over the scroll bar is enough to make it flicker. I hold the scroll down button with the mouse. It actually does scroll, but extremely slowly, averaging about one line per second. The timing is inconsistent, and the CPU usage is strangely high. I type something, and notice that there is no visual indication that the document now contains unsaved changes, such an asterisk in the title bar, or a dot on the Save icon. I press Control-S to save, which doesn't save, and instead triggers the Find function I was looking for. I decide that "Modern Emacs" is a hopeless quest and give up in favor of something written this century.
- rcconf 6y agoAfter using Emacs for 10+ years, I've switched to VSCode for a really simple reason: fuzzy matching a file in a project. I've tried so many different plugins and hacks to get it to work, but it never did quite work. Searching for a filename either matches the wrong file, or new files that were freshly added are no longer there.
- Ixiaus 6y agoProjectile + Helm works extremely well for me, did you try those modes?
- mplanchard 6y agoThe default solution in doom emacs does this really well! I think it may be ripgrep-based, like VSCode’s, but I’m not positive.
- gen220 6y agoI’m a vim user, but I imagine there’s a similar way to do this in emacs... The secret is piping fd into fzf and opening the selected value from fzf. You can probably write a 2-liner in elisp that shells out. In my experience, this pipeline provides a faster and better matching experience than any IDE. Once I got this working, I never went back to VS Code. :)
- symlinkk 6y agoIf it’s so simple why don’t they build it into emacs?
- gen220 6y agoNot sure if this was asked sincerely, but fzf is a fairly new program, relative to emacs.
- ducktective 6y agohttps://www.youtube.com/watch?v=aXPQTesFdTI https://www.youtube.com/watch?v=aXPQTesFdTI
- gandalfgeek 6y agoSeems like we should treat "Emacs" more as a platform than an editor. You then take that platform and build your own editor (and perhaps many other things!) on top of it. E.g. Doom, Spacemacs.
- banana_giraffe 6y agoThe article makes some interesting points, to me, though, I think the Emacs devs need to have a discussion with themselves if they even want to go here. Here's what I see as an outsider if I'm a Windows users and want to give this great emacs editor I've heard so much about a try: First off, I search for emacs, I land on a page with a Windows link. I click that link, I get a rant about how Windows is evil. Ok, fine, sure, gnu and all of that. Then I follow a link to download it from a mirror. That link doesn't actually lead to a download, it leads to a directory on the mirror that I need to drill down into another directory. The README in this directory contradicts the emacs website on which version I download. I go to download the installer, if I try to run it, I get a big scary warning (I can't blame GNU on this too much, but still, more friction). Finally, I have emacs on my machine. (If I follow the directions on the webpage, I download a zip file, and I'm left wondering why I should run "runemacs.exe" and not run "emacs.exe". I know why, but dang it, this is just silly) I run it. I'm presented with some combination of a text UI and iconography from the 90's. I get emacs doesn't change much, but this adds to the sour taste already building. And then there's the intro, which is what this article is touching on. The first thing it teaches me is some odd-for-me commands to navigate that as a user are all new and unlike every editor I've used. Now I decide to play around and open a file. Do I want to "visit new file" or "open file"? I pick one, and it helpfully defaults to showing me files in the emacs installation folder. Great. And by this point the thing has beeped at me a dozen or so times for reasons known only to emacs, and I'm tired of it all. Emacs is clearly designed for people that use emacs, and that's fine, but if you want to get more mindshare, you'll need to, first thing, ask me if I want to set it up to act like VS Code or IntelliJ or Emacs.
- dragandj 6y ago> it teaches me is some odd-for-me commands to navigate that as a user are all new and unlike every editor I've used. That is the point. If it worked the same as every editor you've used, why switch? The point why Emacs is better is because it's different. These things need to be learned. Otherwise, Emacs can't help you. It would be like people complaining that playing a guitar is different than pushing the play button on every music player they've ever tried. Well, yes, that is the point.
- sinbad_sinclait 6y agoComing from the standpoint of a new emacs user/young programmer I found that my problem with base emacs is getting to a minimal viable setup just took to much time. It wasn't until I learned about spacemacs that I gave emacs another try and I haven't gone back since.
- AceJohnny2 6y agoThough it's made great improvements in recent years, GNU Emacs, the vanilla package, is more of an unrefined platform than a more finalized product that competitors like VSCode are. SpaceEmacs is closer to such a refined product, though it's aimed at Vim users (with the 'evil' Vim-support package being front and foremost). I am not currently aware of a kind of "best-of-emacs" distribution that focuses on putting Emacs' strengths in their best light (likely at the cost of dropping some UI backwards-compatibility). As an aside, the article [1] by Dan Coliascione (@quotemstr) from a few years ago about the effort required to work with Emacs' compatibility layers is insightful and hilarious. "GNU Emacs is an old-school C program emulating a 1980s Symbolics Lisp Machine emulating an old-fashioned Motif-style Xt toolkit emulating a 1970s text terminal emulating a 1960s teletype." I honestly don't expect vanilla GNU Emacs to modernize its UI, because of its incredible legacy baggage. But I do look forward to new "distributions" that do so! https://www.facebook.com/notes/daniel-colascione/buttery-smooth-emacs/10155313440066102 https://www.facebook.com/notes/daniel-colascione/buttery-smo...
- dragandj 6y agohttps://github.com/bbatsov/prelude https://github.com/bbatsov/prelude
- AceJohnny2 6y agoThanks! I had forgotten about Emacs Prelude.
- d3nj4l 6y agoWow, that's the same guy who made Rubocop. That's neat!
- theCodeStig 6y agoDoom Emacs is much more polished than Spacemacs, and yet lighter weight.
- AceJohnny2 6y agoBut Doom Emacs presents itself as: "Doom is a configuration framework for GNU Emacs tailored for Emacs bankruptcy veterans who want less framework in their frameworks, a modicum of stability (and reproducibility) from their package manager, and the performance of a hand rolled config (or better). It can be a foundation for your own config or a resource for Emacs enthusiasts to learn more about our favorite operating system." I haven't tried it myself, but it doesn't sound like a packaged distribution, more of a framework, no?
- jug 6y agoI’m by no means an expert on this subject but isn’t this a bit like xemacs? More mouse-driven. Friendlier menus. Sure, rough by modern standards but why not just contribute to that project? I felt it was a pragmatic approach that kept the emacs patterns and usage intact. If you VS Codeify Emacs, is it then even a modern Emacs? Edit: OK maybe xemacs is no longer actively developed, but sxemacs then.
- danShumway 6y agoDo the defaults in Emacs matter, at all? Doom Emacs, Spacemacs, and dozens of other default configs already exist. I've been using Emacs for years, I never learned the default keybindings. I used Evil mode right from the start. I just don't see this as a real problem. A small (incomplete) list of real problems: - No timeline on Wayland support, Wayland will likely require substantial work and refactoring. - Performance issues on long lines of text. - Architectural/technical debt. - etc... Emacs is, fundamentally, a power-user editor. There are problems to solve, but "I had to change the default fonts" isn't one of them. Why would you use Emacs in the first place if you weren't interested in changing the default fonts? Maybe I'm out of touch, but I would never recommend a new Emacs user to just download Emacs directly. I assume they're starting with someone else's config. Emacs fills a specific niche that other text editors today still aren't satisfying, and it should continue to fill that niche. What other text editor can I use as a window manager? I haven't checked in a while, but I think Spacemacs solves literally every single problem that they're talking about, including prompting users whether they'd like to enable CUA mode by default. But Spacemacs can't solve the Wayland problem.
- Jtsummers 6y agoThat was touched on in the article: > Some of the ideas found in these distributions may well merit inclusion in Emacs, but that does not happen. Emacs maintainer Eli Zaretskii complained that the creators of these distributions do not contribute their work back. If the changes aren't being contributed back, any gain from them is lost for users of the default system. Creating an unnecessary fork within the user base, especially where the changes could be enabled via a configuration change (start with default, but prompt at first run to go to Doom Emacs or Spacemacs).
- BeetleB 6y agoThe article also touched on why this is the case: Not everyone wants to assign copyright to the FSF.
- danShumway 6y ago> Some of the ideas found in these distributions may well merit inclusion in Emacs, but that does not happen. Spacemacs isn't an Emacs fork, it's a set of packages and configuration files that are provided transparently on top of an existing Emacs install. It's not necessary (or desirable) to include Evil mode out of the box for bare-bones Emacs installs, and for the most part, new users shouldn't be using bare-bones Emacs installs. It's not important that Emacs be an amazing experience with fantastic defaults out-of-the-box. This is like arguing that Linux is outdated because Gnome isn't built into the kernel. New users download a distro based on Linux, like Ubuntu. That's fine, it's not a problem that needs to be solved. In the same way, new Emacs users download "distros" that include secondary packages like Evil mode. That is also fine, it's not a problem that needs to be solved. > Emacs maintainer Eli Zaretskii complained that the creators of these distributions do not contribute their work back. Even assuming that we would want to merge Spacemacs changes into the core Emacs codebase (which we don't), I still have zero sympathy on this point. All of these downstream projects are Open Source -- they are contributing their work back. If the FSF refuses to merge compatible, Open Source code back into the Emacs codebase without developers signing away their ownership, that's the FSF's problem, not the downstream developer's. I thought the whole point of Open Source licensing was that people didn't need to own the code to use it. Being a good Open Source community member is not conditional on anybody giving ownership of their code to the FSF, it is conditional on releasing that code under Open, compatible licenses.
- da39a3ee 6y agoWe should stop making the tutorial prominent and stop worshipping it. I've used Emacs for 20 years and write emacs-lisp packages and I don't use all those weird keybindings for moving around the buffer. That's what the arrow keys are for! There's an international aspect to this: those who went to school in the USA typically touch-type; but in some other countries one does not learn to touch type unless one is aiming to become what used to be called a secretary.
- heavyset_go 6y agoI've been checking out alternative text editors, and was recently impressed with micro[1]. The only issue I have with it is that it doesn't handle text navigation with the Ctrl + arrow key combinations that let you jump to the start and end of words. There's a small revival of modernized text-based apps now that Go and Rust gained adoption. I've even come across an editor written in Nim, called moe[2]. Are there other editors out there that are worth trying out? [1] https://github.com/zyedidia/micro https://github.com/zyedidia/micro [2] https://github.com/fox0430/moe/ https://github.com/fox0430/moe/
- kosolam 6y agogive up on this pile of nak-nak-nak. It’s all too held up by a small bunch of blind fanatics or such. Just use one of the other normal editors. Com’on man, you gotta be blind to not see how idiotic the situation is. And I’ll tell you another thing, these are just fairy tales, all the stories about emacs being great are not delivered in a balanced way. The pain to learn and use all these terrible extensions for basic functionalities is enormous. The amount of stuff that you have to ingest and then the mental space that this takes. It’s just not worth it.
- astrobe_ 6y agoChanging the default UI is a non-problem: new users will like it, old-timers will have an easy time reverting it, or maybe their custom config will undo it right away, depending how it is implemented. Source: I am actually a Vim user, which under Windows comes with some Windows shortcuts by default. I had no problem undoing it. The idea of copying current UI trends (dark theme, burger menu) however made me think of that quote saying that the best way to anticipate the future is to invent it. By imitating others you are not modern, you already are behind. Doing the same thing but only slightly better won't attract much users - Emacs should have learned that from its victories against its clones. Doing something different for the sake of being different won't attract much users either. The challenge - and the opportunity - is to do things differently in order to make something significantly better (vim cough vim).
- tgbugs 6y agoGlad to see that other observers have keyed in on the discoverability aspect. I tried to highlight it in [1]. Unfortunately I haven't been able to hop back into the discussion there, and things have been moving at a fantastic pace. The longer I have been working to develop processes and systems, the more I have come to appreciate defaults that do not change. It is interesting to see some of the new *coin and blockchain folks in their dark forest threads worrying about what happens if the interpreter changes its semantics and lamenting that contracts are meaningless if the interpreter can change. That is what standards are for, and that is what the "backwards geezers" are trying to do for Emacs since it doesn't have a standard, only social norms. I'm not too too worried though, since there are many sensible people in the community who understand why changing defaults can destroy trust and waste the time of millions of people. I am also not worried because there are many creative solutions to the problem of how to attract and maintain new users in a way that they can come to appreciate the benefits of stability. 1. https://lists.gnu.org/archive/html/emacs-devel/2020-09/msg00364.html https://lists.gnu.org/archive/html/emacs-devel/2020-09/msg00...
- baby 6y agoAll of these are missing the point imo. The biggest advantage of modern IDE is the ease in trying new plugins and functionalities. Everything is a menu away, and fuzzy searching makes it easy to find out commands and learn their shortcuts. This whole process just doesn’t exist in emacs. To get a plugin, it’s a huge step (setting up custom elisp to get melpa) and then it’s a huge learning curve just to try a plugin.
- dybber 6y agoI've used Emacs for around 14 years now, I rarely touch my configuration. There's lines in my config today, that I haven't changed since I first learned to use Emacs and set it up (e.g. keybindings, tab-width, etc.). I like that kind of stability, makes it possible to move my focus away from the editor, towards the problems I'm trying to solve.
- baby 6y agoNot a downside necessarily, but I can imagine that life would get very stressful if you're ever to lose your custom configuration for emacs.
- dybber 6y agoIt’s in a public git repository
- NateEag 6y agoAnd that's why you keep it in version control and mirror it to, say, Gitlab and Github. Could burn an archive to an archival-quality DVD, too. I suspect I'm more likely to die spontaneously than have all of those and my local machine fail spontaneously.
- jorams 6y agoI don't really get what you mean. Sure, setting up MELPA is a bit annoying, but after that trying a new package is trivial. You go to the package list and install the package, then you trigger whatever command you need. I agree that fuzzy search is a great thing though, and I think something similar to Ivy should be included by default.
- Aperocky 6y agoIt feels like vim is finally winning? All the functions without the hurdles, vim plugin is also numerous and pleasing.
- wwarner 6y agoEmacs is really fun. Edit files remotely: `/ssh:bird@bastion:/path` Edit files two hops away: `/ssh:bird@bastion|ssh:you@remotehost:/path` Edit files two hops away, also in a docker container: `/ssh:bird@bastion|ssh:you@remotehost|docker:container:/path`
- usr1106 6y agooh, I have used ange-ftp to edit remote files in the days such functionality was not upstream (and nobody considered ftp being dangerous...) But I missed that it supports docker. Not that I particularly like docker, it's ActiveX, use random executable code from unknown sources and give it too many privileges all again, but sometimes I use it.
- sdwolfz 6y ago"Some of the ideas found in these distributions may well merit inclusion in Emacs, but that does not happen." 1. Which ideas are they referring to exactly? Can't upstream something if you don't know what they want... 2. How do you even get approved to send code to FSF owned projects? I read somewhere you need to send a copy of your employment contract for them to determine you can assign copyright to them. But what are the exact steps? Who do you email? How do you exactly encrypt the file? What are the acceptance/rejection criteria? No seriously, somebody please make a beginners tutorial about this, I have no idea how to start. 3. Upstream Emacs releases once a couple of years or more, with no predictable schedule, can't blame anybody for wanting to stay away from upstream and have their setup under their control. But then again, I know of a worse offender... So... what should my next steps be?
- ssivark 6y agoThere’s a healthy Emacs community on Reddit (r/emacs) where you can find answers to these questions and more, if you prefer that to the Emacs mailing list (which is the definitive place for such questions). From what I’ve seen, folks on the mailing list do generally welcome & encourage contributions upstream (Stallman, especially) but it does sometimes take a little more effort to convince people about the value of a new feature/package, and then iterate on a solution so that it doesn’t break decades of accumulated use cases (the perils of success).
- badsectoracula 6y agoFor me a "modern Emacs" would basically be Notepad++ with more advanced features and programmability. The few times i tried Emacs (and i actually used it for a bit back in the early 2000s on a crappy Pentium 1 laptop i was given - and yes, i did felt the "Eight Megabytes And Constantly Swapping" meme of the 90s, though it wasn't that bad :-P) over the years i always dislike how it just doesn't mix with the native environment at all (be it Mac OS X or Windows... Linux doesn't really have a native environment and interestingly the longest i used emacs -that laptop- was under Linux :-P). Also for some reason it always felt a bit sluggish - you'd think with faster CPUs (and Emacs not having to follow fads - unlike, e.g. browsers) it'd be faster, but it always felt sluggish to me no matter what. In general i like the idea of Emacs: a fully programmable editor that can be extended as much as you want. I just do not like the current application of that idea. I mentioned Notepad++ because that is the editor i'm using the last few years and i like how fast it is (it opens instantly even with hundreds of files/tabs open - that it remembers the open files from last session and remembers changes in unsaved/new files is also very useful because i use it often for taking short lived notes) and how few resources it uses (it currently only uses ~15MB with a few tends of files open). But it does feel limited with pretty much zero way to customize its behavior - it is basically someone's custom configuration over Scintilla hardcoded in an executable. However what i really like about it is that it uses (almost) the same keybindings i've used for decades and it looks and feels like a proper native Windows application like the applications i've used for decades. It basically lets me take full advantage of all the knowledge and experience i've developed over the years instead of expecting for me to throw that away and instead spend time learn how to do mostly the same stuff in a different way. And it is also very lightweight, did i mention that? I think i did, but it deserves repeat. (the reason i use NPP is also why i do not care about VSCode or Sublime... they both feel alien and while Sublime is supposedly fast, i do not like its UI - also i do not think it is as programmable as Emacs or VSCode, but i might be wrong there...) Perhaps there is Notepad++-alike which is also programmable and more powerful, but i just do not know it.
- therealmocker 6y agoI wonder what the appetite for extending the emacs "server" concept is. Treat it like an API and so that you can maintain core editor compatibility, but offer an easy way to implement UI layers that users might feel are more modern. Could also lead to dedicated "org-mode" clients, etc.. that could leverage emacs under the hood via the API.
- oivey 6y agoI’ve recently switched to VS Code, and the driving issue for me was really related to the popularity of the editor. Some combination of the LSP server and the chain of emacs packages to interface with that server were constantly broken. I can’t blame the maintainers, seeing as the LSP was being implemented by a skeleton crew and the various emacs packages were abandoned short of a couple heroes fixing some of the big bugs. I still miss things like Magit, the binds from Spacemacs, the project integration from Projectile and Ivy/Helm, and more. VS Code has some other pluses too though, like a better terminal and smooth rendering / performance. I don’t see emacs getting those features without more popularity, but I hope VS Code gets the things I miss given how many people use it.
- rpdillon 6y agoI _highly_ recommend emacs-libvterm. Without a doubt, it's an advanced install, so I'm not arguing its better for beginners, but I adore it just the same. https://github.com/akermu/emacs-libvterm https://github.com/akermu/emacs-libvterm
- oivey 6y agoThat’s a promising project. Evil integration is a key feature for me, but once that is supported that will be a killer package.
- agambrahma 6y agoI agree that "Emacs needs its NeoVim moment", where some architectural changes are needed for future longevity (I'd want it to be around for my lifetime!), but I also don't think there should be any breaking change. I have already, over the last decade, seen incremental changes to make packaging, json-handling, concurrency, much better than they used to be. But most encouraging of all, the "distributions" (Doom, Spacemacs) are doing some of the "market research" about what users like more, or care about more, and cataloguing the lesson learnt there would help Emacs move forward in an /incremental/ manner.
- gshulegaard 6y agoI used Emacs as my exclusive DE when I was started programming (can't argue with free) but as I started coding professionally branched out to other IDEs; however, I am back to developing with Emacs 100% of my time. A rough history of editors would be: * VisualBasic (HS) * Emacs/R * Spyder * PowerBuilder/Emacs * PyCharm * SublimeText * Visual Studio Code * Emacs (but now full time) Even when I wasn't using Emacs for the bulk of my development work, I still preferred it as my terminal editor of choice and fter having to configure Emacs from scratch several times, I finally decided to spend some time to try and make my Emacs config portable: > https://gitlab.com/gshulegaard/my-emacs https://gitlab.com/gshulegaard/my-emacs My takeaway from doing that was both positive and negative. On one hand, Emacs is extremely customizable and it was pretty rewarding to get my set-up just right to fit my needs. On the other hand, it is extraordinarily time-intensive to do so. Even as a reasonably seasoned developer with almost a decade of experience _using_ Emacs, installing extensions and configuring them to work together is a pretty off-putting task. For example, even before installing an extension you first have to answer, where do I want to download it from? To which there isn't an obvious answer. My personal config actually configures 4 separate package archives: > https://gitlab.com/gshulegaard/my-emacs/-/blob/master/src/custom/setup-packages.el#L11-15 https://gitlab.com/gshulegaard/my-emacs/-/blob/master/src/cu... Once you have an extension installed, there can often be additional steps or dependencies which have to additionally be managed. Which I get; Emacs is not a IDE, it's an extensible text editor so it probably shouldn't try to be more than that. But if the goal is improving usage then I think improving extension management (and by extension configuration) should be the top of the list. In my opinion, suggesting changing default key-bindings, right-click behavior, or theme are just dancing around the elephant in the room which is: The world has moved on from plain text editors and Emacs is just not as approachable as IDE counterparts. Honestly, this might be fine! Even when using an IDE for development work I still reach for Emacs when doing terminal text editing or want to manage multiple shell buffers from a single SSH session. But if we want to have a discussion where the context is waning Emacs usage is a problem, I can't help but feel we have to start with extension and configuration management. It's hard to justify spending the time required to install and configure Emacs with extensions when there are alternative tools that require almost no additional components or offer nearly one-click installation processes (e.g. SublimeText and Visual Studio Code).
- fallingfrog 6y agoI’ve used emaca for a pretty long time- since about 2001- but in all that time I’ve never felt the need to become a super power user- it just does the basics really well. I guess that’s all I really wanted. I use it for coding and I use org mode. I like the auto-indentation, which to this day no other editor can match, I like the syntax highlighting. Here are my beefs though: 1- you have to jump through hoops to get melpa to work- I have to research this again every time I install it. 2- the auto indent and syntax mode for shader language has to be installed manually 3- ido-mode isn’t turned on by default I’m one of those doofuses that uses cua mode all the time too. Sue me, I just want an editor that works and emacs is very good for code editing. I don’t care about the power editor moves which I forget 5 minutes after learning anyway.
- cnst 6y agoThe new people don't even know the joke about the email! I teach them, and then every time they mention Sublime, I ask them whether you can read email with Sublime.
- jeromenerf 6y agoI love org-babel (executing code blocks with a text document, like jupyter notebooks) for technical documents. I know of nothing comparable. The rest is a messy pile of possible frustration. I would happily trade emacs modernization for a standalone Babel like system, that could be used with whatever editor. Maybe like LSP to vscode.
- jeromenerf 6y agoI had a look, after posting this comment to various other tools allowing to run code within text to produce tech documents. There are quite a few, mostly for markdown, and mostly limited to literate programming. See rundoc, codedown, gfm-code-blocks.
- eska 6y ago> many (young) people seem to spend most of their time watching videos (as in, watching videos is their equivalent to my being idle). But admittedly, those videos usually last 10s or so (and if not, they switch to the next video anyway), so we'd have to use very short videos, ideally funny and sexy, maybe with a cat? If I ever say anything like this in a UX discussion, please just shoot me that instant. This person's arrogance makes me shiver.
- X6S1x6Okd1st 6y ago> It is unfortunate that the people who implemented the newer editors chose incompatibility with Emacs. As always Stallman maintains a ludicrous level of self importance.
- ggm 6y agoAs a computer scientist since 1979[1], Emacs and vi both are across my working life. Teco died. The many alternate modal editors, ed aside, mostly were fringe. I tended to the vi side but I deliberately shifted back to Emacs for org mode and to keep my brain agile. The psychological cost of shifting is contained in "six weeks to relearn a habit" which in a lifetime is acceptable cost. The outer gui emacs is dead to me: I'm not seeking more mice in my life, if I was i would have gone to Rob Pike's work. the ascii gui menu bar being disabled now, melpa and elpa giving me just enough, I think Emacs can start chasing finer grained revision numbering. There does not need to be an Emacs 30+. Vi peaked in nvi from Keith Bostic. Vim is really its own thing now. I prefer nvi. Emacs had more variants [2] but they died on the vine and now its Emacs, xemacs, and spacemacs for odd people[3]. [1] in Hypothesis: I graduated in 1982 but you learn editor in first year... so... [2] Gosling did a good one. Small, fast. I used this a lot in 1984. The macro repeat mode did some good stuff without needing lisp. It's because he did this i am charitable about Java. [3] just choose Emacs or vi for goodness sake!
- twblalock 6y agoEmacs needs a package manager that is as easy to use as the one that comes with VS Code. The plugins are the reason VS Code is popular. It's so, so easy to discover them and install them. You can download VS code and have a working dev environment with autocomplete and a debugger for almost any major programming language in 10 minutes. When I started working in the tech industry, Textmate was pretty popular. It was supplanted by Sublime Text, which was supplanted by VS Code. Each time, the main factor in getting people to switch was the ease of finding and installing plugins.
- Davidbrcz 6y agoAs of today, there are 4 721 packages for Emacs on MELPA (https://melpa.org/#/ https://melpa.org/#/). The setup to use it are a couple of lines in the config file.
- CJefferson 6y agoHowever, users have to first know it's an option to use. Why not add it by default, and even have a menu option to install package? VSCode will even recommend popular packages depending on file types you load.
- Davidbrcz 6y agoBecause it's not core emacs. Core emacs uses ELPA, which has fewer packages.
- rStar 6y agointellij for java, emacs for everything else
- dougdonohoe 6y agoI've been coding for almost 40 years and never used emacs. We all have our own tools and practices. To each their own.
- hexa00 6y agoI'm going to approach this as a pure social thing. To me emacs fits in a way because it fits the kinda misfit/hacker mentality I had back when I started playing with computers/software. I found emacs and linux as the coolest things in the world while everyone was thinking computers were somehow for unwanted geeks in a basement. And honestly that did not feel me with a need to be cool, wanted or popular. Instead I developed a sense that having to learn things the hard way, fail and continue until I got it right without regard to what others thought had a super high value. And to me that's what emacs symbolizes, it doesn't need to be popular or cool and maybe it will die at some point but even if that would be unfortunate it will have been central to a generation of free thinking, intelligent programmers. And now it's 2020 it's cool to be a programmer, and we're awash with learn to be a dev the easy way seminars and here's how you can deploy your app in 2 clicks... And that's good but it doesn't mean emacs has to be that way. I think it is way way easier instead to create a new editor with the same free software mentality. Maybe that's Theia under the Eclipse Foundation, maybe it's something else. But migrating emacs to a VSCode like popular idea is crazy, you just can't migrate all of that. Full disclosure I worked on GDB (using emacs) and Theia (a vscode like editor) and used emacs for 15+ years mainly doing c/cpp and org mode.
- hardwaregeek 6y agoThere's this response that VSCode is just another editor in the vein of Sublime/BBEdit/Atom, that will be killed by a newer, shinier competitor, while emacs persists. That's a great story—indeed it was told to me by a teacher who proselytized emacs. But what if you're wrong? What if VSCode is a massive challenger? For one, no editor has had the backing of a major tech corporation. Sure, XCode and Visual Studio exist, but they were specific to a particular stack. Second, language servers aren't something that can be elisped away. Stuff like multiple cursors are a few elisp lines away, but real, semantic knowledge of code is a lot harder to replicate. Emacs has language server clients but man they're annoying. I'm an emacs user under the age of 40. All the other ones I know stem from this one teacher who taught emacs. I'm not sure how many more there are. Emacs is a fun editor and I'll certainly use the keybindings wherever I go, but it baffles me that people can look at emacs and think it's accessible at all to beginners. Go ahead, try downloading emacs (have a fun time figuring out which version to download for macOS) and using it without any config. It's terrible. Bland, plain white, looking like it's from the 70's. M-x just dumps you into an empty text box with no help. Navigating directories involves typing out entire directory names. Getting basic stuff like goto definition requires either setting up eglot/lsp-mode or ggtags. Emacs is great if you invest the time, but it's getting less and less clear whether the investment is worth it. To return to my question, what if you're wrong? Emacs will die. This wouldn't be the worst fate. It's had a long, respectable life. But I'd miss it.
- coliveira 6y ago> no editor has had the backing of a major tech corporation Eclipse was supported by IBM since the beginning (in fact it inherited the ideas from IBM VisualAge Smalltalk).
- hardwaregeek 6y agoEclipse falls under the "for a specific stack" category. Sure, you could probably write JS and Ruby in it now, but I doubt you could 18 years ago
- professoretc 6y ago> Stuff like multiple cursors are a few elisp lines away... Last time I tried to get multiple cursors/selections working, it was definitely more than that, and the result was awkward and cumbersome at best. The problem is that everything else is written assuming that there's one cursor and one selection, so you can't really make a multiple cursor system in Emacs that integrates with everything else; it remains a special case.
- mongol 6y agoThe Emacs user interface, I think, the general text editor, is slowly dying. We can see in the LWN article that it is very reluctant to change, and this is what evolution has learned me: if you cannot adapt, you die. Most software never make it as far as Emacs have, in any case. So it is not a failure. But is it possible to keep Emacs as a powerful tool, working from behind, in other tools? Like a utility you drop into for specific tasks? Magit for example, or org-mode. Could that be a future for Emacs, to be integrated as a a backend for some tasks in VSCode?
- ksherlock 6y agoIt would probably be better to sell people on the parts of emacs that don't involve text editing - like eshell, dunnet, magit, orgs mode.
- crehn 6y agoFor better or worse, I feel that one "simple" change that would make any project more attractive to newcomers is switching to GitHub for development.
- tptacek 6y agoIt's hard for me to imagine a world in which the Emacs core team has much to do with the look-and-feel of the Emacs that gets new users to adopt it. Haven't Spacemacs and Doom have done more to recruit Emacs users than anything the core team has done in a decade? Maybe "dark theme" and "lots of menus" aren't the problems the core team should be worrying about; leave that to other projects? The idea that what Emacs needs is more or differently organized menus is pretty funny though. Maybe if we could just get all the customize groups into a single tree view it would all make sense to people!
- lgrapenthin 6y agoWhy make Emacs another non-Emacs editor? Having mentored people (programming Clojure) who tried to learn Emacs via Spacemacs or some other "make it dumb" package, even after 6 months, they understood nothing about Emacs. They couldn't solve problems not solved by the "make it dumb" package. While I appreciate the effort going into these packages, I don't see them meeting their goal: Helping people to learn Emacs. They only help people to not learn Emacs while using it like a standard editor.
- jcynix 6y agoI always wonder how those "dark mode" or "change menu" requestors would react to the interfaces of airplanes or helicopters. People want complex and powerful tools to look like a car with an automatic gear or even a bicycle. Yes, the learning curve to fly is steeper than the learning curve to drive. As is the learning curve to drive with stick gear instead of automatic. But you do not need to learn all the intracies of emacs to use it effectively. My wife (non IT) is quite capable of using Aquamacs on a Mac to do her editing. And using org-mode. She switched to Aquamacs after living twice through the harsh experience of Apple killing various programs and leaving her with proprietary document formats she needed to somehow convert/recover to the next "cool" word processor. I got into contact with emacs (actually zmacs) on Lisp machines long ago. And it had some very nice features which I still miss in the classic emacs. But they vanished due to "worse is better" as did the wonderful space cadet keyboard.
- djhworld 6y agoI've recently become an "emacs convert", one of those annoying types who are wet behind the ear and have stars in their eyes. The critical features that have led me down this path have been Org Mode and Doom Emacs, the vim keybindings are what I'm used to and it works well. Will check in with myself in 6 months or so but so far it's been real joy to use, I develop in Go at work and I've had no issues with the LSP mode or anything and it seems to run pretty performant, even with the largest projects. I'm not too well versed in everything though but I'm muddling my way through, the menu bar at the bottom when you hit SPC helps a lot.
- jpfr 6y agoEmacs has a lot of cruft on the code-level. The worst part is the lack of separation between "backend" and "frontend". There is support for many different "frontend" architectures: Win32/MacOS/Gtk/<Motif and many more old X11 toolkits> But a lot of code was just duplicated when a new frontend architecture was added. And started to grow into different directions. The code is littered with #ifdef and there is no clear API for the fronted architectures to sit on top of. For example, font handling is different for most frontends. And this difference leaks into the core part of Emacs where line-breaks are managed, etc. There is work towards a "pure GTK" that uses Cairo as a drawing surface. https://github.com/masm11/emacs https://github.com/masm11/emacs Imho the Cairo "drawing surface" and font handling should be the only implementation for what it does and reused for all frontend architectures. With the exception of terminal sessions... But, Emacs devs are very conservative when it comes to "modernize". In my experience, it is a lot easier to add stuff than to clean up. That also explains the forest of #ifdef and accumulation of cruft.
- ilaksh 6y agoI'm sorry but I feel like it's a lost cause at this point. There are probably more than a dozen other editors that _are_ modern. So if someone wants a new alternative probably all that is really missing is some syntax highlighting definitions. And you can probably port them over from an existing system automatically. OR, create an Emacs distribution that is preconfigured to be more modern. I like TextAdept. It's fully programmable with Lua.
- bad_user 6y agoEmacs has been my editor of choice, but I've been changing my preferences. Some pros: You can be sure that this editor will still be available 30 years from now, and that by learning it today, that knowledge won't become irrelevant. It's easily the most efficient editor at editing text, the things it does for editing text, it does to near perfection, starting from seemingly simple things, like an undo functionality that can always get you back to a previous state, or that can operate only on a region. It's also programmable to an extent that more modern editors aren't. Its programmable environment is always there, you can always evaluate a function and have it available, you don't need to build an add-on with special packaging, like you must in other editors. --- Cons: It's a constant pain in the ass. Whenever something ain't working, you end up going into a rabbit hole, only to emerge hours, or days later with a broken solution and a bruised self-esteem. It's really that bad. If you have a working configuration, it was probably tuned during the last decade at the very least. And the cycle of yak shaving and self loathing repeats itself whenever you add new packages. People treat their Emacs configuration file as a lifelong project, keeping it in a public version control, because it would be a disaster losing it. By contrast, VS Code and its packages, even when less featureful, tend to work out of the box, and that's a very big deal. Most people don't save their configuration, because they really don't need to, starting again from scratch isn't that big of a deal. Emacs might be super programmable, old extensions might be great, but, as a trend, new extensions developed are of worse quality than extensions developed for other editors, for the same functionality. For example LSP, and language packages that depend on LSP. The reason for why that happens is unclear to me, maybe it's an indication that the APIs are more fragile, or maybe it's a reflection of its fading popularity. It's kind of like (GNU) Linux in a way, the same culture of not giving a shit about regular users, if you want to use this thing you have to earn it, by going through a decade of suffering.
- nullc 6y agoMaking it easier to set colors sounds fine to me. It probably won't make it attractive to many more people (personally I didn't find inverting the colors hard...) but at least it doesn't gut what makes emacs useful and interesting in the first place. ... which isn't something you can say about every improvement people suggest. :)
- zitterbewegung 6y agoI think that the article brings up good points about how to make the default install of emacs better for new users. On the other hand there are many alternative versions of emacs that solve this problem like Aquamacs. Maybe instead of changing the core version instead the FSF could make or suggest an emacs for beginners .
- bborud 6y agoWhat Emacs needs is a better, clearner, more complete "standard library" and a better package and dependency management system both for applications and libraries. Sure MELPA is nice, and I use it a lot, but I do think there is room for improvement. It also needs a better way to manage configuration both personal/local and collaboratively maintained ways of configuring the editor. It needs "good idiomatic everything". Right now it is "half-assed everything". And while someone might take that as an insult, it isn't meant as one. It is meant as how I, someone who has used Emacs for 30+ years and still use it to write all my code, see Emacs. Every few years I try to update my Emacs setup (it is too painful to mess with regularly) and as I have less and less time to spend on this task, my Emacs setup isn't as functional as it used to be. Which makes it more and more tempting to switch to an IDE. I want to write code. Not spend my afternoon Googling solutions to problems and trying to decide which solution will damage my current setup the least. As for whether or not it needs a better Lisp implementation I can't really judge since I haven't written any Emacs extensions for nearly two decades. Nor would I say I am a sufficiently competent Lisp programmer to make that judgement. Does Emacs need a new Lisp? I think focus needs to be on how you can get Emacs to where it feels accessible and usable to a larger population of developers. Right now it has high barriers of entry and it doesn't feel like there is any obvious path to developing and distributing libraries, extensions and applications. Compare this to VSCode which owes its success to Microsoft being able to leverage lots and lots of developers who feel at home. Yes, this is to a large degree because it is based on a more popular language, but also because the community around VSCode is bigger, produces more documentation, can provide more help, and is in general more approachable. Now you may like or dislike VSCode, but there is no denying that it is more successful in attracting developers than Emacs is. (Note that I'm not interested in Dark Mode or cosmetics. That comes later)
- clircle 6y agoI think Emacs is nearly perfect. I use it everyday at work for different tasks. But I can't seriously recommend it to anyone. I'm looking at my configuration file now. It's 1300 lines of elisp. It took me 4 years to make it bullet-proof. I can't ask anyone to make that kind of investment just because I think Emacs is great.
- dreamcompiler 6y agoThey didn't even mention the most appalling non-modern aspect of Emacs: scrolling the page moves the cursor. This never happens on modern editors but it drives me crazy about Emacs and it's non-fixable.
- rjmorris 6y agoHa, that's something I love about Emacs and drives me crazy whenever I use something else.
- eatbitseveryday 6y agoWhy not have an intro tutorial when opening emacs for the first time?
- rcdwealth 6y agoI am using GNU Emacs since 1999. It was one of editors in the back then Red Hat Linux distribution that I got my hands on at the train station bookstore in Stuttgart, Germany. In fact I was searching for GNU system, but larger library Witwer was closed in the evening, and I was furious that my "Windows" blocked itself, it did not have the true multi-tasking. My purpose was to find the multi-tasking, and I was of the opinion that GNU is yet another proprietary Unix like operating system. There was some license shown, I did not even want to read it, I was disgruntled with licenses, and have never respected proprietary licenses. My downloads were mostly from Warez websites, so I could not care less. How wrong I was?! By using GNU Emacs I have discovered what is really free software. I was pleasantly surprised that I could distribute that software without fears of getting caught in Germany, I could even modify it, and what a pleasure that I have got so many programming languages available, for which I would need either to spend money otherwise or search through Warez websites. Emacs and Vim both were my primary editors for years. I liked nvi for simplicity even more, but it did not support UTF-8 back at the time, yet I used it whenever there was need and still do today. For simple text editing, I am using vi, nano, and emacs in console, as mostly I access remote servers and need to handle either emails or configuration files. At my office, I am using GNU Emacs for anything, it is my universal window into the computing. My Window Manager is Emacs X Window Manager or EXWM, so any video or music, I am running it through Emacs and I am using 10 workspaces. By keypress, I am seeking through the names and locations of one of my 195877 contacts, and Emacs displays list of such contacts, by one keypress like F3, I can edit contacts where PostgreSQL is used as background database, I can open the Org file for the contact to manage contact's tasks and transactions, I can send SMS, or initiate the call through one of 3 connected mobile devices. Emacs is deciding which source phone number will be used to initiate the call by looking into the prefix and network of the destination number. If I wish to inform contacts, I will send them automatically emails and follow ups, all working through Emacs and programmed with small Emacs Lisp functions, using system software. More than 650,000 emails have been sent already. Customer relationship management is at my fingertips and need no external server. Staff can access my database and manage it through the virtual private network. If I wish to share my contacts, I can export the vCard and quickly send a file to one of my contacts, I press this window key on left side and m, and I am asked for contact name, then I choose one of emails, and file is sent to the contact. Skills and various marks or tags can be added to contacts. Quick subscribing of a contact to a group is easy possible by using Helm. Most of my needs are satisfied with Emacs Lisp, it helps me to extend the editor to the point that I can make sales in amounts of US $100,000 quicker and easier than back then by using Thunderbird, or terminal and mutt. Yet I could not get rid of the mutt email client due to its increadible speed and customization so I am launching mutt within Emacs inside of the emacs-libvterm terminal, that works so well and integrated. By using some of Hyperbole and Org Mode ideas, I have made the Hyperscope, my hierarchical database backed collection of hyperlinks that helps me and my mind orient and plan better. It creates Org files when necessary or views videos at exact sections or directly brings me to the referenced PDF page. It is fricking extensible through hundreds if not thousands of various packages. What I don't like is too many themes to customize Emacs, so I am just using the default themes, and switch from time to time. Those are my personal use cases, I am quick and efficient, and none of other editors is offering me that type of extensibility to do what I want as Emacs does, and it is all thanks to the built-in Emacs Lisp engine and ready interface that works both on the X and on the console. References: - Emacs https://www.gnu.org/s/emacs https://www.gnu.org/s/emacs - GNU https://www.gnu.org https://www.gnu.org - Why GNU developed GNU Emacs and the GNU system: https://www.gnu.org/gnu/thegnuproject.html https://www.gnu.org/gnu/thegnuproject.html - GNU ELPA: https://elpa.gnu.org/packages/ https://elpa.gnu.org/packages/
- anamax 6y agoI've been using Emacs since it was a set of teco macros. (Yes, there was an Emacs before Emacs lisp.) Apart from some settings to keep a keyboard-grabbing co-worker happy several jobs ago, I haven't had a config file in decades. My experience has been that whenever I need something news, Emacs had it several years before. The most that I've ever had to do is update to a version that isn't 10 years old, and that hasn't happened for a long time. (I keep computers for a long time and the first thing I do with a new computer is install Emacs. I rarely update it.) I've looked at other text editors. They seem to be better on things that don't much matter to me. They often require configuration to do things that Emacs does out of the box. Yes, there are some things that I'd like to be different and about every year or so I think about adding a config file, but then I ask myself whether I'm going to propagate that config file everywhere I use Emacs. So far the answer has been "no".
- adchari 6y agoMaybe I can offer an interesting perspective. Compared to most readers on this site, I’m likely on the younger side, I’m 20, at a university, and I’ve been programming since I was ~14. I used VS Code for the majority of my freshman year assignments, but decided to switch to emacs during my sophomore year, mostly because I’d heard interesting things about org mode, magit, and other packages, and I had a system programming class coming up that would require me to SSH into a VM and finish assignments on the VM. The initial muscle memory shift was scary, I repeatedly gave up on learning emacs, only to come back a couple days later and attempt it again. I started with Spacemacs/Doom Emacs, but both assumed I knew vim, and I found feature discoverability to be complicated. The fact that many packages were included made things more confusing, I tried to figure out what helm and Ivy were, and how to configure things, etc. The only time the process really stuck for me was installing vanilla emacs, reading a couple of tutorials on how the extension system worked, and just forcing myself to use it for every assignment I had. The built in tutorial was handy but I still don’t use the navigation commands most of the time. Nowadays, I can’t get out of emacs, I read my email in it, I use org mode for everything, and have it synced to my phone, I used lsp-mode at an internship this summer where I was writing Go, I’ve got autocomplete set up, etc. While an easier experience would help get people into emacs, I think the fact that you can really customize it in any way you want initially forces you to learn a lot more about your editor than any other editor. If I want autocomplete, I need to go figure out how to set it up, but there’s a plethora of resources. It teaches you how to be a better developer, always looking for new packages and sharpening your tools.
- john4532452 6y agoThe original mail thread says "winmove" is available but not enabled by default https://lwn.net/ml/emacs-devel/20200906133719.cu6yaldvenxubcqq@Ergus/ https://lwn.net/ml/emacs-devel/20200906133719.cu6yaldvenxubc... How to enable "winmove" ?
- john4532452 6y agoIMO emacs is not designed to be sold, its designed to be found.
- martinflack 6y agoIf we want to attract more newcomers, I vote we use video. The emacs welcome screen should link (and encourage) a youtube playlist (or some video hosted somewhere, if a commercial site is undesirable - or even play right there in the editor) that introduces the editor with, say, a dozen very short introductory videos, well-produced with an enthusiastic voice-over demonstrator. Eventually these can be translated so one can watch in their local language. The pitch of "it's a musical instrument, you have to first practice and then greatness will come" needs to be in the first video, with the promise that the videos will quickly get to a tour of that greatness. Then cover some beginner basics. Maybe don't mention lisp in the first video. And then in the following videos, quickly get to magit, org-mode, LSP/slime/cider, yasnippet, and other pizzazz while keeping it practical. (This probably even exists somewhere?) Finally, there is a lot of reading material on the welcome screen, but it should include a chat location to get advice from volunteers who don't mind a relentless stream of "how do I copy and paste" introductory questions and will answer them enthusiastically. If it's IRC, that's fine, but it would be best if just clicking in the browser launched an IRC client and took you there, either in-editor or on gnu.org as a web widget or something (like guix has). I'd also reverse the existing stanzas in the welcome screen: "Emacs Tutorial..." first, "GNU and Freedom..." next, and "Author..." third. It's more practical that way.