[Tutor] Python workspace - IDE and version control

galaxywatcher at gmail.com galaxywatcher at gmail.com
Mon Jan 18 17:06:27 CET 2010

I want to share a couple of insights that I had getting started with  
Python that I did not come across in the literature all that often. I  
am discovering that there are two primary supporting tools needed in  
order to create an efficient and productive Python programming  
workspace: IDE and Version Control. I didn't realize at first how  
important these supporting tools for Python would be. If Python is  
your first programming language, you will have to learn how to use a  
good text editor or IDE (Integrated Development Environment). If you  
use textpad, it gets old very fast. I have chosen vim as my IDE and I  
added a few key plugins that I think help a lot (snipMate, surround,  
nerd-tree, and repeat).  I believe that snipMate is a plugin made  
specifically for Python users on vim. Among other features, it auto  
indents your code which is very nice.

So now that I can do some Python scripting, I started to notice that  
my scripts were not very organized. Collaboration of code is  
difficult. I had multiple copies of the same script in different  
directories on my computer, and I did not have a good way to really  
keep track. This is the wrong way. Version Control Systems are tried  
and true technologies for collaborating with others (or even yourself)  
on your code. After some research, I have decided to go with Git. I  
have never used version control before, so I don't know the  
distinctions of the various systems out there. I chose Git mainly  
because github.com is really great. Some MAJOR open source (and  
closed) projects are happening on there and you can download the open  
source code so very easily. I am told Mercurial is good too, Bazaar  
and SVN also came up in my research.

Obviously, no tool can think for you. The real programming work of  
course is going on in your brain. I am curious what combination of IDE  
and Version Control System you use and also perhaps, what other tools  
I should be looking at as well.


More information about the Tutor mailing list