Recs.
Updated
A robust text editor capable of achieving whatever it is the writer wishes. It supports a plethora of programming languages and other faculties of text editing. Yet its advantages do not stop there. If one wishes to delve into the wizardry of Emacs, they can use it for email, web browsing, organizing ones life and so much more. With all these factors pertaining to the sovereignty of Emacs, only one question remains. What is stopping you from beholding its power?
SpecsUpdate
Pros
Pro Total customizability
Customizations can be made to a wide range of Emacs' functions through a Lisp dialect (Emacs Lisp). A robust list of existing Lisp extensions include the practical (git integration, syntax highlighting, etc) to the utilitarian (calculators, calendars) to the sublime (chess, Eliza).
Pro Self documenting
Emacs has extensive help support built-in as well as a tutorial accessed with C-h t.
Pro Vi keybindings through Evil mode
Evil mode emulates vim behaviors within Emacs. It enables Vi users to move inside the Emacs universe.
Pro Emacs provides magit, the best and most complete GIT interface
Complex git history editing become a breeze with very few keystrokes. And simple ones are quickly stashed in muscle memory. Git becomes an direct extension of your brain thanks to Magit. Cherrypicking, blaming, resetting, interactive rebasing, line level commit, spinoff branches... you name it, magit already has it and has typically all those 5 to 10 git CLI commands of higher-level patterns also tide to one simple shortcut (want to amend a commit three commits away ? forgot to branch out and you've got already N commits on master
? ... etc... ).
Cons
Con Learning curve is long
While it's better than it used to be, with most functions being possible through the menu, Emacs is still quite a bit different from your standard editor. You'll need to learn new keyboard shortcuts.
Con Keyboard combinations can be confusing for new users
For example, for navigation it uses the b, n, p, l keys. Which for some people may seem strange in the begging. However they can be changed easily.
Con User interface is terrible
I was using Emacs in the early 1980's, before there were GUIs. In fairness to Emacs, its original design was conceived in that context and is rather good at some things, like flexible ability to bind commands to keyboard shortcuts. Unfortunately, it didn't keep up with the times and fails to take advantage of the entire world of GUI design that's revolutionized computer science since then. So Emacs does 5% or what an editor should do quite will, and is surprisingly under-powered and old fashioned at the other 95%. To this day, it lacks or struggles with very basic things, like interactive dialogs, toolbars, tabbed interface, file system navigation, etc., etc. The things I just mentioned, are all present in some limited and inept form, but falls far short of current standard of good user interface design. For this reason, I would not recommend Emacs to anyone who is under 50 year old, or who needs power user capabilities. For casual, unsophisticated applications by someone who grew up with green screen character based computers, it's probably OK.
Con Emacs lisp is very poorly designed
The language that's used for user customization, extensions, and for much of the basic editor functionality, is Emacs lisp, or elisp for short. I actually like lisp in general, especially Scheme, but unfortunately, elisp is one of the worst versions of lisp ever created, barely meriting being called lisp. It's very slow, impoverished in features, inconsistent, and rather inelegant in design. Elisp needed to be overhauled 20 or 30 years ago, but the Emacs developers were not willing to do the work. I believe this is one of the major reasons Emacs is so buggy, lacking in features, development is so slow, and consequently almost nobody uses it (or should use it) anymore.
Con Very poorly maintained
It's not clear to what extent Emacs is still supported. There's still some development taking place, but so slow that it's almost an abandoned project. There are numerous bugs in Emacs, many these days associated with start up and package management. When you search the Internet for solutions, you often find many posts, sometimes going back months or even years, with no clear fix.
Recommendations
Comments
Flagged Pros + Cons
Pro Customisation with Emacs Lisp
(Almost) everything is implemented in Emacs Lisp. You are the limit when it comes to changing or adding new functions to emacs.
Con Takes a lot of effort to configure to fit your needs
It definitely can be configured (and even programmed) according to anyone's habits, needs and preferences. For example, imagine a text editor which can handle typesetting and displaying English, Russian, Japanese and Sanskrit text, supporting LaTeX publishing workflow, Common Lisp development workflow, Javascript development workflow, writing down thoughts and to-do tasks and also having a full-featured command line.
But you will to configure/program it, and it'll in no way be either fast or pleasurable.
Con Default keybindings may cause Repetitive Strain Injury
Richard Stallman himself, the primary maintainer of GNU Emacs, suffered crippling RSI for years. Unlike editors that allow a relaxed, home-row oriented approach to using the keyboard with only occasional need to use a modifier key, Emacs requires frequently contorting hands to use several keys at once, giving rise to jokes about EMACS being a euphemism for "Esc-Meta-Alt-Ctrl-Shift".