
Enjoyment of one’s tools  - wglb
http://www.johndcook.com/blog/2011/07/31/enjoyment-of-ones-tools/
======
Derbasti
I have worked productively with quite a number of different toolchains. Among
them were full-blown IDEs that worked great (VS+VisualAssistX and Eclipse for
C++, XCode for Obj-C), there were IDEs that worked less than great (VisualDSP,
Matlab) and several combinations of dynamic languages and Emacs or Vim.

I feel that some languages/environments benefit more from IDE support than
others. But in the end, whatever works well for you is a good tool. Bad tools
however drain the life out of me and leave a hollow shell of a coding monkey.
I hate working with inadequate software.

In general though, the text editing capabilities of Emacs and Vim blow
anything else out of the water and make a huge difference to my productivity
and enjoyment. IDEs often lack that (but there are usually plugins like ViEmu
or VsVim that can make up for it). Another great thing to have is good
autocompletion, which Vim in particular is not that good at (again, plugins
can help). Lastly, refactoring tools are a nice time-saver, even though a
comparatively rarely used one. This is where IDEs usually have an edge.

Taken as a whole though, my enjoyment usually peaks when I feel powerful. With
Emacs or Vim, you sometimes feel like a code surgeon, slicing and dicing code
as if by magic. THAT, is cool. It is an experience that IDEs have a hard time
to make up for. Also, the customizability of Emacs an Vim allows you to
discover new stuff whenever you want, which is a great thing that avoid
becoming bored of your tools. So in the end I guess I concur with the author
in that I prefer simple tools to those slick IDEs.

------
dougws
I spend some of my free time customizing my environment, which for me means
basically zsh and emacs. I find this process somewhat enjoyable, and I find
that using said environment to get actual work done makes the work much more
enjoyable.

------
j_baker
I personally look at it this way: I want to get things done. And I don't want
to worry about my tools. That's why I spend so much time making sure I'm using
the right ones. Because bad tools make for an unproductive programmer.

