Live data from Hacker News

Why CCP is still using Python 2

robg3d.com

31–40 of 95 posts

Re: Why CCP is still using Python 2

#31

We have very few automated tests. He could have just written that one sentence.

I changed it to "relatively few." We actually have several thousand altogether, but we have a lot of code. I don't want to discourage the great progress we've made.

The core point is the same: With sufficient test coverage, you can change one variable (Python 3 vs 2) and control for all others. Tests are not an end, they are a means to an end; the courage to change your software in the face of a constantly changing world.

Sounds like you're not there, but maybe you have specific domains of EVE that you feel comfortable changing at your whim. That's the success to focus on.

Re: Why CCP is still using Python 2

#32
post #26
post #19

Earlier quoted context omitted.

"See every organization still running on XP ? They may be sentence to death in 3 month, that may be the hardest way learn it." Huh? XP will just be chugging along, for another decade probably in some places. There are still business being run on DOS software FFS. What is the easiest - pay for a complete replacement somewhere in the next decade or two, or upgrading everything every few years to stay with the times? (w…

Well, with Microsoft (and many other software company) ready to pull the plug of updates on this OS, I hope you have faith in your antivirus to stop every unpublished exploit.

Anti-Virus systems are not required for anybody who practices even a tiny modicum of caution (Don't browse with plugins like java enabled, never open attachments, don't click on links) - and in stand alone with a half decent set of firewall rules your Windows XP system will be fine.

Re: Why CCP is still using Python 2

#33

Earlier quoted context omitted.

I changed it to "relatively few." We actually have several thousand altogether, but we have a lot of code. I don't want to discourage the great progress we've made.

The core point is the same: With sufficient test coverage, you can change one variable (Python 3 vs 2) and control for all others. Tests are not an end, they are a means to an end; the courage to change your software in the face of a constantly changing world. Sounds like you're not there, but maybe you have specific domains of EVE that you feel comfortable changing at your whim. That's the success to focus on.

>With sufficient test coverage, you can change one variable (Python 3 vs 2)

That is a pretty hilarious way of putting it.

Re: Why CCP is still using Python 2

#34
post #21

Earlier quoted context omitted.

If you haven't already written your own horrible hacky string handling framework, python 3's unicode support is much nicer. And IMO, for projects of the size I work on, super() alone justifies the upgrade. But I think to talk about porting is to ask the wrong question. The main reason for python 3 isn't to port existing projects, it's to make python a good choice for new projects.

You correctly point out that unicode is much much better, but How often are you dealing with it? I know that I certainly don't have to think about it in my pipeline.

In some projects, not at all; in others, most of the time. But it's string/unicode that takes up most of the time and effort in porting; projects that don't involve much string handling are pretty trivial to port to python3, IME.

Re: Why CCP is still using Python 2

#35
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 new projects are in Python3 and Python2 is just legacy.

Legacy code happens. And for good reasons. And there are lots of people working on them and earning money. Software is a means to an end. I love to use new technology and using old tech drives me crazy, but from the point of view of business, it's a decision that makes sense. There are still COBOL systems that behave perfectly.

EVE is a game. It currently works. Its players don't care if it's done in Lisp, x86 assembly or Haskell. The people working with the code care, but to migrate it to Python3 is simply to costly and risky to do. And will probably always be. If they start a new project, they may be starting it on Python3. And that's fine. That's the way it should.

Re: Why CCP is still using Python 2

#36

I don think it should surprise anyone here that users with enterprise-size Python codebases aren't jumping to Python 3. PEP 373 doesn't end support until 2015, and I assume at that point RHEL or maybe even someone in the python community will pick up the torch (a la Rails LTS). I think by far the more interesting question is what is going on with today's green-field projects (a.k.a. the enterprises in the making). Wh…

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).

Re: Why CCP is still using Python 2

#37
post #19
post #11

Earlier quoted context omitted.

The point of maintaining the source code to the latest version is to guarantee its survival to the long term: at some point you will have to pass the ownership to another, younger, dev that might not have been taught into this older technology; or port your script to a newer hardware, and eventually deal with an sub-optimal or incomplete VM. Either you maintain to the latest version and distribute the cost in time or…

"See every organization still running on XP ? They may be sentence to death in 3 month, that may be the hardest way learn it." Huh? XP will just be chugging along, for another decade probably in some places. There are still business being run on DOS software FFS. What is the easiest - pay for a complete replacement somewhere in the next decade or two, or upgrading everything every few years to stay with the times? (w…

Chances are those DOS systems aren't connected to the internet and vulnerable to a billion different attacks like XP machines are.

Re: Why CCP is still using Python 2

#38
post #11

Earlier quoted context omitted.

The point of maintaining the source code to the latest version is to guarantee its survival to the long term: at some point you will have to pass the ownership to another, younger, dev that might not have been taught into this older technology; or port your script to a newer hardware, and eventually deal with an sub-optimal or incomplete VM. Either you maintain to the latest version and distribute the cost in time or…

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.

Re: Why CCP is still using Python 2

#39

I wonder if things would look differently if they made everything more modular and went for opensource approach. Sure it has it's downsides, but from what they list: - "We have our own localization solution inside EVE..." - if it's better than gettext, other people would use it too and some would push for porting it to py3 - "We just removed a custom importer we’ve wanted to remove for years..." - was it for DI? woul…

The custom importer was made to get around limitations of Python circa early 2000's, which don't exist any more.

Re: Why CCP is still using Python 2

#40
post #26

Earlier quoted context omitted.

Well, with Microsoft (and many other software company) ready to pull the plug of updates on this OS, I hope you have faith in your antivirus to stop every unpublished exploit.

Anti-Virus systems are not required for anybody who practices even a tiny modicum of caution (Don't browse with plugins like java enabled, never open attachments, don't click on links) - and in stand alone with a half decent set of firewall rules your Windows XP system will be fine.

A patched system with a firewall on and without "trojan horses" brought in by the user is relatively safe.

XP will stop getting patches soon.

And this list (http://www.cvedetails.com/vulnerability-list/vendor_id-26/pr...) is only going to get longer and longer, because even though Microsoft will be EOLing XP, there will be tens of millions of Internet facing machines using it, probably even in 2020.

Post reply on HN