Going through the Selenium 2 Testing Tools book, I am reminded once again of something I frequently ask myself, and it’s come to the fore once again. As one who likes the UNIX world of commands and piping, I am generally speaking as one who is less than a fan of IDE’s, and as one who is more interested in using tools that are closer to the surface and closer to the code.
During my time working on “Learn Ruby the Hard Way”, Zed Shaw encouraged everyone to use gedit, which is a close to bare bones text editor with some syntax coloring, but that’s about it. Likewise, vim can be set up to do the same thing, to help call out keywords and other areas where syntax will be visible. Outside of that, though, I find that more feature specific IDE’s get in the way of the work flow more than they help. Of course, this may be my own prejudice, simply because I haven’t spent enough time to master the IDE’s I have used (Visual Studio, Ruby Mine, IDEA, etc.).
On the other hand, there is a lot of stuff that gets generated and can be managed with an IDE. Doing builds with an IDE is a lot simpler than having to write up up scripts with make, rake or (fill in your favorite build approach). It also makes it easy to see where dependencies are and, if you are looking to refactor code and change variables or sections, an IDE can be a tremendous help in that it gives you an indication where all of the changes you might make would impact other files. Also, with all of the potentiual add-ons to vim, and with the addition of tmux, vim could very quickly grow to the point that it is, effectively, a de-facto IDE.
Like so many things, tools are really only as good as the hands they are in and for the purposes they are used. The old saying “a fool with a tool is still a fool” seems apt ;).