Live data from Hacker News

Why CCP is still using Python 2

robg3d.com

41–50 of 95 posts

Re: Why CCP is still using Python 2

#41
post #5

Huh? Python 2.8 discussions recently? Last I checked there was never going to be a 2.8.

What rock have you been under? The last 2 weeks have been full of people championing the idea that perhaps a 2.8 with back ported 3.x features is a better solution than the 3.x line, because it provides new features with an any easy upgrade path to existing code bases. ...just because most of the core python developers currently seem to hate this idea (pep 404) doesn't mean it won't happen. If 3.4 is as much of a flo…

I don't understand why Python 3 is a flop. It's a incompatible, new version of a programming language. It's seen slow, steady, constant adoption. In the low single digits, but that's to be expected for a incompatible new version.

Most Linux distributions will be adopting it, most mainstream packages are ported or are planning a port.

Want to bet that in 3 years' time Python 3 will be the most popular Python version (51%-49% maybe, but still a majority)?

Wait for all the LTS/Enterprise distributions to switch to it - that will be the tipping point.

Re: Why CCP is still using Python 2

#42
post #36

Earlier quoted context omitted.

Which statistics? I'm honestly curious. I presume you've read http://blog.startifact.com/posts/python-2-gravity.html ? All the new python3/python2 libraries I've noticed adhoc recently have been doing the horrible 'polyglot' one-code-base-support-python2-and-python3 thing, or been in python2.

What's horrible about the "polyglot" approach? Beyond not getting to take full advantage of python3, it's really a relatively painless solution (though when you hit the pain points (bytes vs strings vs unicode) you'll notice).

There's nothing particularly wrong with it (honestly polyglot should have been python 3.1, with new features at they rolled to 3.2, 3.3, etc. in my opinion); but if the reason for using python 3 is that it has shiny new features (like async io), it's a bit of bummer because you can't use them if your library is py2 compatible.

...which kind of makes it 'python 3 but actually python 2 running on the python 3 runtime', and the code is harder to maintain than either python 2 or python 3 (twice as much testing to do too).

Not really much of a carrot for library developers to support python 3.

Re: Why CCP is still using Python 2

#43
post #5

Huh? Python 2.8 discussions recently? Last I checked there was never going to be a 2.8.

What rock have you been under? The last 2 weeks have been full of people championing the idea that perhaps a 2.8 with back ported 3.x features is a better solution than the 3.x line, because it provides new features with an any easy upgrade path to existing code bases. ...just because most of the core python developers currently seem to hate this idea (pep 404) doesn't mean it won't happen. If 3.4 is as much of a flo…

The name of that idea was "python 2.7". Why not 2.9, 2.9.1 and so on forever until someone decides to kill python 3 outright?

Re: Why CCP is still using Python 2

#44
post #38

Earlier quoted context omitted.

Spoken like a true Programmer. remember to refactor costs man hours, which costs real cash. If it works there is no point changing it. especially if the benefit is some so nebulous as "sub optimal VM" if you were worried about speed in the first place it wouldn't have been written in python. also you wouldn't port your script to new hardware, you'd port Python (well wait for someone else to....)

And that why so many businesses are outperform by new ones... Because they couldn't delivers a newer product and features fast enough... Because, to support the new "object" that drive money now they had to refactor an old library, created by a dev 5 years ago, and left untouched since.

Calling out this comment. This is true.

Inertia is a total killer. Your extant codebase is both leverage and inertia. If The New Thing requires changing course and isn't amenable to your extant leverage, most (all?) companies can not maneuver to deal with The New Thing. It simply costs a great deal for very small benefit.

Re: Why CCP is still using Python 2

#45
post #41

Earlier quoted context omitted.

What rock have you been under? The last 2 weeks have been full of people championing the idea that perhaps a 2.8 with back ported 3.x features is a better solution than the 3.x line, because it provides new features with an any easy upgrade path to existing code bases. ...just because most of the core python developers currently seem to hate this idea (pep 404) doesn't mean it won't happen. If 3.4 is as much of a flo…

I don't understand why Python 3 is a flop. It's a incompatible, new version of a programming language. It's seen slow, steady, constant adoption. In the low single digits, but that's to be expected for a incompatible new version. Most Linux distributions will be adopting it, most mainstream packages are ported or are planning a port. Want to bet that in 3 years' time Python 3 will be the most popular Python version (…

I really don't know what to say to that.

Imagine if the java 9 runtime came out today and 2-4% of people were downloading and installing it compared to the java 8 runtime five years later.

That's a flop.

Python 3 has not been a success.

I fail to see why python is magically exempt from the common 'no one uses it, product is DOA' wisdom.

Re: Why CCP is still using Python 2

#46
post #36

Earlier quoted context omitted.

What's horrible about the "polyglot" approach? Beyond not getting to take full advantage of python3, it's really a relatively painless solution (though when you hit the pain points (bytes vs strings vs unicode) you'll notice).

There's nothing particularly wrong with it (honestly polyglot should have been python 3.1, with new features at they rolled to 3.2, 3.3, etc. in my opinion); but if the reason for using python 3 is that it has shiny new features (like async io), it's a bit of bummer because you can't use them if your library is py2 compatible. ...which kind of makes it 'python 3 but actually python 2 running on the python 3 runtime',…

Very true.

It's still better than the option of maintaining two separate codebases, i.m.o., though.

Re: Why CCP is still using Python 2

#47
post #38

Earlier quoted context omitted.

Spoken like a true Programmer. remember to refactor costs man hours, which costs real cash. If it works there is no point changing it. especially if the benefit is some so nebulous as "sub optimal VM" if you were worried about speed in the first place it wouldn't have been written in python. also you wouldn't port your script to new hardware, you'd port Python (well wait for someone else to....)

And that why so many businesses are outperform by new ones... Because they couldn't delivers a newer product and features fast enough... Because, to support the new "object" that drive money now they had to refactor an old library, created by a dev 5 years ago, and left untouched since.

I would suggest that is a fault of process not programming.

If there is a need to upgrade then obviously you need to do it. However if your pipeline doesn't touch unicode, and your upgrading to python 3.3 purely for unicode, then its a massive waist of man power.

programs are a tool, nothing more. If the tool works there is no need to change it. infact its can be very expensive, especially if noone knows how to use it.

For example, most people don't need a pneumatic drill for their DIY. Yes it might be much more flexible, and really really fast. But the cost of maintaining it, and training to get the best use out of it is prohibitive.

However if you own a garage, hand tools are far too slow, and there are is a rich pool of talent to use you fast powerful tools.

Re: Why CCP is still using Python 2

#48

Let's face, there's going to be projects that will NEVER be ported to Python3. Not a couple, a lot. Why should they? If they are using software for making money, it works and porting it to Python3 maybe is just too expensive and too risky. The point is that, as time past, hopefully more new projects will be created in Python3, and they can drive the development of more and more modules and tools, and, eventually, all…

If they're going to keep developing their game for 20 years, and they're smart, then they'll migrate sooner or later; otherwise the weight of finding developers willing to work in the ancient language that python 2.7 will become, and teach them that language, will drag them down, costing them more in the long term than a migration would. Just as it has for COBOL projects. It sounds like they are making efforts to pay down their technical debt; once they have decent test coverage, the move will be much less intimidating, and it sounds like their string-handling library is debt they really want to be rid of - it's just not top priority at the moment.

For projects that are being mothballed in "maintenance mode", sticking to the old tech makes sense. But for a project being actively developed, either you pay off your technical debt, or you pay interest on it forever.

Re: Why CCP is still using Python 2

#49
post #41

Earlier quoted context omitted.

I don't understand why Python 3 is a flop. It's a incompatible, new version of a programming language. It's seen slow, steady, constant adoption. In the low single digits, but that's to be expected for a incompatible new version. Most Linux distributions will be adopting it, most mainstream packages are ported or are planning a port. Want to bet that in 3 years' time Python 3 will be the most popular Python version (…

I really don't know what to say to that. Imagine if the java 9 runtime came out today and 2-4% of people were downloading and installing it compared to the java 8 runtime five years later . That's a flop. Python 3 has not been a success. I fail to see why python is magically exempt from the common 'no one uses it, product is DOA' wisdom.

How many people have to use it before you wouldn't say "no one uses it"?

Re: Why CCP is still using Python 2

#50
post #18
post #12

Earlier quoted context omitted.

Well, Blender uses Python 3. :P (I know, not an option for people who already use something else.)

Blender's hardly used in high-end VFX production, due to scalability and interface issues... Houdini's got dual 2/3 support though.

High-end wasn't mentioned before. But I know, I know, blender is often just not an option. Although I don't find the interface as bad as everyone is saying. But then again, I'm a software developer and I don't find GIMP's interface that bad either.
Post reply on HN