Over the years, I have tried out various tools and settled down for a set that seems to work pretty well for me. I do try out new ones now and then and take in use what I find useful.
- IDE that I use is emacs and it’s pretty central on what I do currently. It took quite a bit to get used to, but after learning the basics, I have really grown into it. Extensible system means that I can customize it to my liking.
- Since I code mostly with Hy (embedded lisp inside of Python), hy-mode is useful. That gives me syntax high-lighting and indentation rules.
- I wouldn’t want to deal with all those parentheses without ParEdit, which makes editing s-expressions a breeze.
- Since I’m using git as a version control system, I’m also using magit package to do the day to day work with repository from inside emacs. Code is hosted at github.
- Latests additions to emacs are helm and helm-projectile. Helm helps me to complete when I’m looking for something (file, buffer) in emacs and helm-projectile helps managing files in a project.
- For testing I use nose. Very easy and fast to use framework, that I have been using for years. And running tests from emacs, I use nose package.
- I have a small amount of specifications written in BDD-style, that I run with behave. Other testing related tools include PyHamcrest and mockito-python.
- On a rare occasion that I need to do something relating to graphics, I use GIMP. It has all the features I need (and then some).
So my workflow is pretty emacs-centric. I have used Eric previously, until ran into trouble with an upgrade and had to find something else. Especially happy I was with the rope integration, that allowed me to refactor Python code easily. Geany was another IDE I used and was happy with, before switching to emacs. I probably forgot some tools, but in case I remember them, I’ll add them here later.
- For various documents, I use Sphinx. It uses reStructuredText as mark up language and generates nice looking html-pages (among other formats). Extensible plugin architecture means there are additional tools available for example for running tests for the documentation being created.