On 4 May 2015 at 21:47, Andy Robinson <a...@reportlab.com> wrote: > I'd probably have to become an advocate for a move to Python 3, which > would involve fending off bankruptcy while we try to upgrade 15 years > worth of corporate apps without our clients' agreement ;-)
If they had known that, after the best part of a decade later, the majority of commercial deployments would be still using Python 2, would they have done it differently? Practicality beats purity - a high level dynamic language never has to break upstream code; it is all interpreted and compiled into byte code anyway, so the interpreter should just accept Python 2 and Python 3 code. I think the PyPy people were talking about this as a possibility at one point. What is the Linus Torvalds saying? Something like "If you decide there is no option but to make changes that break upstream, before you go ahead, first shoot yourself". (Maybe it had swear words in it as I cannot find the exact text now.) If one does not have to support 3.1 and 3.2, and you can just jump to 3.3+, then life is much simpler as they backtracked on some of the most egregious breakages and so it is easy to have code that runs on Python 2 and 3. Python 3 is a marginally nicer language but it is one of those API breakages that doesn't immediately benefit the customer so doesn't get paid for in the short term. At least they don't break the API every version like some famous web frameworks that shall remain nameless. But none of this matters as it will all work out in the end. Your customers will eventually want something that requires a feature which does not get backported to Python 2, then they will have to pay for the code conversion. I switched my head over to Python 3 when asyncio module was added to the standard library. It was a feature compelling enough for me to switch. (Of course, that example works the other way too, since people in the community have backported it to Python 2 anyway.) I personally find adding Python 3 support to code one of those very therapeutic activities (so maybe I should add that to my freelance services I offer :) but it does require the code to be in tip top condition when you begin. If the code already gets no errors in Pylint or PEP8.py, it is fairly straightforward to support Python 3. If it has unit tests, they normally help a lot too, as long as you can easily port them to Python 3 first. Best Wishes, Zeth _______________________________________________ python-uk mailing list python-uk@python.org https://mail.python.org/mailman/listinfo/python-uk