This is an edited version of a post to python-list.

And, if they are willing to go offsite [to find Python programmers], why not go to India and save lots of bucks?

In general, Python requires you trust your programmers. People give Java grief about its restricted environment and static typing, but if you don't trust the programmer to do a good job, at least with Java they (maybe) can't mess things up as badly for everyone else working on a project. You can mess things up royally with Python. I like working with a language that respects my intelligence -- no final classes, no type restrictions, no (truly) private methods -- but that's not without its costs.

In general, Python rewards highly-skilled programmers with a considerably increased productivity, moreso than in low-level languages. We talk about how Python is also easy to learn and maintain, and that's still true, but it doesn't mean that it evens out the differences in productivity between programmers. In fact, quite the opposite, it makes those most productive programmers more productive and more valuable. That Python is easy to learn and maintain means that there's less risk in using a highly skilled, highly productive programmer. In other languages you risk being left with a program that only another highly skilled programmer can maintain, and that's less likely to occur with Python (for an appropriate definition of "highly skilled").

Also, Python encourages agile methodologies, even if you aren't explicitly trying to use agile methodologies. They just work well. Agile methodologies also work well when you can have a more intimate relationship between developer and project manager or customer. Hiring in India or elsewhere makes that intimate relationship harder to create.

Finally, to be frank, Python is not the language for companies who expect mediocrity in their programmers, and I think that outsourcing is for companies that expect mediocrity.

I don't mean to insult Indian programmers -- certainly there are Indian programmers who are just as good as a good programmer in the U.S.: able to communicate well, able to work independently, able to intelligently judge tradeoffs, etc. But those aren't the cheap Indian programmers. This isn't about nation of origin. Outsourcing is about turning programmers into a commodity, and you can only make a commodity out of something where quality isn't an issue. In the case of programming, that means you must expect the lowest common denominator of quality given the constraints. Because shitty code is always shitty (even in Java) the constraints for outsourcing typically include heavy-weight methodologies and a high degree of formality.

I think it's stupid to look at programming as a commodity, but it's way more stupid with Python. I don't think outsourcing will hurt the Python community.

The corollary: if you don't want to be outsourced, focus on methodologies and tools that respect you as a programmer, that respect your intelligence, judgement, and motivations. If you do, you put a bit more power in your hands, away from institutions. You don't want to be a sharecropper and you don't want to be a commodity.