HN Gopher Feed (2017-09-06) - page 2 of 10
The Incredible Growth of Python
115 points by kjhugheshttps://stackoverflow.blog/2017/09/06/incredible-growth-python/?...-python/?cb=1
agumonkey - 2 hours ago
I'm surprised by the decline of C#. I thought it was better off
than java these days. Also PHP is gliding down. They improved the
language a lot, but I can't say I will miss the PHP world
much.About python, isn't it related to numpy mostly ?
kirse - 53 minutes ago
I'm surprised by the decline of C#The graphs are for # of views
to questions on SO involving that language. What it likely means
for C# (and PHP/Java, etc) is that the user-base is maturing and
stabilizing, and not as many questions need to be asked (or
found). For C#, it could also have something to do with the fact
that the MSDN .NET docs have vastly improved over the past 3-5
brianwawok - 1 hours ago
C# is not that special off Windows. Most shops dont run Windows.
Ergo Java wins over c#.
s17n - 14 minutes ago
Python is pretty much becoming the de facto language of academia
(outside of CS). I wonder how much this is driving overall Python
jaco8 - 2 hours ago
Yes , but the young contenders already exist. If Nim gets more
traction , over time it may replace Python.
coldtea - 2 hours ago
Don't hold your breath. Nim doesn't have the kind of ecosystem,
and hasn't shown signs of having one.
jaco8 - 1 hours ago
Do not worry ,still breathing here , when I started
Fortran,RPGII and Cobol was the thing and Python did not exist.
Now Python is becoming the old elephant and new languages like
Nim will evolve and they will grow an ecosystem over time.
jeremyjh - 30 minutes ago
It had a flash a few years ago when it changed names but overall
does not seem to be going anywhere hype-wise.https://trends.googl
twobyfour - 2 hours ago
The chart there really emphasizes to what degree Java, C++, and to
a clear cyclical pattern in their question frequency that
presumably corresponds to academic semesters.
stupidcar - 1 hours ago
Hmm. Interesting that JS's cycle is the inverse of Java's. People
learning Java during term-time, then JS during their holidays?
pen2l - 1 hours ago
In their holidays, people make websites ("The next facebook!"),
at term-time they make sodoku solving applications in Java for
jzl - 2 hours ago
TL;DR: Slightly interesting but narrowly focused article with
clickbait-ish headline. It charts the growth of Stack Overflow
python question views in the last five years. While this is an
interesting statistic there is no additional analysis that it
correlates to python's usage growth. And no hypothesis is given for
the growth in question views, although they tease a future post
about that. It would have been far more interesting if they
correlated their stats to lines of code in github or something
along those lines.To me, if anything I'm curious why python was so
low percentage-wise in question views only five years ago.
Anecdotally it doesn't seem to me that python usage in "industry"
has grown that dramatically in the last five years, but there could
be other factors involved such as education. Or my biased gut
instinct could be completely off.(Note: been a python user for 20+
kronos29296 - 2 hours ago
I think even though Python in the industry like in web isn't
growing as much as say Node, in other places like Data Science
and Intro to programming in Unis and Schools Python is growing
very fast.The article is not narrow minded but has a narrow focus
and only analyses concrete data from a single source. It may be
globally accurate but indicates a rising trend in people being
interested in python. While Python usage cannot be directly
correlatd to SO, we can infer that languages that have more
questions have more people using or learning it generally. In the
same way languages with a small community of users don't always
prefer SO but something more personal like Mailing lists or IRC
(eg. J language).It should be safe to conclude that due to Data
Science being the new buzz word and python at the forefront of it
all, atleast python is getting a lot of attention even if it
doesn't translate directly to more users right away.
jzl - 1 hours ago
I just edited my comment to say narrowly focused rather than
narrow-minded. That is definitely what I meant to convey but
chose the wrong words, thanks for pointing it out.
AlexMax - 56 minutes ago
> Anecdotally it doesn't seem to me that python usage in
"industry" has grown that dramatically in the last five years,
but there could be other factors involved such as education. Or
my biased gut instinct could be completely off.I actually was
looking at these numbers just a few days ago, trying to decide on
what language to embed in something I'm working on (CPython,
realization - the number of Python questions on Stack Overflow
had increased significantly over the last few years, but I
couldn't quite correlate why. I put in a bunch of different
related tags, but none of them could account for such a large jum
coldtea - 2 hours ago
>While this is an interesting statistic there is no additional
analysis that it correlates to python's usage growth.You believe
that Python would ever generate more questions over time on SO
without getting more users/usage?I guess the mysterious dumbing
down of a stable user base is an alternative explanation.
jzl - 1 hours ago
Did you actually read the article? Of course generating more
questions is likely indicative of more usage. But the graph
shows it from being in last place (of the listed languages) in
2012 with ~4% of the question views to being first place right
now over all other languages with ~10% of question views.
Python has grown a lot over the past 5 and especially 10 years
in wide usage but I've seen no other evidence that the chart in
the article should be believed to have a direct correlation
with usage. There are many possible explanations of a more
indirect correlation that could be skewing the numbers in
unexpected ways but none are discussed in the article.I'm the
biggest python fan you'll meet (ok I'm sure that's not strictly
true) but I followed the headline hoping to see more concrete
data to support the claim of "Incredible Growth" and came away
doozy - 2 hours ago
Fellow 20+ years Python user here.Python adoption outside first
world countries have always lagged considerably behind. A common
pattern among technologies.I suspect a lot of that growth is the
rest of the world catching up.
jzl - 1 hours ago
To the article's credit it actually differentiates between
first world ("high income") countries and the rest of the
world. The growth has been even more in high income countries
so that explanation doesn't work for the data in the article.
doozy - 1 hours ago
Yes, I'm aware of that. I wasn't talking specifically about
the data in the article but about Python's growth in general.
I don't believe the popularity of a tag in a forum is a
reliable indicator of the growth of a language, it may simply
be this forum becoming more popular among Python
users.Python's rising popularity among the scientific
computing community is simply not enough to support the idea
of a dramatic increase in Python adoption. As a long-time
user of the language I share your appreciation Python usage
in the industry has not dramatically increased in the past
few years.On the other hand, there's plenty of evidence
suggesting Python is becoming increasingly popular outside
high income countries.
Alex3917 - 2 hours ago
> To me, if anything I'm curious why python was so low
percentage-wise in question views only five years ago.The
majority of the top CS colleges switched to teaching using Python
within the last five years. This provides a big reason for
companies to use Python as well, since it drives down the cost of
sametmax - 2 hours ago
Same in France, it's the default language now.It also mean more
questions in SO by a lot of lost students.And it means later,
more Python devs on the market.
oxplot - 1 hours ago
Does the usage of a site like SO (where you ask for help)
necessarily correlate with growth of a language? Or more
specifically, does the difference between views of two different
languages on SO correlate with real world difference of growth
between those two languages?As a personal example, I've searched
for answers related to golang far less than I have for python
because I tend to find my answers by simply reading golang docs but
in case of python, docs do not help me as much so I turn to google
and consequently to SO.
amelius - 2 hours ago
What packages do people use mostly on Python? Those packages could
explain why Python is so popular.
brianwawok - 1 hours ago
Web people Django or similar and requests to make http... then a
database driver. that gets you pretty far.
FTA - 1 hours ago
All the scientists I know on Python (N > 30) use matplotlib and
(numpy or scipy or pandas). Some niche libraries for certain data
formats are also necessary. These libraries are compatible in 2
and 3, and are easy to install with pip or conda, so everyone
I've shown them to has made the jump quickly from Matlab, IDL,
goodoldboys - 1 hours ago
As someone who works with Python every day, this isn't surprising.
I forget where I heard/read it, but someone made the claim that
Python is the "second best language for everything" (paraphrasing)
and I couldn't agree more. Need to create a web app that interfaces
with a data pipeline? Python/Django/Flask is perfect. There are
countless other examples too.
singularity2001 - 1 hours ago
interestingly the curve starts to take off even before the
introduction of tensorflow
singularity2001 - 1 hours ago
one funny way to interprete the data would be: "the language gets
more and more complicated and batteries which used to be included
now have to be Inquired on Stack overflow."
hackbinary - 28 minutes ago
We've standardised on Python and we're migrating all of our systems
to Python / Django / Postgres from PHP / Drupal / WordPress /
MySQL. We started out with one senior Dev on the Python stack, and
simply found that the productivity on Python/Django just too
compelling to stay on PHP. The (senior) Dev on Python had a couple
of highly successful projects which resulted with him getting some
junior Dev support. Then the other Devs started to notice and
saw/felt that they were missing out on better and more advanced
tooling. They then started to push to move their main environments
to Python/Django. This has further been pushed by the business
stakeholders who have seen the Python/Django projects move much
faster than PHP projects.So for us, that is now 6 Devs on
Python/Django plus some consultancy support. So we've move from 2
python Devs to 6 Python devs within the last year.
andrewstuart - 2 hours ago
Python 2 advocates were quite firm in telling us that Python 3 and
its incompatibility with Python 2 had killed Python and people
would abandon Python altogether in droves for other languages.This
post is suggesting the opposite, that Python is more healthy than
ever and growing incredibly fast.
StavrosK - 1 hours ago
I really don't know where this is coming from. The only people I
friends, who are saying that as outside observers.As a Python
dev, I (and all the other Python devs I know) were just waiting
for (and helping) libraries to start working with 3 before we can
switch over. These days, all my new projects are in 3, 2 is
pretty much for legacy code only.
pen2l - 2 hours ago
Three of us (including me), in an academic lab, are making the
jump from matlab to python. We use py3 (of Anaconda, on
Windows10).We like it, but we are constantly screaming and
bitching about the complications of 2<->3 ("Ahhh X and Y module
only works on py2!", "Ahhh device developer only provides example
code for Labview and Matlab!", "Ahhh python isn't even supported
for this device/application!").Package management ("Do I use
conda? pip? easy_install? compile?") is annoying, I hope that
something like hatch (https://github.com/ofek/hatch) maybe takes
over everything -- because I think the mess that is package
management is THE biggest deterrent for newcomers.I think the one
thing we are all learning from this experience is: JUST USE
UBUNTU, doing python with Windows is a headache.All of that said
-- python is nice, it's amazing, it's the newer, funner Java. It
is incredibly approachable, it can do pretty much EVERYTHING
because of the expansive availability of libraries, it's finally
a programming language that is great to get my 7 year old niece
shepardrtc - 1 hours ago
If you're using Windows, then WinPython
(http://winpython.sourceforge.net/) is an absolute necessity.
I have two separate installations, one for 2.x and one for 3.x,
and I have zero issues. Works amazingly well and comes with
just about everything you need already installed and working.
Can't say enough good things about it.
epage - 2 minutes ago
> "Ahhh device developer only provides example code for Labview
and Matlab!", "Ahhh python isn't even supported for this
device/application!").What kind of devices or libraries do you
use from LabVIEW but there isn't Python support or examples?If
its an NI product, some are starting to get Python supportDAQmx
python/blob/master/src/nidmm/exam...FPGA Interface https
All with Python3 support.
heydonovan - 2 hours ago
Package management was so frustrating coming from Ruby to
Python. There are so many programs, and version conflicts that
I run into all the time. With gems and bundler, it was rare if
things didn't work.
brianwawok - 1 hours ago
Really? Pip should be pretty straight forward. Maybe you use
different libraries than I do.
wlesieutre - 1 hours ago
But be sure to use Pip into this year's flavor of virtual
environments rather than globally, since you might have
multiple projects that need different versions of the same
package. And be sure to run the right version, I've seen
situations where a computer had python 2 and 3 installed,
somehow python3 became the default when running "python"
but if you ran "pip" you'd get dumped into the old
version.And if your editor has a "Run script" function, it
also needs to deal with "Activate the correct environment"
for whichever flavor of virtual environment you've used.Any
what beginner would be confused by tutorials using all
sorts of different setups (virtualenv, venv, pyenv, pipenv,
virtualenvwrapper, pyenv-virtualenvwrapper)? Most of them,
I think."venv" is the newest one - shipped in the python3
package except when it's not (Ubuntu, maybe others) and
doesn't make copies of the python binaries for each
environment. That always seemed wasteful to me, but I
suppose it was the easy way around path problems with the
ecosystem not having a solution built in.I love python when
I'm only using the standard libraries, but if I have
dependencies it's messier to set up than I want it to be.
ufmace - 1 hours ago
I do mostly Ruby professionally and dabble in Python, and I
agree with heydonovan. Pip works fine for installing
things, but near as I can tell, Python has no equivalent of
bundler - a tool to install specific versions of a bunch of
libraries, generate a lockfile ensuring that your
production server and all of the devs are all running it
with the same version of everything, and letting you have
as many versions of a gem installed as you want, and still
running a project with specific versions other than the
ATsch - 1 hours ago
You can do this, but it's not as easy. The pipfile
project is an effort to improve this.The current standard
way to do this is with a virtualenv and a
requirements.txt file in which you specify the version of
your dependencies, which you can then install with pip
install -r requirements.txt.Format is
"packagename==0.1.0" (>=, < etc work too). VCS urls work
too btw, e.g. "git+protocol://site/repo@tag_or_commit"To
get something similar (but inferior) to lockfiles you can
use "pip freeze > filename"
asddddd - 11 minutes ago
Look at Pipenv:
is certainly a mess.
joshuamorton - 1 hours ago
I'm curious, what issues do you run into with python3
incompatibility?Most scientific stuff I've done works in
python3. In fact, its now possible to run a
tensorflow/opencv/scipy environment entirely from pip in a
virtualenv, though it won't be the fastest. which is amazing.
Doing that kind of thing in any other language would require
docker.In general, if you're sticking to python3, the answer
will always be "use pip", everything should work with pip, and
everything should install as a binary without needing to build
source.Edit:There's exactly one context where I use python2,
and its for a robotics project where some transitive
dependencies are python2 only.
photojosh - 51 minutes ago
Why won't it be the fastest? I didn't think there would be
any difference between "native" in the system paths and in a
joshuamorton - 41 minutes ago
So, for things like tensorflow, you have to build from
source to enable certain optimizations. Wheel's aren't
source builds essentially.
chrisseaton - 1 hours ago
> it's the newer ... JavaPython (1991) is older than Java
highd - 1 hours ago
I highly recommend switching to the conda distributions and
package ecosystem. A lot of those issues have gotten a lot
better for me since I did that.
kevin_thibedeau - 1 hours ago
Jan 1 2018 is the day I abandon Python 2 for all greenfield
oliwarner - 17 minutes ago
Why are you deliberately making things harder for yourself?
You're going to need to upgrade these projects within three
years. Just seems like a wasted opportunity not to get off on a
epalmer - 30 minutes ago
I abandoned Python 2 around April 2017 for greenfield.
melling - 1 hours ago
Are most developers finally making the transition from Python 2
antod - 26 minutes ago
As someone who has been using Python since 2000 roughly, another
minor factor (besides the obvious data science factors) might also
be the decline in Ruby. Ruby (and Rails) growth in the 2005-2010
era, seemed to noticeably put the brakes on Python's previous
growth up till that point. Back then Ruby had all the
boosterism/hype and Python was the supposedly "boring/legacy"
option. Even now, Python's growth doesn't seem driven by hype the
same way Ruby's was. It always seemed to be a more pragmatic choice
rather than a fashionable one.Although somewhat ironically, I don't
use much Python any more now that I work at a mostly Ruby/Rails
torbjorn - 1 hours ago
python has a cool name. as time goes on new kids learn to program.
kids choose the programming language with the cool name.
cs702 - 1 hours ago
This is probably related to explosion of interest in AI and deep
learning (DL), because Python has become THE standard language for
AI/DL research.Most AI frameworks support Python out of the box,
including TensorFlow, PyTorch, Theano, and CAFFE/CAFFE2, which
together currently have the most developer mindshare. Every single
TensorFlow, Pytorch, Theano, and CAFFE/CAFFE2 tutorial or example
is written in Python.With very few exceptions (e.g., the occasional
Lua code coming out of Yann Le Cun's group at FB), new AI papers
come with code written in Python.If you want to see Python's utter
dominance in this field, just search for "deep learning" or "neural
net" on github.
nl - 58 minutes ago
This is true. Even the Le Cunn group has switched to PyTorch I
think.It's also because no one can work out how to use matplotlib
properly, so you need to look at about 1000 StackOverflow
questions per line of code.
photojosh - 49 minutes ago
To be fair, this was also true when I was using Matlab back
before switching to Python (2006ish!), except you had to dig
through documentation instead of just having everything
immediately available on SO. :)
frgtpsswrdlame - 2 hours ago
It's just too easy. I never programmed a thing until after I had
graduated college and yet when I did start running into times where
I wanted a little script or program, it was always less than 100
lines in python to set it up.
granitosaurus - 1 hours ago
You have to give props to Python Foundation and just python's
community in general - very well managed on both sides. PEP
proposals and the general pythons philosophy is still going strong
while new major changes are being introduced in every version
without breaking stuff.As someone who has been contributing to
python q&a websites and such for quite a while now, I feel like I'm
starting to have trouble of keeping up - a lot of new newcommers
but even more people willing to help!I'd be really be surprised to
see Python on a decline any time soon.
mylh - 1 hours ago
I'm a web developer and I love python because it provides me with
the fastest and shortest way from an idea to its implementation. In
most cases prototype works forever in production. Rich standard
library and clear version support lifecycle are also very
important. I developed with many other languages including java,
?++ and Haskell and python is my choice among all.
StavrosK - 1 hours ago
I agree (Django is life), but I find myself wanting the new
optional typing and type checker to mature so I can add them to
my set of linters. I'm tired of 1) not knowing whether I made a
mistake and passed something of the wrong type and 2) not being
able to see at a glance what types each function is supposed to
accept and return.