I think it will hurt for a time, but not as bad ad PHP4 to PHP5 is. As is mentioned by someone else, the biggest issue is "Are the libraries I use ported?" There will continue to be dual releases of Python 2.X and 3.X for a time for the purpose of slowly transitioning people. Is it worth it for a large system that is in maintenance mode? Probably not (until something bad happens).
There is a great porting guide though and they have tried to make the transition as easy as possible. The one note I would add to it is "Make sure you are importing all the __ future__ statements possible (like print as a function). I don't know how the 2to3 script handles it but that at least gets you some of the code changed and tested.
For porting existing Python 2.5 or 2.6 source code to Python 3.0, the
best strategy is the following:
- (Prerequisite:) Start with excellent test coverage.
- Port to Python 2.6. This should be no more work than the average port from Python 2.x to Python 2.(x+1). Make sure all your tests pass.
- (Still using 2.6:) Turn on the -3 command line switch. This enables warnings about features that will be removed (or change) in
3.0. Run your test suite again, and fix code that you get warnings about until there are no warnings left, and all your tests still pass.
- Run the 2to3 source-to-source translator over your source code tree. (See 2to3 - Automated Python 2 to 3 code translation for more on
this tool.) Run the result of the translation under Python 3.0.
Manually fix up any remaining issues, fixing problems until all tests
It is not recommended to try to write source code that runs unchanged
under both Python 2.6 and 3.0; you’d have to use a very contorted
coding style, e.g. avoiding print statements, metaclasses, and much
more. If you are maintaining a library that needs to support both
Python 2.6 and Python 3.0, the best approach is to modify step 3 above
by editing the 2.6 version of the source code and running the 2to3
translator again, rather than editing the 3.0 version of the source
For porting C extensions to Python 3.0, please see Porting Extension
Modules to 3.0.