There's a lot of empirical data showing that which language you choose is secondary to which working practices you surround it with [1] --- you can use C++, Java, Perl, Python, or whatever else you want, as long as you use them well. The Software Carpentry course [2] introduces some of these practices (and includes a five-part tutorial on Python); the most important are: - version control - automating build and execution - test-driven development - using a symbolic debugger [3] explains why; [4] has a self-assessment you can use to see how likely your current practices are to succeed. Thanks, Greg [1] http://www.third-bit.com/reading.html#glass-facts-fallacies [2] http://swc.scipy.org [3] http://www.americanscientist.org/template/AssetDetail/assetid/48548 [4] http://swc.scipy.org/lec/intro.html