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.
    1. 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.
    2. The repository is stored on a remote server that is backed up nightly.
    3. 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.
    4. 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
    RapidSVN screenshot
  • 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:

    Meld screenshot
    Meld screenshot

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s