24 ms·
I wasted two years on emacs. I write code, so I thought emacs would be the learn-once-editor-of-a-lifetime but it was just always an exercise in frustation and
by AJRF 7y ago
I wasted two years on emacs.
I write code, so I thought emacs would be the learn-once-editor-of-a-lifetime but it was just always an exercise in frustation and wrestling bad defaults.
If your using it to write code, emacs is, by default, worse than $IDE because its not built for the write, debug, run cycle an IDE excels at.
I only mention this because a lot of programmers and hackers seem to hold it up as a hallowed piece of technology and I the elitism makes you want to try it so you can be up there amoung the gods.
Everytime I wanted to write code, I would have to cobble together little scripts to shoe horn in build steps and it was always more work than VSCode would make me do. I want to write code, not make my editor work in a sane way.
Org mode is oft touted as the 'killer app' - its entirely unportable. Android and iOS don't have clients that are useable by modern standards. You will hear "oh but you can install this plugin and then it will automate converting your todo list to HTML and it can then run that on a serv...". No thanks, I just want to sign in once, and everything to be synced.
It doesn't have the idea of syncing and its totally uncollaborative. I can't share it in any meaningful, interactable way.
The world has moved on, emacs is a relic of the old world and I finally feel fine in saying that.
- lliamander 7y agoI had spent several years wanting to learn Emacs without actually making much progress. I only really learned Emacs when I had to use a programming language for which Emacs had the best IDE-like experience (Erlang). I think for many niche languages, it's a lot easier (or at least a lot more common) for the developers to offer an Emacs mode than to try and leverage one of the existing large IDEs like Intellij Or Visual Studio. I think it's because, for many projects, a few simple code-aware editing features (syntax highlighting, go-to definition, etc.) and decent command line build tools are enough to suffice[1]. Now that I develop in Java, I definitely use Intellij, but with Emacs bindings. I then use Emacs for note taking, writing shell scripts, etc. I find that this provides me with the best of both worlds in terms of IDE features plus pure text-based productivity (which is where Emacs shines). [1] Visual Studio Code seems like it's taking over the role of "good enough" editor for languages that don't have full-featured IDEs - a place that's previously been dominated by Emacs and Vim. I like VSC well enough, but I don't think it's Emacs bindings are good enough...yet.
- Fishkins 7y agoI do basically the same thing. Intellij (with the VIM plugin) for Java, Emacs (Evil or Spacemacs) for Org Mode and scripting languages. It works well for me.
- lliamander 7y agoSpacemacs is great for creating a more complete, out-of-box experience. Only change I typically make is to use holy-mode for great righteousness.
- h1d 7y agoI wouldn't say emacs and vim dominated before VScode. There were plenty of other editors that supported programming and SublimeText has been around for a while.
- golergka 7y agoI had exactly the same experience with Vim. Now I just use Vim-style input plugins with any IDE that ideally suits the language and platform I'm working with (and lately more and more it's just VS Code), and get the best of both worlds.
- iLemming 7y agoVim is not an editor. It's an idea. Incredible and awesome idea. And Emacs has one of the best implementations of that idea. Try Spacemacs and maybe you'd realize that Emacs can vim better than Vim and Neovim.
- na85 7y agoInteresting perspective. I'm not a professional coder but I do use emacs for writing code and when I'm using a language like C# or Fortran that has a make-run-debug cycle, I just run $ M-x compile which you can bind to any convenient hotkey combo and which you can customize to invoke any build system you like. Results of the compilation go into emacs as a separate buffer. Is that insufficient for your workflow? Not sure what else would be needed except perhaps stepping through code with a debugger and on this point I'll agree that Linux and emacs suck at debugger support compared to, say, the Visual Studio debugger or perhaps Olly which I've never used. As for org, I agree that it isn't good for collaboration except with other emacs users as far as Todo lists and such, however if you generate PDF reports via latex I find org is a better more sane way for that.
- justinhj 7y agoEmacs is not for everyone but it is definitely not a relic, it's constantly updated and many people are spending time working on the editor and on packages for others to use. Whilst most of your points are subjective I can still give my side of the story as a long term emacs user and person of non-elite status. "wrestling bad defaults": I use almost entirely default key bindings for 15 years and I find that they are very comfortable for navigating and editing text, almost like the defaults were carefully arrived at by users. Personally I agree that for most languages you are better off using an IDE than Emacs, although I do use emacs full-time for Ruby as it has excellent support. Haskell, Clojure and Common Lisp are also great on Emacs. That said there are many more uses for a powerful text editor than for typing code. Org mode is fantastic. I used it for all my personal note taking and for project management. It has a lot of depth but you don't have to go deep to take advantage of its simple tree structure editing mode. That said if you do go deep, things like Babel model and tables can be incredibly powerful. There are tools to read and even edit org files outside of Emacs but since Emacs itself is portable, org-mode is in fact portable. That this is the top comment is just evidence that the elites are voting it up to try and keep the rest of the world from finding out that Emacs is the best
- Fishkins 7y agoI really like the Orgzly app for Android. It does everything I think it feasible on a phone interface, and I sync via Dropbox.
- bachmeier 7y agoThere was no reason to use Emacs if that's the way you used it. IMO the reason to use Emacs is because you want to customize things. It's a programming language that you interact with in the form of a text editor. That's a pretty small number of people for sure, but for those that want that, Emacs cannot be replaced by a random IDE.
- bitwize 7y agoI've been using Emacs for about 24 years now. That's 24 years of doing all of my best work as a programmer and writer in it, 24 years of accumulated muscle memory, know-how, and grokking the philosophy of Emacs. I've tried VSCode and various IDEs several times now, and I might even switch once these offer me enough of a value-add over Emacs to make me want to abandon those 24 years of accumulated knowledge. Which is a tall order to fill, and as good as those tools are they don't come close to filling it. Electric indent alone makes me want to stick with Emacs. I'm so used to how Emacs does indentation that I get frustrated whenever I'm presented with an IDE that doesn't do it that way (nearly all of them without special extensions).
- tossAfterUsing 7y ago> Electric indent wtf is electric indent? (i'll ddg for it after i write this comment) i've been trying to migrate my coding to emacs for 5+ years (off/on... obv) and continuously find myself back in Sublime/Atom/VSCode land. as a user for 24 years, could you maybe point some of us lowly noobs to great resources to learn about Emacs workflow? TIA
- bitwize 7y agoIn Emacs buzzwordology, "electric" means roughly "computer-assisted". When you hit TAB in Emacs, it will automatically indent your cursor to the proper column, depending on the current major mode (programming language, as determined by Emacs) and indent style. If you do this at the beginning of a line (anywhere before the first non-whitespace character), it will move the whole line to the appropriate position. It's exceedingly convenient, and beats the pants off any IDE that isn't Emacs or something attempting to closely emulate Emacs behavior. As for learning resources, one of the most comprehensive and convenient ones out there is -- Emacs itself! There are reasons why they call it a "self-documenting editor". Boot up the editor, and type C-h t (that is type Control+h, then type t), and you will be taken to a tutorial which you can work through to give you a feel for Emacs basics. While using the editor itself you have a number of help resources available: C-h k followed by another keystroke will tell you what that keystroke does. Type C-h w and enter a function name, and Emacs will show you the keystroke for that function (if any). C-h f and C-h v followed by a function or variable name, respectively, will bring up detailed documentation about that function or variable. C-h i brings up info, which has online user manuals for Emacs and other GNU software (depending on your distribution and installed packages). And so forth. Outside Emacs itself, there is the venerable Emacs Wiki: https://www.emacswiki.org https://www.emacswiki.org -- which covers Emacs itself as well as various third-party extensions and packages for the editor, and contains additional links to other resources. One more thing: If you're serious about learning Emacs, I recommend that you really commit to spending all of your coding time inside it. Don't wuss out and go back to your nice safe comfortable editor when the going gets tough. The best way to learn, when it comes to a program like this, is by doing. If you do wuss out, that's okay too -- not everybody is willing to put in the time it takes to reap the rewards Emacs has to offer, and if they're making good money with the tools they have there's no shame in that.
- tangue 7y agoAs a long time Emacs user I was recently shocked to see that everything that needs to be painfully configured in Emacs comes from free with VS Code (I don't feel the need for an IDE for the code I'm producing). But the value of Emacs is that everything you learned is solid and probably won't change. Most of the information in the old O'reilly Emacs "Learning Gnu Emacs" from 1992 is still valid. That's deeply reassuring in world of fucked-up js frameworks and endless new useless features. I'm happy to have a stable editor. Apart from technical aspects it's important for me and for some people I guess that my editor is free. "Free as in speech", not open-sourced as a marketing strategy by corporate monsters.
- nextos 7y agoEmacs is not an IDE. It's more a text-mode Lisp machine with lots of little libraries to build your own IDEs and other text-mode applications. So comparing a big IDE like Visual Studio vs Emacs is like comparing a big framework like Rails vs lots of little Clojure libraries. The latter is always more complex to learn and setup, but it is also more able to adapt and evolve. It's a different design compromise. I think Emacs is really worthwhile to learn, and it's become much easier recently. Things like ELPA and use-package streamline configurations a lot. The Language Server Protocol (LSP) will make things even better.
- m463 7y agoThat said, emacs was the IDE for sunos/solaris years ago. You could compile from within it, run your code within it and step through the source code line by line.
- craigsmansion 7y ago> emacs is, by default, worse than $IDE Depends on the language really. For anything Lisp[0], Haskell, Ocaml, Idris, Coq, I haven't found a better development environment than Emacs. Probably because Emacs is usually one of the first to support a lot of languages and then maintains the lead. > The world has moved on, emacs is a relic of the old world and I finally feel fine in saying that. «It works. I’m grateful for things that work. Not many things do work, you know.» 0. except maybe Clojure?
- lilactown 7y agoI still prefer Emacs/CIDER to the other Clojure editor plugins, but IntelliJ/Cursive is a close second. Atom/Chlorine and VS Code/Calva are getting better all the time, too.
- yellowapple 7y ago> Android and iOS don't have [org mode] clients that are useable by modern standards. I use Orgzly on Android, and it's quite usable. I haven't tried syncing things back and forth, but I use it all the time for quick notes on things. Can't speak to iOS, since I haven't used an iPhone in more than a decade (well, except for the work iPhone at a previous job that I promptly "installed" as a hotspot (by plugging it into an outlet on the "roof" of the office pod inside the warehouse in which I worked) and forgot about, but I don't typically count that).
- m463 7y agoYou will probably get up and running quicker with an IDE. That said, the 'e' in emacs is "extensible", and it is IMHO a big deal. Although it takes a long time to learn (and personally I still wish elisp was python), the extensibility is something that you can build on over time and make the editor your own. You can hang onto it all your career. An analogy to all this is craftsmen who build up their tool chests over time. They probably start with a "one size fits all" sort of tool set, then over time add and replace the pieces they use, and iterate. A few humble emacs things I use: - tramp mode: edit files on any system with ssh access - compile mode: take any compiler output and step through errors in each source file one by one - compile mode: I actually have non-compile things like custom searches where I can search for something and step through the found things one by one. Just output <filename>:<linenumber> from a script and you are productive - version control: software archaeology - diffs: so many kinds of diffs/merges are possible - custom keys: put a function on a key. modify how a key works. bread and butter stuff. - smart search and replace: sky is the limit - modify what you don't like: if emacs doesn't behave the way you like, either customize or replace the offending function and make it work "right". some sites: https://emacsformacosx.com/ https://emacsformacosx.com/ https://www.emacswiki.org/ https://www.emacswiki.org/ oh, one factoid - on sunos/solaris years ago, their IDE was emacs (maybe xemacs based?)
- iLemming 7y agoEvery few years, some new IDE comes out, and people like "Yeah, Emacs is done." We've seen this so many times. But after over forty years, Emacs is still here, and it is being developed and getting improvements. I am sure, as long as the keyboard input stays the primary way to enter information, Emacs still be relevant - ten, twenty, thirty years from now. People yet have to invent an editor/IDE that could surpass Emacs's capabilities for extensibility. Yes, certain IDEs are better suited for specific tasks, but if you need a universal malleable tool that you can bend any way you like, there's simply no better tool in the existence. Have you ever thought about it? Almost nobody whoever contributed to Emacs ecosystem - either by submitting patches, improving documentation or publishing packages (plugins), has ever got paid for their work. I have over 300 packages installed in my config, and it is my primary working environment (in fact: besides the browser, it is my only environment). Can you imagine VSCode, Atom or IntelliJ user pulling over 300 plugins? I am not sure that I'll even work. Emacs ecosystem defies any logic, it shouldn't work at all, yet it does. Many developers successfully use it every single day. Heck, some parts of whatever IDE you are using right now probably were written in Emacs. Yes, Org-mode deemed "a killer app of Emacs" and rightfully so. There are reasons why all attempts to port Org-mode functionality to other editors were never very successful. Org-mode is huge. It has tons of features. You can do a lot using Org-mode alone. I do things Org-mode was made for: task management, journal/diary, literate-programming, static web sites, presentations, etc. But I also do things outside of the immediate context of what Org-mode made for. I manage my dotfiles using org-mode. If I need to set up a new machine (Linux or Mac), I only need git, GnuPG, and Emacs. I don't lose anything moving from one machine to another. Or here's another example: whenever I like something on Youtube or Twitter, upvote on Reddit, push something to Pocket AKA Read-it-later (either on the phone or desktop) - that thing appears in my org-mode agenda with a deadline of 30 days. If I don't review it within that time - it'll keep reminding me. Org-mode has the best markup format, better than markdown. People write and publish books using Org-mode these days. Yes, IDEs are more and better suited for certain languages, but there's simply no better tool for manipulating straight text. This very comment I wrote in Emacs. Why? Because there I have in my disposal all the tools I need. Spellchecking, thesaurus, dictionary, etc. Your world has moved on, and Emacs is not a part of it anymore - fine. But don't be bitter, just because you couldn't find any value in it. Truth is: once you learn Emacs to a certain point, every attempt to do things using other tools would make you feel unhappy. Why can't everything be as configurable and extensible as Emacs?