I'm really quite astonishingly happy to be joining Tim Hall in co-authoring Python 3 for Absolute Beginners. It's Tim and APress' project, but I've been lucky in getting to author two of the chapters.
The book's aimed at those learning to program, through the medium of Python 3, rather than those already experienced in Python 2.x. But the new Python looks like an excellent way to teach people about the vagaries of a whole range of programming concepts. Generally the changes in the new version are for the better, and I think Python's benevolent dictatorship were absolutely right to conscience backwards incompatibility in the occasional change.
There's been plenty of discussion of this on the blogosphere which I don't particularly want to repeat here. Relentless backwards compatibility can be harmful to a living, breathing application, which exists to enable yet constrain a programmer's wildest ideas. It's not as though there are major changes between 2 and 3: there's a kind of wart-removal ethos in their cleaning-up of exception handling, lists v. iterators, and the addition or removal of little details like dictionary comprehensions or the weird lesser-spaceship operator "<>", but: I'll miss the (deprecated) interpolation operator for string formatting. It's fortunate that "".format()
is pretty Pythonic, and as good as a method equivalent to the operator is likely to get.
It's turning into a busy January for me, what with Oxford Geek Night #10, a minor bike whoops nearly two weeks ago, and now this. I intend to take every February evening off, if that's OK.