The authors give the following advice:
"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."
In my daily work, however, I discovered that I get maximal productivity when I use not one, but three editors. Here is my setup.
1. IDE. I know some people who claim that they don’t need an IDE, and that they can achieve the same result using their favorite editor (EMACS, vi or some other). I think that those developers either never got their hands on a really good IDE, or have never done any more or less complex project. Besides simple – though also convenient – features like syntax highlighting, integrated build support, project support etc, a good IDE can provide much more complex language –oriented features. For example, my IDE of choice currently is Eclipse (I’m doing mostly Java now), and it provides me with such incredibly useful features as automated refactoring, language-oriented search, class hierarchy navigation, code generation helpers and many others. And for aspect-oriented programming having IDE with support for aspects (I use AJDT plugin for Eclipse) is vital. In my opinion, trying to program using AOP without an IDE support is a pure suicide: how would you find out that the line of the code you are about to change is, in fact, augmented by three aspects, and your change will have unnecessary side effects?
2. Programmer’s editor. Besides writing Java code, I often need to work with some other files, which do not belong to my current project. I have to analyze logs, edit data files, write some short scripts in other languages… For this tasks I use one of so-called "programmer’s editors". These are complex and powerful text editors. They usually offer syntax support of multiple languages (usually meaning "syntax highlighting", integrated FTP and, sometimes, version control support, file comparison, hex editing, built-in powerful macro languages and many other useful features. The reason why I use separate editor for those tasks instead of IDE is that (a) I don’t want to pollute my IDE workspace with unrelated files – I want to have only program-related stuff there, and (b) I don’t want to start IDE every time I need to edit a file. For some time I was a big fan of Multi-Edit; then I switched to UltraEdit and Crimson Editor. (The latter is less feature-rich than UltraEdit, but is free).
3. Notepad replacement. The third editor in my setup would be Notepad, if it wouldn’t be that crippled. The idea behind having this third editor type is that I want to have something extremely lightweight and fast, so I can instantly do some simple editing on any file. I don’t have any favorite here. Any replacement will do, as long as it supports arbitrarily large files, has support for both Windows and Unix line styles and has decent search/replace capabilities.
This is my setup. All comments and suggestions are more than welcome.
Technorati tags:programming, text editor
7 comments:
"I know some people who claim that they don’t need an IDE, and that they can achieve the same result using their favorite editor (EMACS, vi or some other). I think that those developers either never got their hands on a really good IDE, or have never done any more or less complex project."
I think that countless developers that probably wrote many of the tools you use would tend to disagree.
Let's put it this way. I've met many developers who never used IDE, and were quite productive. But I never met a developer who used a good, correctly configured IDE, learned how to use it and then reverted to non-IDE setup. Of course there probably are exceptions - but in general I am very convinced that IDE gives huge productivity boost.
I agree that IDEs make programmers more productive. Reflective and introspective features such as real-eval-print-loops, inspectors, code browsers are invaluable tools. This is why I think using text editors such as Eclipse is less than productive. However some editors, like Emacs, come close to what an IDE should offer. Eclipse doesn't though.
Slava, you probably mix up something. Eclipse is one of the most powerful and feature-rich Java IDEs. It has all the features you mention and much more. Are you sure you didn't mix up Eclipse and Emacs?
FYI, Slava Pestov is the author of JEdit and the factor programming language.
And no, he didn't mix anything up ;)
Well, I've checked Slava's blog and know who he is. Which only means that either this was a funny joke and I have to work on my sense of humor, or that the stuff Slava was smoking when he wrote this is really good :)
Post a Comment