Code Development: Use A VCS Hosting Service

For those developing anything other than the smallest throwaway scripts, let me suggest using a version control system, specifically a distributed VCS like Git or Mercurial. There are public code repository hosting services that integrate nicely with these, e.g. GitHub for Git, that don’t charge anything to give you an account.

The first thing a VCS does for you is keep track of all the changes you’ve made. So if you introduce a bug that wasn’t there before, you can go back over your commit history to find out where it crept in. Also you can feel more confident about deleting unneeded code rather than just commenting it out, because you can always bring it back if you need to from a previous commit.

This sort of thing also makes it easier for multiple people to cooperate on a development project: they can each have their own copy of the code repository, and send each other patches or merge requests. They can even pursue multiple lines of development in parallel, and bring them together later.

It’s a wonderfully liberating way to work. I recommend it.

Blender already has a good system set up for script dev, even small scripts.
http://projects.blender.org/projects/bf-extensions/
It’s better to have as much as possible developed in the one place.
Git & Github & Sourceforge provide good developement enviroments but can lead to mismatched versioning in scripts.
So I guess if your aim is to get your script in Blender, use projects.blender.org.

That’s all very well, but Blender’s code hosting all seems to be Subversion-based. Subversion is a centralized, not a distributed, VCS. It doesn’t handle merging very well, which severely hobbles parallel development.