GP has argued otherwise. PyPI sampling is not random. It is heavily influenced by automatic downloads and such and completely ignores that most simple 2.x libs / non-3.3-tagged libs will work just fine on python 3.
In other words, it is neither random nor representative of python 3 usage, failing the premise you yourself mentioned.
There's no easy way to determine Python 3 usage overall. Your best bet is to go around polling companies of all sizes as well as indie devs. What you will find is that:
1. Some amount of people still use Python 2.x because they don't know any better
2. Some amount of people want to use 3.x, but still use Python 2.x because of incompatible dependencies.
3. Some amount of people (companies mostly) still use Python 2.x because a migration to 3.x is currently too costly.
1 -> This is partly caused by FUD. Hating on Python 3 has become a popular past time of people who don't know how to be productive otherwise. It's also caused by the very high amount of tutorials etc around the web that "require" 2.x because, for example, they have an unparenthesized print call (relevant XKCD: 353). Arguably this is one of the big failures of the 3.x push.
2 -> That number is constantly diminishing as more dependencies become available on 3.x. The most recent big win is Scrapy, a massively popular scraping framework, which just finished its 3.x port a couple weeks ago. It's an ongoing process - we are in a much better state than we used to be, the Py3WOS is looking almost entirely green.
3 -> This number is mostly irrelevant as it tends to be in closed ecosystems. So maybe CloudShareBuzzr Inc. is using Python 2.7 internally, but they don't produce anything open source so it doesn't affect the rest of the ecosystem. As new, major features are constantly added to Python 3.x (venv in 3.3, pip in 3.4, async def in 3.5), eventually the cost of switching will be worth it.
>So maybe CloudShareBuzzr Inc. is using Python 2.7 internally, but they don't produce anything open source so it doesn't affect the rest of the ecosystem.
It does matter because that means if you ever want to do it as a job, you HAVE to learn Python2 for that gig at CloudShareBuzzr. Paying your bills is always going to top using "the latest version" of anything. I'm not sure why people ignore or miss that point.
Python3 is the optional language, 2 is mandatory if you want to get paid.
I don't believe 2 and 3 are different enough that this theoretical company would turn someone away for being experienced in 3 rather than 2.
Learn that print doesn't need parens anymore, a few renamed modules, that Python 2 str is mostly equivalent to Python 3 bytes and Python 2 unicode is mostly equivalent to Python 3 str and you're most of the way there.
It does make you more immediately employable. In sum I agree, but why is the inverse never true? You can learn and use 2, since that is the advantage for employment, then use 3 when you need to just as easily.
Let the tech live or die based on its actual merits (employment, technical etc), not trying to get more people onboard with propaganda. Considering the money is with 2, I think what you said backs it up even more. 3 will be easy to pickup when needed.
Good support for strings that you want to treat as text but have unknown encoding, the biggest example of which is all OS strings on posix systems. Being forced to treat all strings that aren't guarenteed to be valid unicode as a series of integers makes everything harder - parsing text-based protocols, text-based file formats, hell last I checked it was very non-trivial to write a version of "ls" which didn't crash if the directory contained a file called "\xff".
...it is neither random nor representative of python 3 usage, failing the premise you yourself mentioned.
I'm not arguing the py2 vs py3 band wagon; all I'm saying is that if you choose to dispute the validity of statistics you need to do it properly, not just with 'those stats aren't any good because [arbitrary speculative reason 1] [arbitrary speculative reason 2]'.
Can you actually justify these assertions?
Or are you just speculating because you don't like the results?
Your best bet is to go around polling companies of all sizes as well as indie devs.
What you will find is that:
Oh what?
Come on. Now I can't take you seriously at all.
You know what they're going to say already, without even asking?
You're just speculating.
Stats > guesses.
Even if the pypi stats aren't completely reflective of the entire ecosystem, I'm going to argue that they give a pretty decent impression of it, regardless of the mild bias that you've listed above but can't quantify.
> You know what they're going to say already, without even asking?
Yes:
- It has been done before
- I've been around the Python ecosystem a long time and I know a lot of its users (a random sample, if you will)
- I spent several years freelancing as a Python dev which gave me the occasion to do exactly that. While that is not a representative sample on its own, my data matches up with the rest.
But all things aside, you really need to check your damn attitude at the door. I neither like nor dislike the results. The facts that matter are that Python 3 has a great ecosystem today and that is what matters to me; not whether my neighbour uses Python 1, 2, 3 or PHP.
I'm not interested in the health of the python3 ecosystem at all.
My only point is, was and remains, that statistics are more complicated than simply 'those statistics do not match my personal perception of things'; justify your argument with actual data.
I'd would be interested to see any alternative stats on the subject you care to link to.
In my original reply, I explained why the PyPI statistics are misleading. I then explained to you that there is no easy alternative. The Python interpreter doesn't embed Google Analytics.
What you're left with is polling, and I gave you insight (backed with my own experience which, yes, is actual data) into what you might find if you went that route. I have no actual numbers on such polling because my samples are too small to be useful. All samples are too small to be useful at this point.
The reason I brought up the health of the ecosystem is because you seem to think I'm biased, or lying, or maybe I'm just a bad person and like one version more than the other. I was just trying to remind you that it's a language version, not a presidential candidate.
In other words, it is neither random nor representative of python 3 usage, failing the premise you yourself mentioned.
There's no easy way to determine Python 3 usage overall. Your best bet is to go around polling companies of all sizes as well as indie devs. What you will find is that:
1. Some amount of people still use Python 2.x because they don't know any better
2. Some amount of people want to use 3.x, but still use Python 2.x because of incompatible dependencies.
3. Some amount of people (companies mostly) still use Python 2.x because a migration to 3.x is currently too costly.
1 -> This is partly caused by FUD. Hating on Python 3 has become a popular past time of people who don't know how to be productive otherwise. It's also caused by the very high amount of tutorials etc around the web that "require" 2.x because, for example, they have an unparenthesized print call (relevant XKCD: 353). Arguably this is one of the big failures of the 3.x push.
2 -> That number is constantly diminishing as more dependencies become available on 3.x. The most recent big win is Scrapy, a massively popular scraping framework, which just finished its 3.x port a couple weeks ago. It's an ongoing process - we are in a much better state than we used to be, the Py3WOS is looking almost entirely green.
3 -> This number is mostly irrelevant as it tends to be in closed ecosystems. So maybe CloudShareBuzzr Inc. is using Python 2.7 internally, but they don't produce anything open source so it doesn't affect the rest of the ecosystem. As new, major features are constantly added to Python 3.x (venv in 3.3, pip in 3.4, async def in 3.5), eventually the cost of switching will be worth it.