reddit / emacs
Convince Me to Use Emacs or Not To. VS Code User.
_analysis230_ · 2022-08-20 21:48
So, I'm 28, I've been coding since I was 14. started with easy-eclipse (I know, lol), then moved to eclipse. Used that for a while, even through college, although I also became really handy with Vim. In my first job, I started using IntelliJ and I just loved it (scala developer), as far as IDEs go nothing touches IntelliJ if your focus is deep git integration, debugging, code completion and stuff. Now, I use VSCode.
I have ALWAYS wanted to learn Emacs though. Always seemed so cool. Just seems like I need to learn to be an OG. It's a stupid thought, I know, but it is nonetheless. Just that whenever I would try, I have twice, I would keep fighting with it for simple tasks and then some important work would come up and I'd jump back to a familiar editor to get things done quickly.
I've been reading a lot about how VSCode is just about a better editor than Emacs now. Many Emacs lovers are making videos or writing articles on how much they love VSCode now. I really want to try Emacs again. I'm asking the community to either convince me and welcome me to the fold or convince me to not use it and stay with VS Code. I am VERY sure I'm not the only person who would benefit from this post. Others must be in similar situations.
nickanderson5308 · 2022-08-21 06:45
Org-mode is why I started using emacs.
That's all the reason you really need once you know how good that Kool aid tastes.
dm_g · 2022-08-21 06:46
I think the biggest misconception is that emacs is a programmers editor. Over the years I have understood that emacs is an information management system that can do programming editing (among many other things).
If you want to only do programming, VS code is as good as emacs. But if you want a holistic tool to edit and manage text, that will adapt with time, and allow you do many other things beyond source code editing, emacs is the tool. Emacs adapts to my needs as my needs change.
golden_bear_2016 · 2022-08-21 06:57
I've used Emacs for over 10 years, with a bunch of customizations and my own org-mode that saves entries into a full-fledged SQL database and is able to do intelligent text search etc... etc...
What I can tell you is that Emacs is not worth it.
I have sunk **a lot** of time into my own Emacs, but you're much better off using tools like VSCode / IntelliJ.
I used to code Java / C++ / Python in Emacs, but now I only use Emacs strictly for org-mode, that's it.
And if tools like Notion / ObsidianMD has half of the custom features that I spent time writing for org-mode, I would completely leave Emacs and never look back.
-EDIT-
Btw anyone who tries to convince you Elisp is a beautiful language needs to to seriously get down from their ivory tower.
Elisp is complete garbage with hacks all over.
_analysis230_ · 2022-08-21 07:10
This is blackberry all over again.
Growing up, I always wanted a blackberry. By the time I got independent and could afford one blackberry was outdated. Lmao.
VSCode all the way then. I'd just install Vim overlay.
newaccount1245 · 2022-08-21 07:12
I once tried got eMacs briefly to use as a pdf reader with vim bindings (I use zathura but I couldn’t install it on my work computer) and so I had to work with elisp to get things configured to my liking. My main issue with lisp was the fucking braces. God damn those things are aesthetically fucked
rtpg · 2022-08-21 07:15
You know how you use VS Code and you download a plugin, and then the plugin almost does what you want but kinda not? And it's super hard to change that?
The Emacs ecosystem has, of course a lot of plugins and the like. But the important thing is that you can easily script functionality yourself, in a much lower friction way than other IDEs. That includes tweaking behavior pretty easily. It's also super easy to jump into a thing to see how it works. Doing that you'll discover other functionality that might help, understand the system more deeply, etc.
I would also say that modal editing (Vim) is good, but Vim itself is super rough... so using Evil mode gets you the nice keybindings without the messy vimscript stuff.
Though I would highly recommend Doom Emacs just cuz it has a lot of stuff preconfigured. Lot less futzing about with how to build the "perfect init.el file".
You really gotta want to do this though, and spend a \_lot\_ of time reading about how things work. It's not for people who want to make progress writing code lol.
MunsterPlop · 2022-08-21 07:31
It's really about knowing what your needs are.
If your needs are already fulfilled by VSCode then there's no reason for you to switch to Emacs.
Emacs is not for everyone.
If you're looking to be productive out of the box with minimal configuration, then you're better off with VS Code.
If you want something more than just a code editor and you enjoy hacking and tinkering, then it might be worth getting into Emacs.
If you do, it will grow with you and your needs will be fulfilled, no matter how particular they are.
If you don't need this kind of customized experience then Emacs is most likely not for you.
kamui78 · 2022-08-21 07:41
Nobody can convince you to use Emacs or VS Code. Try Emacs and see it it works for you.
Personally, I would never pick VS Code over Emacs because Emacs does everything VS Code does and much much more. You cannot even compare the two because VS Code is just an editor, Emacs is a platform to build upon. I am using it more and more for all of my tasks. First I started using it because I wanted a powerful and flexible method for taking notes. Emacs is perfect for this. I have images, latex previews, graphs and tables, all in my org files. It is way better than Jupyter Notebooks. Then I wanted a more integrated terminal multiplexer. I started with vterm and now I am migrating to eshell. They are all buffers for Emacs, so switching between them is super easy. I can even use fuzzy search to narrow the buffer I want to switch to. It is super flexible and useful when combined with i3. I have specialized modes in i3 that integrate with Emacs. Dired is my default file manager. I use emms for music. Proced is at my fingertips for managing processes. Magit and projectile are my daily companions for developing code. Org allows me to have literate programming. And I have vim keybindings everywhere thanks to Evil.
The more I use Emacs, the more it is becoming an OS independent platform for me. I still prefer GNU/Linux but I could easily switch to any BSD and still be productive thanks to Emacs.
To each their own. To me, when compared to Emacs, VS Code is just a toy.
bitwize · 2022-08-21 07:47
Look man, we can't make up your mind for you. It seems like you want to try Emacs -- so try it. If you hate it, Visual Studio Code will still be there waiting for you (unless it goes the way of Atom, in which case Emacs will still probably be around).
But if you do try it, it helps to put some time into learning it and exploring what it is all about. Go read some of Sacha Chua's comics or watch some of Prot's videos to see why Emacs fans love it.
> I have ALWAYS wanted to learn Emacs though. Always seemed so cool. Just seems like I need to learn to be an OG. It's a stupid thought, I know, but it is nonetheless.
This is exactly how I got into Emacs. It was the nineties and there was time for Klax; but also, from what I read online and heard from my Linux-using friends, Emacs was *the* editor to use if you were a real hacker. So I jumped right in and it was this big, complicated, Lisp-running thing like the DOS versions of AutoCAD I'd seen -- but it was a better editor than Pico or Nano and less modeful than vi, so I stuck with it and used the built-in tutorial and documentation to explore its feature set. I didn't become an Emacs power user until, really, _decades_ later, but I've done my best work in it for 27 years and counting now.
So yes, that's totally a valid reason to try Emacs.
> Just that whenever I would try, I have twice, I would keep fighting with it for simple tasks and then some important work would come up and I'd jump back to a familiar editor to get things done quickly.
Me too, man, me too. Except the editor I keep trying and fighting with is Visual Studio Code, and the familiar editor I use for my important work -- is Emacs!
MunsterPlop · 2022-08-21 07:47
I'm sorry if the time you've put in configuring emacs wasn't worth it.
That can happen.
But for a lot of Emacs users, that time was definitely worth it.
Some things you can't do nearly as easily in Intellij or VS Code.
You can always try and create a plugin but that's an overhead.
I think the critical part is to figure out what you really need.
You realized that you didn't really need what you spent time customizing emacs for and decided it wasn't for you beside your org-mode tooling.
That's fair.
But that shouldn't be the definitive example nor should it deter people who are curious about Emacs from trying it.
Elisp isn't the best Lisp but it does the job it was meant to do just fine.
If you don't like it, that's fair but "complete garbage" is a bit over the top.
Whenever you want to do something specific in Emacs, it's really easy to hack around and get something functional really fast and without even needing to restart the editor.
kamui78 · 2022-08-21 07:52
I wish I switched to Emacs 10 years ago. In my experience Emacs is just amazing. As for Elisp, de gustibus non disputandum est! I find Elisp fun and interesting.
MunsterPlop · 2022-08-21 07:53
Like Emacs, Lisp isn't for everyone.
Language aesthetics is something extremely subjective most of the time.
Braces in Lisp serve a purpose and when you are used to them, there are actually plenty of times when they make things clearer to the reader (scope of evaluation for example).
It can take a while to learn and appreciate Lisp and some people might not manage to.
It's the same thing for any language and that's okay, there are enough languages out there to satisfy (almost) everyone.
Edit: Parentheses is the right word not braces
MunsterPlop · 2022-08-21 08:01
You've apprently made your choice and that's a good thing.
I just wanted to note that Emacs isn't "outdated".
It has history that comes with its long life, and it shows; but it's still more than perfectly capable for modern development.
Some things are timeless and won't easily be obsoleted.
Emacs is one of these.
Old doesn't mean outdated.
kamui78 · 2022-08-21 08:46
Whatever works for you. But Emacs is not outdated. It is simply a different approach to computing which is not suited for your workflow.
Emacs is open and has a very active community driven by passion and a deep philosophy. It is far, far from outdated. There are many editors like VS Code. Emacs instead is unique in what it offers.
Horrih · 2022-08-21 09:09
Tl;dr
If you want a decent mostly hassle free experience, emacs is not for you. Imo it is terrible for the newcomer.
However if you like being in charge, do Everything with the keyboard, customizing Everything to your liking, define some macros/functions, tweak packages, emacs is amazingly efficient. But the initial learning curve is steep and you'll have to learn some elisp.
Details:
where emacs is worse :
- default settings and discoverability of features is terrible for newcomers
- autocompletion and debugging of different languages can be made to work decently, but requires much more tinkering than in VSCode
Where emacs shines
- can be run in a terminal with almost all features enabled
- in much more lightweight/fast. Try handling log files >500MB in vs code
- tinkering and discoverability is much easier for intermediate users than in VSCode. I can create a function that calls terminal commands on the current file and bind a shortcut in 4 lines of elisp.
An example of that : i match patterns of a log file and insert tags.
Then emacs can "fold" the logs in sections and subsections.
Some killer features :
- org mode : todo lists, notes in a markdown-like format, calendar management, etc.
- magit : by far the best keyboard based git client.
somenam · 2022-08-21 09:29
You mentioned articles about VSCode being better tha emacs. Mind sharing links to them?
microamplifier · 2022-08-21 09:34
Debuggers. I know there’s dap-mode but it was quite buggy last time I tried. VSCode, and IDEs in general, provide a much better UI for debuggers IMO.
Having said that, I’m partial to org-mode/org-roam, magit and smartparens. So I still spend most of my time inside Emacs.
LorenzoFero · 2022-08-21 10:09
Learning Emacs is a long long journey, but you will have general purpose productive environment for life.
If you only need a text editor, you're probably better off with vscode or neovim.
arthurno1 · 2022-08-21 10:50
Why should anyone convince you in anything? Use whatever you want, it's a free world.
deerpig · 2022-08-21 11:05
\> I have ALWAYS wanted to learn Emacs
There, you're already convinced. Give it a proper try, not a half-assed "I tried it for a couple of days and it sucks." Give it a chance to sink in; until you get the light-bulb moment and understand how it really works. It took me a solid month, and that was more than 20 years ago and I am still living in Emacs today.
Emacs will give you back as much as you put into it. No one can do that for you. Treat it as a professional learning experience. If it is not a good fit for you, it will have at least taught you to look at editors from a different perspective. You will be a better professional for it.
\> I am VERY sure I'm not the only person who would benefit from this post. Others must be in similar situations.
And I am very sure you didn't search for "convince me to use Emacs" before you asked the question. If you had you could have benefited from all of the people who have thoughtfully answered the same question over and over.
[https://www.google.com/search?hl=en&q=convince%20me%20to%20use%20emacs](https://www.google.com/search?hl=en&q=convince%20me%20to%20use%20emacs)
SteamingBeer · 2022-08-21 11:08
Convince you? Here are some reasons why I use it. I use doom Emacs as I wouldn't bother spending endless time configuring my own:
- argb transparency, makes a beautiful editor
- multifont
- org mode
- superior project management with projectile, all of my microservices at the tip of my hand
- customizable
- extendible
- fast
- best vim mode in the world, modal editing is the sht
- self documented
- detach frames and run in a server mode (fast startup and great Multimonitor support)
I was using neovim for over a year and vscode from time to time (was a vscode user for 4 years before that).
Once I installed emacs haven't used any of them since.
Your mileage may vary.
7890yuiop · 2022-08-21 11:27
> I have ALWAYS wanted to learn Emacs
> Convince Me to Use Emacs
Use Emacs.
_analysis230_ · 2022-08-21 11:29
Been struggling with getting doom Emacs to work right. Lmao.
I'm on Mac os.
Doom Emacs is running slow for whatever reason.
Tried with vanilla Emacs and emacs-macos.
Fml
overwritten-entry · 2022-08-21 13:34
> Though I would highly recommend Doom Emacs just cuz it has a lot of stuff preconfigured. Lot less futzing about with how to build the "perfect init.el file".
> You really gotta want to do this though, and spend a _lot_ of time reading about how things work. It's not for people who want to make progress writing code lol.
Both [neo]Vim and Emacs have unsatisfying defaults, both have distributions that try to make 'em pretty ootb and yet you can't get everything you want without going into details, which are usually hidden. Now you are exposed to details, why use prebuilt config?
But in contrast to Emacs, vim is much simpler and smaller. Especially in case of neovim, which additionally has great configuration language(lua). I gave Emacs a fair try, but didn't find anything(except org and magit) that does much better than neovim
I really like Emacs and lisps and hope some day we will get a simpler alternative which is well-designed and performant
rtpg · 2022-08-21 13:51
The reason to use prebuilt configs is that I am satisfied with very little of the default setup, but am satisfied with 95% of the doom config. On top of that the doom config pins packages, updates it, comes with its own helper functions to help with my config... but a huge thing is that Doom is a config that is well designed, so it's easy to turn off what you don't want, configure things that are almost right, etc.
I think you can totally go backwards from doom emacs to a config you're happy with if you want to. But when I have to work with a new language it's nice to have the blessed packages available at my fingertips through the Doom setup.
Of course I gotta learn all the internals anyways, but "know the internals" and "know them well enough to write out specified configs for everything" and "know the internals well, and be able to design the right keybindings for everything" are different things.
00-11 · 2022-08-21 14:23
and over
and over
00-11 · 2022-08-21 14:25
> Elisp isn't the best Lisp
Yes, it is - it's the *best Lisp* for manipulating text, buffers, windows,...
And isn't that a *great thing* for all of us, including programmers?
nv-elisp · 2022-08-21 14:26
If you've been programming for as long as you say you have, you should know better than to ask a question like this. Just use whatever tool gets the job done for you.
00-11 · 2022-08-21 14:33
> My main issue with lisp was the fucking braces.
*No braces in Lisp*. (No suspenders either. ;-))
Parentheses, yes; braces no. See JSON for braces. See C for braces.
Ask yourself ***WHY* Lisp uses parens** the way it does. The answer starts with this: **programs as data** - programs that manipulate programs.
Lisp syntax is a simple [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree) syntax.
*Nothing is simpler than Lisp syntax* - through and through, up and down, inside and out, and inside-out.
Maybe you just don't like simple? Simple can seem hard when you're used to making do with doing things the hard way.
MunsterPlop · 2022-08-21 14:35
>but it does the job it was meant to do just fine.
00-11 · 2022-08-21 14:39
> it is terrible for the newcomer
Emacs is beautiful for the newcomer, and super welcoming. Depends where you're coming from, perhaps. And what you're expecting or looking for.
00-11 · 2022-08-21 14:42
> Why should anyone convince you in anything?
This. I wonder if the *convince-me* thing is maybe generational?
Not to start a generation-gap war, but in my day the thing was *convince yourself!* or *No thanks - I'll convince myself!*.
Horrih · 2022-08-21 17:25
As much as I love emacs, try letting a fresh graduate configure stuff like tab size, encoding, key bindings, auto completion without access to a search engine.
Either they follow thorougly the tutorial and then explore the info pages, and then figure Everything out several days later.
In VSCode, they can do everything in a couple of minutes through the GUI.
For the initiated user though, it is a joy, but it takes quite a journey to get there and minimizing that does not help imo !
[deleted] · 2022-08-21 17:45
[deleted]
arthurno1 · 2022-08-21 19:35
> No thanks - I'll convince myself!
+1
MunsterPlop · 2022-08-21 19:50
If you're interested, there's a promising project called [Lem](https://github.com/lem-project/lem).
It's an Emacs-like that uses Common Lisp, is already very performant (and it's multithreaded) and is a lot simpler since it doesn't have Emacs' history yet.
overwritten-entry · 2022-08-21 21:14
Thanks, heard about it. Hopefully it will eventually get some attention from the people who crafted Emacs ecosytem. You can call me a heretic, but when it comes to lisps I prefer clojure-like things(though I only used clojure-like languages and not clojure itself, hope clojure in my head matches real clojure). While Lem is simpler, CLisp is just as complex as ELisp(might be wrong), having simple and powerful config language is also important
Current_Radish · 2022-08-21 21:16
I have had the pleasure to use Emacs for over 40 years. I'm confident it will have an active developer community far into the future. Why use a proprietary tool when there is an open source alternative that will outlast the proprietary ones? Why work to enhance a proprietary tool or its ecosystem?
MunsterPlop · 2022-08-21 22:14
Actually, in terms of complexity, CLisp is a much bigger beast than ELisp which has its pros and cons.
The ecosystem is so huge you can pretty much find libraries to do anything (the standard lib is also very featureful) but it's easy to get lost in it.
It supports a lot of different paradigms.
If you want OOP, you can have it.
If you want simple procedural, you can have it.
If you want functional, you can have it too.
It won't be "pure" but that's not what you're looking for when using it.
As a configuration language, I'd say it can be as simple as you want it to be.
You can just stick to a simple feature set and be happy or you can bring in the big guns if you ever need them.
You could even easily implement your own DSL if you feel like it.
It's extremely flexible and I'm pretty excited to see what its usage will lead to with Lem (if it, hopefully, gains enough traction).
00-11 · 2022-08-21 23:15
Maybe you're right about some fresh graduates.
But even they might be able to find a helpful 14-year-old who's got the energy and patience to give them a hand. ;-)
00-11 · 2022-08-21 23:18
> Learning Emacs is a long long journey, but you will have general purpose productive environment for life.
Life is a long, long journey. But life is a general-purpose, productive environment for doing Emacs.
[deleted] · 2022-08-22 14:46
[deleted]
Kwisacks · 2022-08-23 05:43
*Many Emacs lovers are making videos or writing articles on how much they love VSCode now. *
Can you share some?
hangingpawns · 2022-08-25 04:40
I love my workflow in emacs. I am always doing my dev on remote machines, so I always start emacs as a daemon, and then use emacs client to attach to it.
Then, within that daemon, I have all my shells (via vterm) and all the code (with lsp-mode of course).
This way, I can easily compile, run tests, check the status of various hardware perf counters, etc.
And I keep that daemon running for weeks at a time. I have hotkeys so I can switch through shells quickly (f3).
I feel my workflow for my job (systems software development for distributed AI frameworks on funky hardware) is really optimal and don't see how I could fully emulate it with vscode.
arredi · 2022-08-30 18:11
You want encouragement not convincing
_analysis230_ · 2022-08-30 18:13
I switched to Emacs.
Doing react web development.
It ain't perfect. It's a lot of work and although the features are almost all there, VSCode does have the edge in that regard.
But I'm sticking with emacs. God knows why, it makes zero logical sense. The heart wants what it wants.
Rapiz · 2022-11-18 21:07
Lex Fridman