Key point is you can program it to do what you prefer.
Key point is you can program it to do what you prefer.
I keep hearing people mentioning vim and emacs but I have a strong suspicion that if people spent the same time that they now spend learning and customizing vim and emacs learning a more modern IDE or advanced editor they'd be even more effective (except when they need to edit over ssh).
Personally I use Visual Studio Code all day now. But I've also been happy with Netbeans, IntelliJ, eclipse and Sublime. I rarely have to use a mouse or touchpad, it's all alt-tab, wait-a-second, alt-tab, edit, ctrl-s, ctrl-p type parts of a filename, ctrl-arrowkeys, F2 enter new name for a variable or field etc etc.
I've done one honest attempts at learning emacs (and I kind of enjoyed it) + lots of involuntary training on vim (yes, I prefer it to nano).
Or except if they need to blog. Or manage repositories. Or manage tasks. Or read e-mail. Or...
The thing with Emacs is that it offers you an universal, consistent interface for everything text. That includes code, but also prose, notes, tasks, repositories, file systems, etc. The interface itself is also hugely extensible (with lots of packages readily available through built-in package manager), and all that extensibility works for everything.
IMO, spending more time in a typical IDE will make you a more effective programmer. But it doesn't extend beyond programming. When you do something else, you have to switch tools. In this way, spending time on Emacs has a better payoff, because the scope is both deeper and broader.
This. As my programming career extended past its first decade, I began (like many people) to feel the fatigue of constantly adapting to new editors, email readers, file managers, etc. The long-term _consistency_ of Emacs gives me an anchoring point and frees me to pay attention to deeper patterns - data structures, architectures, concepts - things that matter more than the tooling du jour.
I feel that acutely.
Emacs is shit because despite its age, it does not even meet some sane minimum requirements for text editors. No localisation. No tabs. Window cannot be maximised prior to setting some obscure option. Menu items and buttons do not have underlined letters (i.e. accelerators). The vast majority of the options cannot be accessed through the menu or dialogues, instead you get a non-editable document with embedded buttons. Configuration is stored as code. Keys cannot be rebound from the menu.
The list could go on and on. I am thoroughly disappointed with the software, I wouldn't recommend to anyone expending patience on it.
pls don't say that :( there's exactly 0 ppl in the world who get paid for writing emacs. nobody is selling the editor as snake oil liniment that ought to remove all the grievances.
> No localisation
what do you mean? I can read/type in emacs in all 3 human lang I know/use daily.
> No tabs
true
although `M-x speedbar` can display the list of all open buffers in a vertical fashion
> Window cannot be maximised prior to setting some obscure option
I usually just press F11
> Menu items and buttons do not have underlined letters (i.e. accelerators)
true
> The vast majority of the options cannot be accessed through the menu
true
> or dialogues, instead you get a non-editable document with embedded buttons
why do you care if it's not a 'native' dlg? the mouse works. C-s works.
> Configuration is stored as code
hehehe
that's the whole point, m8!
> Keys cannot be rebound from the menu.
true
> The list could go on and on
I was hoping you'd mention the idiocy (I cannot find a more proper word) w/ buffers that have long lines. every time I open some 2MB xml file that was generated as 1 string, emacs suddenly becomes dog slow. this is what should be criticized, not the inability to rebound keys from the menu, imo.
> there's exactly 0 ppl in the world who get paid for writing emacs
I, too, am a free software author in my spare time and not paid for it. Not being paid for a labour of love does not make one exempt from criticism.
>> No localisation
> what do you mean?
The software's user interface and on-line documentation should be implemented in my language, but it's available only in English.
> M-x speedbar
That displays a hierarchical file browser in a separate window, not a list of documents.
>> Configuration is stored as code
> that's the whole point
Occasionally the sheer power is useful because a programming language gives you the power to do things that are not possible or very hard otherwise.
But for the vast majority of cases, most of the time, configuration should be stored in the moral equivalent of an INI file. That way I can process it externally. As it is now, I need to code a parser for elisp and replicate a decent chunk of the emacs runtime environment. That's just too difficult and time-consuming for anyone.
Very much related: http://www.cs.dartmouth.edu/~sergey/langsec/occupy/
Turing-completeness should be the exception, not the norm, and only used when actually needed, not for trivial cases.
> long lines […] emacs suddenly becomes dog slow
Many editors have that same problem, so that one doesn't bother me much.
> Not being paid for a labour of love does not make one exempt from criticism.
I'm fine w/ criticism; I'm just of an opinion that the word "shit" is a bit too much; also I'm fascinated how the current emacs maintainer handles such a complex proj
> The software's user interface
which part? the majority of the user-visible 'interface' consists of so called interactive elisp cmds (runnable via M-x ...); the help for such cmds (or the whole modes) gets extracted from the corresponding fn comments & gets updated in real time when/if the code changes.
> and on-line documentation should be implemented in my language, but it's available only in English.
this is tough. the user's manual is huge. it'd probably take a year for a pro translator to produce a meaningful result
the elisp manual is even bigger
the tutorial is available in multiple lang, though
>> M-x speedbar That displays a hierarchical file browser in a separate window, not a list of documents.
click w/ the rigth btn in the speedbar win: a popup menu will appear. select speedbar->displays->buffers