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.
- 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:
- gvim is my usual editing tool. I don’t use a lot of the advanced features, but I love the way that my finger movement is minimized while typing.
- 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:
Go read the documentation on the Subversion web site to find out what it can do for you.