Unarguably marginally better is still unarguably better.
Set and dict comprehensions are pretty rad. Ordered dicts are useful. The new unittest module is great.
Of course, all of these have been back-ported to 2.7, but even if they hadn't, Python 2 is still a very capable language. Don't have dict comprehensions? Well, you can build an equivalent loop without too much difficulty, and you're used to doing that.
So there's not a great value proposition when it comes to moving from Python 2 to Python 3. You're used to working around the warts, and the workarounds aren't that painful. But what about going from 3 to 2? Once you're used to range() being efficient, to dict comprehensions, to a cleaned up stdlib, and to sane Unicode handling? You won't be crippled, but I'm fairly certain you won't find it quite as pleasant.
I believe that's the measure that matters, in the long run. Would the old thing feel worse than the new thing, from the perspective of the new thing? If the answer is, to any degree, unambiguously "yes," then it only makes sense to plan on making that move.
Comments
Unarguably marginally better is still unarguably better.
Set and dict comprehensions are pretty rad. Ordered dicts are useful. The new unittest module is great.
Of course, all of these have been back-ported to 2.7, but even if they hadn't, Python 2 is still a very capable language. Don't have dict comprehensions? Well, you can build an equivalent loop without too much difficulty, and you're used to doing that.
So there's not a great value proposition when it comes to moving from Python 2 to Python 3. You're used to working around the warts, and the workarounds aren't that painful. But what about going from 3 to 2? Once you're used to range() being efficient, to dict comprehensions, to a cleaned up stdlib, and to sane Unicode handling? You won't be crippled, but I'm fairly certain you won't find it quite as pleasant.
I believe that's the measure that matters, in the long run. Would the old thing feel worse than the new thing, from the perspective of the new thing? If the answer is, to any degree, unambiguously "yes," then it only makes sense to plan on making that move.
> Well, you can build an equivalent loop without too much difficulty, and you're used to doing that.
You can build an equivalent list or generator comprehension (just generate tuples and feed that to `dict`). It's just ugly.
I believe that was the OP's point.