October 23, 2016
I was recently re-reading the pragmatic programmer, and found this passage to be interesting.
We think it is better to know one editor very well, and use it for all editing tasks: code, documentation, memos, system administration, and so on. Without a single editor, you face a potential modern day Babel of confusion. You may have to use the built-in editor in each language's IDE for coding, and an all-in-one office product for documentation, and maybe a different built-in editor for sending e-mail. Even the keystrokes you use to edit command lines in the shell may be different. [4] It is difficult to be proficient in any of these environments if you have a different set of editing conventions and commands in each. Choose an editor, know it thoroughly, and use it for all editing tasks. If you use a single editor (or set of key bindings) across all text editing activities, you don't have to stop and think to accomplish text manipulation: the necessary keystrokes will be a reflex. The editor will be an extension of your hand; the keys will sing as they slice their way through text and thought. That's our goal. Make sure that the editor you choose is available on all platforms you use. Emacs, vi, CRiSP, Brief, and others are available across multiple platforms, often in both GUI and non-GUI (text screen) versions.
This book was published in the year 1999, pre-IDE age, when Java was still in 1.2. The authors think that code editing can be just like general purpose text editing. But Uncle Bob of the clean coder thinks otherwise and recommends using specific purpose IDE than using a generic editor. Kathy sierra had also upgraded from sublime to a Jet brains IDE.
Having made the progression from Eclipse(for Java) -> Sublime Text(for JS)-> WebStorm(for
JS). These perspectives left me with the question.
Is mastering a text editor in 2016 worth the effort?
The whole point of being a pragmatic programmer is to use the right tool for the job. Having used eclipse for Java and using WebStorm for Nodejs, I can say that. IDEs make life easy by offering semantic refactoring, intellisense auto-complete, break point, and the whole suite of plugins for running tests, transpile code and linters. If wanting to learn different key binding for the using different language's IDE, considered to be a pain then. I think we are in different age now.
- Open sourced IDE vendor like Eclipse and NetBeans are present across all major OS. They offer plugins to support different languages.
- Commercial IDE like JetBrains also offers IDEs for all the major programming language with the similar key binding.
- The new age Text editors like Sublime text, Atom and Visual Studio code also solves this problem by providing plugin for all major language.
Both Vim and Emacs that the authors suggesting seem to offer something else. They offer the ability to customize key binding. This Emacs-Vim research turned out to be rabbit hole. Some even claim that real programmers use emacs
Emacs
- Guido van Rossum, the creator of
pythonuses emacs. - Matz, the creator of
rubyuses emacs. - Pmarca, marc andresson of Netscape fame uses emacs.
- ESR, uses emacs
- Linus torvalds uses MicroEmacs, a variant of emacs.
- Steve yegge uses emacs.
- Jamie Zawinski, one of founders of Netscape and Mozilla.org uses emacs
- Sanjay Ghemawat of Google uses emacs
- Peter Norvig of Google uses emacs
- Martin Fowler of thoughtworks uses emacs
- Donald Knuth uses emacs
- Obviously, RMS uses emacs
Vi
Bill Joy created vi in 1976.Vim that we are looking here seem to be the proper super set of vi.
- Larry wall, the creator of
Perluses vi. - Paul Graham of YC guy uses vi
- Tim O'Reilly of O'Reilly uses vi
- BrendanEich uses vim
- Aaron Patterson of GitHub uses Vim
These two editors make you do things using keystrokes, forcing you do programming without using mouse. To truly the understand the potential of these editor one has to pick one of them and drive into it. This is what I concede after reading stack overflow answers, Hacker news comments, flame war threads relating to it. For now, I'm starting with Emacs.

Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.