Live data from Hacker News

Why CCP is still using Python 2

robg3d.com

81–90 of 95 posts

Re: Why CCP is still using Python 2

#81

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.

Well I suppose it's all in how you interpret them. For example, if you look at https://wiki.python.org/moin/2.x-vs-3.x-survey?action=Attach... which shows 22% Python 3 vs Python 2 adoption, perhaps that sounds bad. But if you imagine that those 22% are the green-field projects and 78% are the people maintaining Eve Online, then that is a great outcome for Python 3. So I guess the question hinges on whether you believe Python 3 usage is highly correlated with green-field development, which is a belief I hold.

> I presume you've read

There are a lot of things I dislike about this article. One is that it acknowledges that library support can pull you to Python 2, while totally ignoring that library support can also pull you to Python 3. For example, as a result of spending a lot of time in Python 3 I have a lot of Python 3 code (e.g. what was a month ago green-field library development). These libraries are neat, and I want to use them, and it is a requirement for using them that I use them from Python 3, and they cause me to use Python 3 in the same way that Twisted's Python 2-only support causes some other developer to go to 2-only. The pendulum can swing both ways, and it's up to us as library authors to decide which way we want to swing it. In my view, the real villains here are library authors who have decided to make Python 2.x a first class citizen and add new features do the 2.x versions of their library instead of designating 2.x as bugfix-only like the Python Software Foundation did long ago.

The second thing I dislike about the article is that it ignores the obvious solution: port package X to Python 3. Now for very large libraries this may not be feasible, but certainly the subset you're going to use in your project could be ported, and of course the entire library can be ported for smaller cases. We all need to be doing more to give back to the open source community, most of us take and then give nothing, this is not a good combination. The fact that "submit a patch" is never discussed as a possibility in these "boohoo Twisted doesn't support Python 3" discussions is beyond ridiculous and exposes what I think is a very serious problem in the community. Are we hackers or are we whiners? So I think we should hack, and if we want package XXX for Python 3 we should all pitch in and work on that.

Re: Why CCP is still using Python 2

#82
post #49

Earlier quoted context omitted.

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"?

Honestly I'm being flippant.

The real answer is both PG and Google and many other Serious Folk have blogged and talked about how growth is the single most important key metric for tracking project success.

Actual total users are irrelevant; they're like page views. Cute, but useless.

What's critical is that once a product has over come its initial growth spurt of early adopters, if the rate of rate of growth isn't in the right ballpark, the project is in trouble.

My fears for python 3 are two fold:

1) The initial 'early adopters' growth spurt of python 3 is over. However, we're not seeing any large scale migrations to py3; lots and lots of people just sticking with py2. Sure, new stuff is being written in python 3, but the question is, is it growing? How fast is it growing compared to the overall growth rate of python adoption?

2) NO ONE KNOWS. The core python team is not tracking this information; either they don't care, or they're totally out of touch with reality.

So when I say 'no one is using it' I mean, 'relatively few new people are using it, the growth rate over time of python3 relative to python2 appears to be flat', and if you were part of YC, that would mean the project catastrophically failing.

...and the developers should be paying attention, and they don't appear to be.

Re: Why CCP is still using Python 2

#83
post #59

Earlier quoted context omitted.

It's all about workflow. and it's what free/open source software gets wrong almost all the time (and I say that as an advocate of it), due to the fact devs rarely listen to users. The features are often there but they're not that easy or flexible to use, so often they're practically useless in certain situations. There was something last year when someone came up with some workflow / design improvements suggestions t…

> due to the fact devs rarely listen to users. I think that statement can often be taken in good and bad ways, depending on the devs. Some software I love and use is developed by people who do not care what their users think because they are their own users. They build for themselves and produce excellent results. Some developers listen to users too much, and end up allowing every piece of their software to be config…

"listen to the users" does not actually mean "change the software the way the users say to" it means to listen to how they're failing to achieve the results they are trying for and use that knowledge to improve the software. Listening to users does not preclude sticking to UI conventions and such since your users are unlikely to be software or UI designers themselves.

Re: Why CCP is still using Python 2

#84
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.

Most places I know of running WinXP are completely cut off from Internet, using personal media like pendrives is prohibited and the identity of a user is confirmed with physical "PKI card" or something. They will use their XP's long after the universe dies, I think.

"Most"? Really? Most of the XP machines I know of are being used like any normal desktop machine: email, browsing, office, thumb drives, etc.

I know things are different with industrial machine control, they might be different at my doctor's office, and so forth. But I don't think those special situations add up to "most". Not yet.

Re: Why CCP is still using Python 2

#85
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…

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

I'm sure that a lot of XP machines in the corporate world aren't connected to the internet either. For example, there's no reason to give a bunch of low-level employees in the accounting department access to the internet, and if their company's internal software runs fine on IE8 (or as native code), there's no particular reason to move away from XP. PCs on a factory floor that control industrial machinery probably aren't connected to the internet either.

Re: Why CCP is still using Python 2

#86
It was interesting, and the biggest point that sticks out is "we have little automated tests" and that is where the main problem is. From working in tested and untested environments I can attest that a tested environment can rip technologies out and put new ones in easily and quickly. Sure it may take some time, but you always know you didn't break the world.

Re: Why CCP is still using Python 2

#87
post #49

Earlier quoted context omitted.

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

Honestly I'm being flippant. The real answer is both PG and Google and many other Serious Folk have blogged and talked about how growth is the single most important key metric for tracking project success. Actual total users are irrelevant; they're like page views. Cute, but useless. What's critical is that once a product has over come its initial growth spurt of early adopters, if the rate of rate of growth isn't in…

My definition of success for shadowcat doesn't require that level of growth. I'm sure many, many companies have a definition of success that doesn't require a 'rate of rate of growth' congruent with being 'part of YC'.

Given that, attempting to apply the same definition of success to a programming language just seems silly, especially given explosive growth usually ends up with a disastrous pop culture - think 1999-era Perl or 2003-era PHP or 2006-era Rails for examples where the majority of people using the language weren't necessarily adding noticeable value to the ecosystem, and in the long term have created a lot of hatred for the respective platforms as a result of code that was just plain bad.

Re: Why CCP is still using Python 2

#88
post #87

Earlier quoted context omitted.

Honestly I'm being flippant. The real answer is both PG and Google and many other Serious Folk have blogged and talked about how growth is the single most important key metric for tracking project success. Actual total users are irrelevant; they're like page views. Cute, but useless. What's critical is that once a product has over come its initial growth spurt of early adopters, if the rate of rate of growth isn't in…

My definition of success for shadowcat doesn't require that level of growth. I'm sure many, many companies have a definition of success that doesn't require a 'rate of rate of growth' congruent with being 'part of YC'. Given that, attempting to apply the same definition of success to a programming language just seems silly, especially given explosive growth usually ends up with a disastrous pop culture - think 1999-e…

What level of growth?

I'm just saying that if the rate of adoption of python 3 is flat or negative, that's extremely bad regardless of the absolute number of people using it.

Its naive to think that growth isn't a key metric for any community project.

I'm not going to justify that; there's plenty of research out there about it.

Re: Why CCP is still using Python 2

#89
post #66

Earlier quoted context omitted.

Inject code, teleport between systems. There was some lack of server-side validation last year, but that seems to be fixed now.

There were some larger violations/extraordinary effects possible, but you could get caught by logs then.

Yes, you can get caught by logs. That however still leaves some already existing consequences of said illegal (in terms of player-game interaction) manipulations. For example compensate expensive destroyed ships which were destroyed with use of an exploit. Also, that affects customer satisfaction and support must deal with that too.

Re: Why CCP is still using Python 2

#90

It was an interesting read, I'm not sure if they are like the shark, already dead but the message hasn't gotten to the swimming part yet, or like a harbinger of the future. One of the things engineers are going to have to come to grips with is that you can actually be "done" doing new design. It's really really hard in FOSS stuff because bug fixing is so much less rewarding than new feature development. But programmi…

I'm not sure if your dead shark is referring to Eve or Python 3.

I'm of two minds here. I currently work for Google. I doubt Google will ever move to Python 3. There's just too much legacy code, not enough certainty that upgrading it won't introduce bugs, and too little business reason to switch.

However, I also try to stay reasonably current on technologies available outside of Google, mostly out of paranoia that I'll end up one of those irrelevant big-company employees. And when I try to weigh all of the technology options I might use for a startup against my accumulated experience and what I want in technology infrastructure - Python 3 still stacks up fairly well. I'm not entirely certain I would use it - Go is an intriguing new option, and the non-Java JVM alternatives have gotten a lot better since I was last in the startup world in 2008. But the big changes in Python 3 - Unicode and async - have helped it stay competitive, and disciplined use of function annotations could help eliminate much of the maintenance/documentation problems of not having static typing, and it still is way beyond the competition in terms of convenient syntax and helpful abstractions.

In general tech infrastructure has about zero chance of gaining adoption in existing large enterprises, because the costs of switching are prohibitive regardless of how good it is. Companies stick with whatever was popular when they were founded, which is why Google (1998) is still a C++/Java shop, Facebook (2004) still uses PHP, and Dropbox (2007) is all Python. But that's not how new technologies get adopted. They get adopted by old companies dying off and getting replaced by new ones, and as long as tech companies continue to die (which seems a virtual certainty), there will be room for new languages and tools.

Post reply on HN