Tools for Python software development
I have found a few tools over the years that I find extremely useful for developing software. Python is my language of choice at the moment, but I’m sure these tools will be handy for any language.
- Subversion is an open-source version-control system. Version control was designed to allow multiple programmers to work on the same project at the same time without stepping all over one another. However, even though I am a solo developer, I find version control to be extremely helpful.
- When I commit changes to the repository, I can document what I’ve changed and why. This is a great help when I introduce a bug and have to go back and find it.
- The repository is stored on a remote server that is backed up nightly.
- It’s easy to make an “unstable” branch for implementing new features. When I make changes that don’t work, it’s easy to revert to a previous version that works.
- It is easy to deploy my code to the Linux cluster and make sure that the cluster is running the latest version of my software.
Go read the documentation on the Subversion web site to find out what it can do for you.RapidSVN is a GUI client for a Subversion server. By default, Subversion comes with a command-line client that does everything you need. However, sometimes it’s easier to stay organized when everything is presented visually. Here is a screenshot of RapidSVN: RapidSVN screenshot
- Meld is a graphical diff tool. If you find the command-line tool “diff” handy, but not easy to use, download Meld. It’s like the diff mode in gvim, but even better. Here is a screenshot of a complex diff that illustrates why Meld is so cool:

Meld screenshot