Overall Satisfaction with GNU Emacs
As far as I know, I'm the only user of Gnu Emacs at Lendio. I use it daily in my work as a DevOps engineering team lead and individual contributor. Emacs is an editor, but also more than just an editor. It is a way of life. You can do pretty much anything in Emacs. I use it for editing files, both in my local filesystem and on remote systems using the Tramp subsystem. Emacs is well integrated with tools such as ssh and sudo, and allows me to edit files on remote systems in a privileged manner. I also routinely use Emacs's integrations with our source code management system (we use Git). The Ediff function is extremely useful when comparing between versions of a given file. As for the business problems that it helps with, Emacs provides IDE functionality in an extensible fashion at zero cost. It is a great tool!
- Emacs is exceptionally good at editing files. The various modes available allow customization of things like indentation, color schemes, etc. when editing different types of files.
- Tramp mode in Emacs allows transparent editing of files on remote systems, including using sudo for access to secured files. As far as I know, no other tool does this as well.
- Emacs's integration with Git is very useful when it comes to determining what changed and when. Git plugs into Emacs's generic SCM functionality, which means you get a ton of features for free, including Ediff for change management (so you can see what changed between two revisions of a file).
- Integration with my web browser through the Edit with Emacs Chrome extension allows me to use a full editor when composing a post on a web page. This allows me to run various tools (such as spell checker, etc.) when composing on a web page in a text area.
- Emacs is old, so it's a little crufty and not too easy to pick up and start using. There is a community package called Spacemacs that simplifies a lot of things that you do with Emacs. It is probably better suited to beginners.
- Sometimes, the choices that were made to integrate certain functionality change the basic models for that functionality. This is seen primarily in the version control system support, where multiple version control systems are supported and "unified" to a standard Emacs-y way of doing things. This can be confusing to the new user not familiar with the Emacs way.
- Emacs has, as its foundation, a lisp interpreter. This means that the extension language for Emacs is emacs-lisp. Some people find lisp hard to understand and have difficulties writing Emacs extension code, or understanding existing code.
- Overall, the ROI of Emacs has stemmed around its nature as a free, open source product. Usability is high, so when you use it you are more productive, but if you are unfamiliar with it, you will be less productive to start.
- Emacs is more than just an IDE. It includes IDE-like functionality, but it is really much more than an IDE.
- Emacs makes it easy for me to work in my environment, in a fashion to which I have become accustomed over the last 30+ years. It is more suited to the professional who has used it before.
I have used several different IDEs and editors, but I keep coming back to Emacs. I guess my fingers are wired for Emacs and I find that I can do pretty much anything in the tool that I can with other tools. Some other tools are more polished, but are specific to certain languages (Java, Python, etc.) where Emacs is totally generic and works with everything. If you find something that Emacs doesn't work with, you can always write your own support for it!
Emacs is well suited to pretty much any application... if you already know Emacs. If you have never used Emacs before, you might be more comfortable with a generic IDE system. If you are working at the system level (not just coding an application), then Emacs is an excellent tool. If you are managing multiple systems and need to edit files all over the place all the time, Emacs is great. If you know Emacs Lisp and enjoy extending your editor, Emacs is for you.