<< back

Why Emacs?

I reccommend GNU Emacs (not Spacemacs, or Doom Emacs) to everyone. If you're just starting to program then you're at an even bigger advantage if you pickup Emacs early. If you're a battle hardened developer you should still be using Emacs, though it may be harder to pickup, assuming you've been using modern "IDE's" for most of your career. I also recommend Emacs to pretty much anyone that processes text often.

Emacs provides the perfect balance of customization, to effectiveness of any editor. I think that it's foolish to use tools that don't let you mold them to your idea of how to use them. Software tools aren't like traditional tools like Hammers and Pipe-wrenches, and it's foolish to use them in this way. With Emacs a Secretary, Software Engineer (obviously), Math Student, Professor, Novelist, etc, can all find ways to implement Emacs into their day-to-day. Emacs is a tool for empowering people. It's not just a text-processor (though it's really good at that), it's also a journal, a lisp interpreter, and really, anything you want.

For Software

I'm going to focus on Software Developers for the rest of this, seeing as it's who I can relate too most. Software Developers often get stuck in ruts, I truly think Emacs is the tool to pull you out and keep you out of said ruts. Emacs will kick you in the rear, and make you cry, and force you to work in a subpar fashion for a long time, the GNU is not an easy beast to tame. But once you've put in the work, and elevated yourself upon it's reigns, the power you attain is so incredibly wizard-like that you may very well consider wearing a pointed hat, and robes, at work.

Currently, I use Emacs for everything at work. Compiling, code editing, file-system stuff, docker, git, documentation, etc. I've used other editors and nothing, comes even close to Emacs. Vim users will probably recoil, but Vim makes you context switch so often between the terminal and your editor that I really think it doesn't even belong in the same category as Emacs. What I would recommend to the Emacs novice, is to focus on setting up your workflows 1 flow at a time. For instance, say you want to work on Perl code. Setup all the Perl related stuff in one-shot and don't worry about making your configuration super ergonomic and extensible. Just make it work for Perl. Then say, you get a job in Scala, do the same thing, but refactor your configuration to enable both Perl and Scala nicely, rinse and repeat until your hands bleed. That's really all there is to it, as you find things you want to improve, improve them one-by-one. Don't rush in and expect to setup a perfect IDE for every language and every workflow. Emacs really is what you make of it, but you can't really know what to make of it, until you identify the problems you want to solve.

A good way to think of Emacs, is, it's the instrument equivalent of text-processors.