TLDR: Use python-future.
The Project Last summer I led the conversion of a 100KLOC Python 2 web application to Python 3.
The application is called “Accelerate” - the backbone of operations at my employer, MassChallenge, a global startup accelerator. It handles every stage of a running accelerator program:
account creation for entrepreneurs and experts (mentors) startup applications online and in-person judging of applications coordination of one-on-one meetings with mentors during the program generation of reports used by judges selecting cash award recipients So, it’s a mission-critical app.
When we were growing our team of Python devs at CMG, I was involved in a lot of interviews. I really enjoyed it, meeting and hiring interesting and talented engineers.
I’m not a big fan of quizzing people on technical minutiae in interviews. I do think that asking some questions about technical likes and dislikes can be very illuminating though.
For example, “What’s your favorite standard library module?” (My favorite answers are itertools or functools, but anything that shows they have hands-on appreciation for the depth of the standard library is good.
(This is another thing I found myself writing on Quora and wanted to keep. The question was “Does Python have any scalability limitations?”)
“Scalability” is a term people like to throw around, but the less specific you are as to what you mean by it, the less substantial the answers will be. It is not a simple linear measure on which languages can be given some numerical score.
Languages and their implementations do have certain inherent performance characteristics, but in order to understand their relevance to your needs you have to get specific about your needs.
A little-known bit of trivia about our book, Python Web Development with Django: we wrote the manuscript in Markdown.
I think it was my idea. One of the major motivations for using a text-based format – versus the unfortunate de facto standard, Microsoft Word – was integration with good developer tools and workflow.
Our manuscript and all our project code was in a Subversion repo, so each author always had the latest updates.
“I’m a PHP programmer and I want to check out this Django thing. What should I do?”
I’ve been seeing this kind of question pop up more and more, and I have a few answers.
First-hand experience as well as many conversations with developers online have led me to the same conclusion: the curious person behind such a question should be encouraged and assisted. (I’ll call that person “Pat” for the rest of the post, for convenience and conscientious gender-neutrality.
At the Western Mass. Developers Group meeting this week I showed a few people some of the unixy fun you can have with a (jailbroken) iPod touch and the Cydia package manager. Cydia is a port of Debian’s APT system to the iPhone platform – i.e. it’s a real package manager. It made it a snap to install Python, Mobile Terminal, Mobile Text Edit, Subversion, etc.
This is the toolset that has allowed me to even do some work on the book as I mentioned in my last post.