6 ms·
To be more popular Emacs needs to be easier to get started with and easier to extend. If I have to read a whole book or learn an entire new programming language
by jstx1 5y ago
To be more popular Emacs needs to be easier to get started with and easier to extend. If I have to read a whole book or learn an entire new programming language, I'm not going to put the time in. If any time I search for "how to do x", I get a disjointed mess of "but spacemacs...", "in prelude...", "this custom elisp snippet..." where every piece of advice can be potentially incompatible with any past or future modification that I've done - then the effort and frustration doesn't seem worth for a text editor / org tool.
- rvieira 5y agoI think Spacemacs helps with getting started. For a newcomer there is a "curse of Emacs", helm? ivy? ido? Wnat to do Python? elpy, lsp, etc It's easy to get confused and just give up. Having a curated config like Spacemacs helps to get it working out of the box IMO.
- tharne 5y agoDoom Emacs is very good in this regard too. Without Doom and its sane defaults, I certainly would have given up on emacs.
- cpach 5y agoWhen I set out to learn Emacs in the year ~2001 or so, I just did C-h t in order to launch the builtin tutorial. IMHO that can still be a viable way to get started. Spacemacs might be nice but it’s in no way required in order to be productive with Emacs. My personal .emacs file is only 32 lines long (28 lines of comments are not counted).
- deworms 5y agoIf you need a dedicated tutorial for a text editor it's a great sign that something is very wrong with its design, particularly concerning discoverability. Emacs has no user-friendly command names (you need to memorize function names which are often meaningless abbreviations), no autocomplete, and doesn't show available functions.
- jsilence 5y agoMaybe helm (https://emacs-helm.github.io/helm/ https://emacs-helm.github.io/helm/) should be installed and preconfigured by default. This solves a lot of the shortcomings of vanilla emacs.
- NoGravitas 5y agoHelm is a little heavy-weight. Ivy is lighter, but also does a lot of NIH stuff it doesn't need to. I personally like selectrum, (https://github.com/raxod502/selectrum https://github.com/raxod502/selectrum) because it provides the features of Ivy and quite a bit of extensibility, while still only using the built-in extension points in emacs (completing-read-function, etc.). I do wish the emacs developers would bless something and include and configure it by default, though.
- b3morales 5y agoThere's a new builtin icomplete-vertical mode in Emacs 28, but I assume that like so many defaults, switching is deemed socially infeasible, so we are stuck turning it on ourselves.
- underatree 5y ago> Emacs has [...] no autocomplete, and doesn't show available functions My impression is that you are not familiar with Emacs.
- deworms 5y agoI have been using emacs for 7 years prior to switching to VS Code. Never looked back. It's better in all regards.
- underatree 5y agoSorry for misunderstanding. I see now that you meant autocompletion like LSP (rather than M-x minibuffer completion). Emacs could benefit from built-in LSP, I agree. Emacs-devel are keen for it, and eglot.el is a good contender for inclusion.
- underatree 5y agoI'm a daily Emacs user, and happily use a 100 line init.el, mostly composed of "enable this mode". Emacs supports customization needs to the nth degree, but I've found that this is a false economyy. I agree Emacs needs to be easier to get started with.
- deworms 5y agoYou would probably be more productive in VS Code with an empty config.
- underatree 5y agoI think I would be more productive with VS Code too. But productivity isn't my only goal. I want to give back to the community: Emacs is introspectable enough that it allows me to easily contribute. I want to explore a different UI paradigm, which blurs the line between user and developer. I want to support a grassroots developed editor.
- rich_sasha 5y agoEmacs fits so nicely into my workflow. I can use it, feature-rich, from terminal, within tmux, and easily switching from the editor (where I write code) to other terminal panes (where I run the code). I can also use Emacs without any mouse input at all, have a rich set of keyboard shortcuts, and where I find myself doing something repetitive, I can easily automate it. While I'm at it, I can use the very same environment for a ton of other things - note-taking, editing more file types than I could care about etc. I can see that with different priorities, perhaps VS Code might be a better fit. But does it work in the terminal? Can I edit LaTeX and have equations rendered in-place? Can I easily switch layouts from having 3/4 panes of code and nothing else on the screen, to having various other bits around? Does C&P trivially support multiple "buffers" (registers in Emacs lingo; can copy & paste persistently to different places). Can I easily record rich keyboard macros - ones that, dunno, search second and third word on a line, replace first instance of second word with third word, then return to the starting point? I suspect the answer is yes to some of these questions, but no to most. And this is barely scratching the surface of what Emacs can do.
- 5y ago
- lgrapenthin 5y agoJust because it is expensive to learn Emacs doesn't meant that it isn't worth it. Fine, you aren't "going to put the time in". But what do you get then? A mess of programs and plugins that need to be replaced, rewritten or reconfigured all the time, and its not even close compared to a well managed Emacs setup.
- deleted 5y ago[deleted]
- deleted 5y ago[deleted]
- rgoulter 5y agoEmacs would benefit from being easier to get started with? Yes. Emacs is held back by not being easy enough to extend, because it uses Emacs Lisp? I don't see how. I'd expect learning to write plugins for some application to be harder than figuring out enough syntax/semantics of a language to call library functions.
- rbanffy 5y agoThe fact extensions in other editors are written in Java or TypeScript do not make it any easier to write them. In any case, learning Lisp is useful, even if you never write an Emacs plugin.
- zephyr9 5y agoNo! Emacs does not require the user to learn any code in order to use it. Unfortunately this is a persistent false narrative to which many new users fall victim (as I believe you have). I maintain several packages aimed at non-coding writers. I put a lot of effort into ensuring that writers never need to write or understand any code in order to get writing. Emacs has a built-in user-friendly options UI system that provides documentation on every option and its available settings, and provides input error checking. All options are organised hierarchically, or you can search for any options matching a string. But, there are a lot of programmers out with a desperate need to appear clever. Using the options UI is an affront to their cleverness, so they insist that writing code is the only way. It keeps them feeling clever and it perpetuates this idea that the only way to use Emacs is by learning how to manipulate its internal code. So we have people sharing their overly complex configuration files. And worse, these horrible "starker kits" that obfuscate the extensive in-built help, and further abstract the program away from the user. Ignore anyone pushing any of those "starter kits". Ignore anyone who says "just paste this code into your init". They're only trying to appear clever. Anyone trying to appear clever usually isn't. Edit: here's a video where I set up Emacs from scratch to a full-featured screenwriting program, without a single bit of code: [URL redacted]
- hollerith 5y agoThis is the first time in my 29 years of Emacs use that it has occurred to me that someone out there might like M-x customize enough to hold it up as a pro-Emacs argument. I use it very occasionally in order to discover the name of one of Emacs's thousands of user options, which option I then manipulate with Emacs Lisp code added to a file. I much preferred the (recently completely removed from Gnu Emacs after 2 decades of being marked as deprecated) vastly simpler list-options command for doing that. For me, easy modification of one's personal software environment by adding Emacs Lisp code to files is the central argument for Emacs and cancels out the negatives such as the fact that, e.g., C-z does not undo the latest editing action. One of benefits of online discussion of things like editors and programming languages is that it is a constant reminder of the largeness of the diversity in cognitive styles and preferences among people.
- 5y ago
- agumonkey 5y agoIf you find emacs hard to extend then i hope you never use eclipse, more on that later. Part of the problem you raise kinda comes from the newfound popularity of emacs, people started more projects on top of emacs and now we have a paradox of choice. That said emacs core is pretty stable, even though there an acceleration in new ideas there too, it's not breakage inducing. About ease of extension, in emacs you can add functions, menus, buttons, libs in 15 seconds. That's less time than it takes Eclipse to "create" an empty plugin project. emacs is not the easiest (or the neatest or any -est) but relatively speaking, it's still a good thing.
- commandlinefan 5y ago> If I have to read a whole book or learn an entire new programming language, I'm not going to put the time in. If I actually believe that the time will be well spent, I'm willing to spend it. Having gone through the effort of learning emacs (yes, reading a whole book about it) and forcing myself to use it as my primary editor for a year, I have to say... I don't think it was time well spent. vi, however, was. It was (at least) as hard to learn initially as emacs was, but for most text-editing tasks, it's still a lot faster than any GUI editor both to start up as well as to actually perform text editing tasks. Plus, it's always there, no matter how many jump boxes you've ssh'ed through.
- johnisgood 5y agoI never had to read a book to use emacs well. Same with vim, VSCodium, and IntelliJ. Sometimes I ssh into a machine that has only vim installed, so I use vim. Sometimes it is faster to open a file using vim, so I use vim. If I expect to spend a lot of time editing it, then emacs. Currently I am using IntelliJ for a Java/Kotlin project.