Like bike sheds the tools we build or software with tend to be the subject of great debate. I thought maybe I would write up a brief survey of how I get "shit done" for both my professional work in python and django and my side projects. Unlike most physical tools my criteria for selecting software differs: I want things that provide the most utility with incurring the least amount of existential despair and frustration. As a pragmatist I like to think I can handle imperfect tools. I try to avoid them when I can obviously. vim A pleasant and capable editor. I will admit I am a vim novice yet I find myself missing it whenever I am using something else. It is fast sleek and doesn't get in your way except for when you need to manage your vim's giant assortment of plugins which is quite painful even with tools like pathogen. If it had the kind of static analysis and automatic import manipulation pycharm and pydev have I might use it more for python. pydev and eclipse pydev's code analysis is insanely powerful and it's presentation as eclipse problems actually makes for a fairly decent workflow. Unfortunately it is poster child for obscene java programs. Its UX is like being trapped in an insane poorly decorated maze made by people who thought they were more clever than they really were. To be fair to the pydev creators this almost entirely baggage from eclipse and not pydev itself. pycharm A more performant and snapper IDE experience than eclipse. It still suffers from some weird obtuseness at times but for the most part it speaks my language unlike eclipse. With a vim plugin I can even get some of the nice visual mode fun back.