Is Python Really the Fastest-Growing Programming Language? (stackoverflow.blog)
An anonymous reader quotes Stack Overflow Blog:
In this post, we'll explore the extraordinary growth of the Python programming language in the last five years, as seen by Stack Overflow traffic within high-income countries. The term "fastest-growing" can be hard to define precisely, but we make the case that Python has a solid claim to being the fastest-growing major programming language... June 2017 was the first month that Python was the most visited [programming language] tag on Stack Overflow within high-income nations. This included being the most visited tag within the US and the UK, and in the top 2 in almost all other high income nations (next to either Java or JavaScript). This is especially impressive because in 2012, it was less visited than any of the other 5 languages, and has grown by 2.5-fold in that time. Part of this is because of the seasonal nature of traffic to Java. Since it's heavily taught in undergraduate courses, Java traffic tends to rise during the fall and spring and drop during the summer.
Does Python show a similar growth in the rest of the world, in countries like India, Brazil, Russia and China? Indeed it does. Outside of high-income countries Python is still the fastest growing major programming language; it simply started at a lower level and the growth began two years later (in 2014 rather than 2012). In fact, the year-over-year growth rate of Python in non-high-income countries is slightly higher than it is in high-income countries... We're not looking to contribute to any "language war." The number of users of a language doesn't imply anything about its quality, and certainly can't tell you which language is more appropriate for a particular situation. With that perspective in mind, however, we believe it's worth understanding what languages make up the developer ecosystem, and how that ecosystem might be changing. This post demonstrated that Python has shown a surprising growth in the last five years, especially within high-income countries.
The post was written by Stack Overflow data scientist David Robinson, who notes that "I used to program primarily in Python, though I have since switched entirely to R."
Does Python show a similar growth in the rest of the world, in countries like India, Brazil, Russia and China? Indeed it does. Outside of high-income countries Python is still the fastest growing major programming language; it simply started at a lower level and the growth began two years later (in 2014 rather than 2012). In fact, the year-over-year growth rate of Python in non-high-income countries is slightly higher than it is in high-income countries... We're not looking to contribute to any "language war." The number of users of a language doesn't imply anything about its quality, and certainly can't tell you which language is more appropriate for a particular situation. With that perspective in mind, however, we believe it's worth understanding what languages make up the developer ecosystem, and how that ecosystem might be changing. This post demonstrated that Python has shown a surprising growth in the last five years, especially within high-income countries.
The post was written by Stack Overflow data scientist David Robinson, who notes that "I used to program primarily in Python, though I have since switched entirely to R."
Humph. Who in hell cares? I personally enjoy programming in python, but I certainly make such choices based on whether or not something is "popular".
So it only took 26 years to become the fastest-growing programming language.
Talking about languages and then claiming you don't want to contribute to a language war is on par with, "I'm not a racist but..." because it's counter to what you are saying.
Anons need not reply. Questions end with a question mark.
The jock itch on my nuts was the fastest growing fungus yesterday.
There was 1 spore yesterday and 2 today.
Then I took a shower, and the number is around one or below.
100% in one day1
Clearly the major languages are Python and R (in either order), followed by Scala. Then there's a pack (Java, C++, JavaScript, Ruby...) trailing behind.
No news there.
"All the numbers discussed in this post are for high-income countries"....it doesn't say how many H-I countries there are vs. how many not H-I.
I think it is a reflection of the rise of script kiddies.
Black Indian Liars on a H1B program are over running python to become even blacker and more of a Liar. Black Indian Liars are everywhere. They sue to become blacker and more Indian and more Liars. They are black indian liars, the liars.
I'm not a racist, but whitespace having any sort of significance is pants-on-head retarded.
...And as long as libraries for machine learning and analysis continue to rock, it will be for a while.
It took me about 20 years to try python, i thought it was a silly laungage being named after a silly (but awesome) movie. I quite like python now, although I'm switching to nodejs now.
Does slashdot just publish everything that winds up on The Register?
A language may be popular but unless you know where it should and should not be used, you don't have a complete picture.
By all means, use Python in a lab to collect data. Use it to process the data.
But if you tell me you're putting my ongoing business in the control of a Python program I'll know to avoid your systems.
So what colour should the space be?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Perhaps "Survivor Bias" is not the right term but traffic to sites to ask questions may not be a good indicator of a language's popularity. It is an indication of questions people had about the language.
For example, when is the last time you asked a question about C? Probably never. Why? Because its very easy to understand and the libraries are also easy to find.
I'm not saying anything about Python. I'm just saying that looking at the number of questions may not give valid results.
No
It's growing even faster than you think, because half of it is invisible.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
I'm not a racist butt?
#DeleteFacebook
I disagree, but I will concede that Python should have claimed syntax error on any file that used both spaces and tabs as significant.
Talking about languages and then claiming you don't want to contribute to a language war is on par with, "I'm not a racist but..." because it's counter to what you are saying.
Completely wrong.
I can talk about French or English as much as I like without wanting to "contribute" to them.
Likewise, decades of experience with C# means I'm qualified to discuss it, even if I don't want to put effort in maintaining or advancing it.
You wacky kids with your "open-source" ideas...
For an interpreted language, choose JavaScript or PowerShell.
For a compiled language, choose C#, Java or C++.
For hacky garbage you should be ashamed of writing, choose Python or Ruby.
For things you're too willfully stupid to care about, for that which you secretly wish you'd never written and which you want no one else to ever read, for that which peers back at you from the abyss, choose Matlab.
"Feldspar", you insensitive clod!
Yeah, because searching through 1 page of error messages because you forgot a ; or } is *so* much better, especially when those have no immediate visual significance at all. Besides, *all* (sane) languages already have significant whitespace: voidFunction() and void Function() are two completely different things. Whitespace is significant in human languages, and there's no reason it shouldn't be significant in computer languages.
"None can love freedom heartily, but good men; the rest love not freedom, but license." --John Milton
Ultimately nothing defeats C as the language everyone needs to know. Python is in the same position Ruby and Perl is in, where the runtime changes break too much shit, so people commit to on,y one version of the runtime, and you get fucked if the libraries require a different version of the runtime.
Only C never breaks libraries, because the only way to break the library is to remove the function from the library. If a library removes an old version you can still shim to the new version by aliasing the original prototype.
But good god every interpreted language has this obsession with breaking its own API. Python's breaking things from Blender to PyGame. This arbitrary breaking of libraries by changing the API for no reason other than versioning is creating endless busywork for developers.
Like how is one supposed to adopt and commit to a language that is on the verge of obsolete because of "not invented here" bullshit breaking things.
If you can't program in binary, you don't know shit!
#whitespacesmatter
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
It's one badass language for hipsters
http://saveie6.com/
Does anyone know of a book about Chaos Monkeys and Silicon Valley? Asking for a friend. Python is a computer languages.
I'll just leave this here.
For those in Linux land you maybe surprised but visual studio is now free with the community edition. It also includes Python and R with win64 optimized versions of idle and Cython.
Many people on Windows are wondering what it is since it's a huge section in the installer. This is probably what is causing the boost
http://saveie6.com/
I notice all the twits who can't stop quoting Betteridge's Law of Headlines never have anything to say when the answer is "yes".
I doubt there are many questions to be asked about it. Google any C question and you'll get a dozen answers, some of them right.
Not to mention, C/C++ programmers have been using those languages for 20-40 years. Python programmers are n00bs, most learning their first language.
That said, I love Python and have been using it off and on some 15 years now. I hate the whitespace instead of curly brackets convention, but that ship sailed years ago,
My Python always grows rapidly.
#!/usr/bin/env python3
# Calculate precise number of sh**ts given about whether or not Python is fastest growing
def doesPythonWork():
return True
def isPythonFunToProgramIn():
return True
def isPhpFunToProgramIn():
return False
def isJavascriptFunToProgramIn():
return True
def isJavascriptACesspitOfQuirks():
return True
truthTable = { False: 3, True: 7 }
daysInWeek=7
firstPerfectNumber=6
lengthOfHypotenuseOf345Triangle=5
def acc(x,resetAx=False):
global ax
try:
t = ax
except NameError:
ax = 0
if resetAx: ax = 0
ax *= 4; ax += x
acc(doesPythonWork(),resetAx=True)
acc(isPythonFunToProgramIn())
acc(isPhpFunToProgramIn())
acc(isJavascriptFunToProgramIn())
acc(isJavascriptACesspitOfQuirks())
numberOfShitsGiven=ax-(daysInWeek+firstPerfectNumber)*(lengthOfHypotenuseOf345Triangle**2)
print("Number of shits given={}".format(numberOfShitsGiven))
Significant whitespace is the least objectionable thing about Python. Just ask any Haskell programmer.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Give your "good" reasons why Ada and Modula-2 aren't that popular. I use QB64's variant of QuickBASIC, which has almost everything you could want built-in.
Traffic to Stack Overflow is an indication of people having issues with Python. Not it's popularity!
Traffic for high-income countries (US/UK) is misleading, since they are using this troublesome language more often. Non-English speaking countries don't want to use it, due to the default ASCII character set.
Seems the researches need to understand how Stack Overflow is used before making such a misleading statement.
A higher score on Stack Overflow Trends would indicate the inadequacies of the language.
More visits indicate the level of frustration, not the languages popularity.
GitHut tells a different story.
Rust was never popular in any sense.
Yes, it was widely hyped, but it was never widely used. This hype came mainly from a very small number of people expressing themselves very loudly in echo chambers like Hacker News and Reddit.
Look at the list of organizations using Rust. It's full of no-name companies/organizations. I wouldn't be surprised if some of those are basically "startups" where some college student made a logo and role-plays as a "CEO", without actually providing any product or service of value. The few recognizable names have apparently only used it for small projects that are likely not much more than mere prototypes.
At least languages like Go and Ruby are or were used for large, important systems at serious businesses. That's far, far more than can be said of Rust.
As the hype around Rust dies down, and as Mozilla becomes more irrelevant, I suspect we'll see Rust slowly disappear.
You're totally mistaken about Python, though. Yes, Python is good for quick one-off scripts. But it's also perfectly good for large software systems that are maintained for a decade or longer. That's why it's so powerful. It scales from the smallest of projects up to very large projects.
It used to be that everything was based on bourne shell. Then everything was based on perl. Now everything is based on python. Hopefully something which doesn't make so much importance out of whitespace will be next.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Unless I am guaranteed a job which pays very well, I would rather keep programming as a hobby and just do trade work (such as plumbing or electrical ), or even be an office drone. The pressure-cooker environment, and the prospect that someone in India and China can replace me without even being brought to the States does not sit well for me. All I would end up doing is banging out the same old cogs and gears that the suits told everyone to make, and little to no room for creativity or experimentation. No thank you. Code monkeys for current and popular languages are very easy to replace.
You are measuring the number of users of a Website that happens to talk about Python.
So you are measuring the number of "stoopid coders" and not the number of Programmers using the Python Language. Programmers using the Python Language (or any other language) will have resort to the documentation for that language and its libraries and not to this so-called "Stack Overflow" thing, whatever the hell that is.
Only the cut-n-paste crowd will use cut-n-paste resources.
Real Programmers do not.
The article doesn't deal with communities that more adequately handle user issues, like the QuickBASIC-variant community.
OpenStack, one of the largest opensource software projects is Python/Django.
Well, just because someone doesn't want to start a language war doesn't mean they're not willing to start a language war if that's part of the price to be paid to have a discussion about the relative merits of different languages. I don't want to get flamed for being pedantic on this point, but I'm willing to be flamed and maybe lose precious karma points if that's what it takes to make my pedantic point.
In theory, theory and practice are the same; in practice they're different. (Yogi Berra & A. Einstein)
Python is the best wrapper language around C. If you want to leverage C code, then Python is great. If you want to do something else - well many other contenders are out there. The development time is less than Java, or C++.
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn
You miss the point. It should not be space. I should animated gif of yo mama butt-fucked by an ape.
but after they pass the elephant they're back to skinny
June 2017 was the first month that Python was the most visited [programming language] tag on Stack Overflow within high-income nations.
People visit Stack Overflow looking for solutions to problems with the language they're using. Python was the most visited language tag, you say? Doesn't that make it the most difficult language to use?
Python is established. Go seems to be jumping up the TIOBE listings faster than other languages.
error messages because you forgot a ; or }
I spent the last 25 years working with languages that use those and I can't remember a single instance of having a big problem because of missing a semicolon or a closing brace. OTOH, I don't know why people whine about significant leading spaces in Python. If you're not highly detail oriented, programming is the wrong profession for you anyway and editing your code is not where the time is mostly spent. At least not when you're doing it right. It should be thinking and not typing where most of the time goes.
When 1person suffers from a delusion,it is called insanity.When many people suffer from a delusion,it is called religion
"Python has a solid claim to being the fastest-growing major programming language... June 2017 was the first month that Python was the most visited [programming language] tag on Stack Overflow within high-income nations. This included being the most visited tag"
So, nothing to see here, really. It's all fashion. DL and ConvNet frameworks are in the mainstream now, and yay, how many of those favour python? Right. So, why are so many people looking for solutions? Well, because they need informaton on python issues and are looking for howtos and answers. Why? Well, because usually they don't use it that much so now they need answers, and fast. All these statistics show nothing more than current trends, which, by itself might be interesting, but don't say much more than that. Also, some might also bring into the picture that the relation between higher python use in higher income countries just might have some distant relation with deep learning having a higher financial threshold to enter than pretty mugh everything else.
I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
The whitespace complaint is just silly anyway.
The big problem with python is the ducktyping, it makes it a lot harder to do proper testing before deployment.
Python is still a nice language if you want to throw something together quick that you only intend to run on your own machine anyways.
In a way it fills the same spot visual basic did; quick development of first version but a hell to maintain.
I have a text editor that tells me where the corresponding { or } is, whether I position the cursor at the lead or trailing one. You should look into that. Also, if you maintain a pattern to your code you shouldn't have that problem to begin with.
The article is posted by a guy that "have since switched entirely to R" ... even him agrees that Python is not good enough (say versatile if you preffer) to suits his datascientist requirements.
Python is nice (it brought some interresting way of doing things & al), but feel like it was designed as a non-mainstream language in mind.
Take Java, why did it succeed at the time ? Legacy synthax of the C, rock solid object grounds from SmallTalk but with some lighter ingredients (simple types) to make it "real world" and a by default huge standard library to do what was suitable back in the day. From day one, people with little knowledge could read Java code and understand it. It was simple and enjoyable : you writes, it compiles and run as expected. So long coredumps & heloworld debug sessions !
Actually, I tend to think that all the languages that were succussfull have that same things in common : obvious synthax (reading is cristal clear and writing is not too complex) & nice core library (enjoy it from minute 1). Look at Cobol, even if you have never learn Cobol, you can read it and understand what a program is doing.
What does Python offer ? Dedicated synthax, not so versatile library by default, thousands of not no so well seamed libraries ... Sure if you are an expert : you write things with much less fewer lines than say Java or even Cobol. But if you are not an expert, try to read those same lines .... you will end up puzzeled.
Python was maybe one of the best contender to phase out Java of its pole position (lots have tried to do it and are now in the limbo of IT history)... but I now don't think, it would be the new king to come. Next contender please...
He said "contribute to a language war". Learn to read.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
If I have an issue with Java, I read the Javadocs. If I have an issue with Python, I'm forced to search online (and thus end up at stackoverflow). The Python API documentation really sucks. It's incomplete, sometimes with partial examples instead of textual descriptions, information on edges cases and error states is missing, and browsing to find that method whose name you forgot is very difficult. With Java you have a nice list of all the packages, classes, and functions on the left frame. Read through the list and you'll find what you want (if you don't remember enough for your IDE to auto-complete it). With Python you have to guess at the module and skim though pages and pages hoping you don't overlook whatever it is you're seeking. Bad documentation which forces you to seek help from the community isn't a trait to be proud of.
Programming with python? Ridiculous, they don't have fingers to type with and voice recognition just isn't up to it yet. Plus, they try to eat you.
rewriting history since 2109
I'm really not that surprised that Python appears to be the only language that continuosly grows it's popularity during the last 15 years.
It's easy to learn whilst at the same time being resonably well constructed and scalable towards larger projects. It also appears to be a language where, unlike Ruby, PHP and JS, people do *not* screw around and get their projects perfect from the beginning. There is basically one CMS written in Python and that's Plone, based on Zope, and that System has been ahead of everything else in the PHP and Ruby field in terms of architecture, design and utility ever since Zope came around in the late 90ies. Same goes for Django. One Webframework to rule them all. Unlike PHP or Ruby or JS where you have a mess of a bazillion different toolkits, every single one screwing around in their own specific quirkyness, Python appears to be the language of people who want to get shit done properly right away and then move on. Python, whilst being a very neat programming language, doesn't lend itself to self-indulgance. Maybe those twot traits are correlated.
Point in case: Python is the only language I know of that is to measurable extent being used professionaly in every field.
Research, engineering, game development, media, 3D, web, custom ERP, system administration, embedded, bioengieering, robotics, process automation, etc.
IMHO it speaks volumes if a language is that easy to pick up and at the same time is used in so many fields. AFAICT it is only dominated by PHP and JS in server and client side web for historic reasons. Would people have to decide today which language should rule the client and server-side web they'd probably pick Python for that aswell.
I also think that Python is a language that remains fun to programm in even if you use it for an extended period of time. Can't say that for PHP for example.
My 2 cents.
We suffer more in our imagination than in reality. - Seneca
Burnt umber.
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
Just saying.
"Consensus" in science is _always_ a political construct.
#allspacesmatter
At the end of the day it is the same 4 things all programming languages involve: "variables/expressions", "conditional statements", "looping", and calling methods/functions. Sure, it could be debated that is a oversimplification but not by much.
So if you have to keep the job market growing the only thing you can do is to keep growing diversity so that the same algorithms and data structures can be re-implemented in so many different ways creating more jobs.
One aspect of Python that I like is that most of the libraries are in C/C++ exposed with Python. The part I dislike is people building huge stacks on top -- ends up being inefficient & slow -- sucking up energy and energy is going to be the next big issue for computing.
People complain about semantic whitespace in Python because that's a pants-on-head stupid detail to make people pay attention to. There are enough things that need attention that invisible characters shouldn't be one of them.
Python's type-related problems are not because of duck typing. They are because it uses a damaged mix of strong and weak dynamic typing. You get None when you read an undefined field of an object, no error if you store to a field nobody ever reads, no warning if you store a string like '123' to a variable that normally holds a number, and an exception if you try to divide that variable by 3.
And don't get me started on the egregious breakages between Python 2 and 3, like changing the definition of the / operator solely to save a bit of typing (or alternatively, error checking) by one constituency while making the language less consistent.
Python is popular because of growing interest in data science and machine learning - not because of application development.
Many toolkits such as the very popular Tensorflow from Google work best with the Python API (you can use other languages too).
Also Python has good libraries to support data science and it's arguably easier to pickup than R.
and has grown by 2.5-fold in that time
No, it hasn't. Fold change represents doubling. 2.5-fold is roughly 5.6 times as much as the original value. Python has seen 2.5 times as much traffic, not 2.5-fold as much traffic.
I generally prefer 3.x Python. What I really like is python when it works. But over and over and over, I have downloaded a library or some code that only runs on one or the other. Keeping both up to date and with the latest libraries is a huge pain in the bottom. The way I have it installed also seems to send some products for a loop when they simply insist that I must have 2.7 installed. So I go and change which version is "python" just so that program can run.
I really don't care what the arguments are for the lack of backwards compatibility; doing this really hurt python with a self inflicted wound.
The next self inflicted wound is the speed of python. I see these crazy arguments that in order to make it faster that it needs strongly typed variables. That is total BS as there are many scripted languages without this that run blazingly fast (JS, PHP, Lue, etc) without this.
Quite simply the people who are in charge of steering python seem to be way more interested in giving talks at python conferences than keeping python moving forward. Oh there are lots of little features being added, but nothing like the leaps and bounds that JS and PHP have made in the same time period. JS is not screwing up with a backwards compat problem. And PHP trimmed out some crud so is technically not backwards compat anymore but if you were using the features they cut, you were writing bad code.
Python rocks. I use it for ML, I use it for so many quick and dirty things. But all this means is that nothing is better right now. Look a perl. It owned the world of scripting 17 years ago.
I never really got this argument. You're a programmer writing numbers to a variable that should have a string, and that's the LANGUAGE's problem?
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
Data comes over the network, and sometimes it's not in the representation you want. SELECT smallint_column FROM mysql_table, and Python's bindings give you a string. The language accommodates the mistake up front, and raises an exception long after the initial mistake. Yes, this is a fault in the language.
It all makes sense now!
What kind of ORM is going to give you a string on an int column? If you're doing the raw SQL yourself, then you're complaining about a solved problem.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
That is the message I get. People are trying to do tasks in Python and it turns out Python does not do them well. So off they to Stack Overflow! Alternately, it could just be a lot of intro to CS students trying to get someone else to do their work for them.
putting the 'B' in LGBTQ+
The solution to Python having problems is not to pancake more awful ideas (like ORMs) on top of its rotten foundation, making an ever-more-precarious edifice of fail stacked upon fail. What are you, a Python programmer?
Is looking in the source code of a big project and not knowing the data type of a function parameter. I'm not a python programmer. How do python gurus solve this issue?
I work in many languages, because I like to use the correct tool for the job. Sure one solution to the problems is to have the compiler spoon feed it to you. ORMs are rotten only to the point that if they are too inefficient to do what you need for them to do, or too high level, then you shouldn't use them. Otherwise I really don't see the logic in wasting your time doing native SQL calls. If you are such an expert than static typing should not be a necessity for you. It just adds to the lines of code you have to write.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
Data comes over the network, and sometimes it's not in the representation you want. SELECT smallint_column FROM mysql_table, and Python's bindings give you a string. The language accommodates the mistake up front, and raises an exception long after the initial mistake. Yes, this is a fault in the language.
Still sounds like your problem not the language's. With a simple assertion before proceeding you can type check that incoming data.
> So what colour should the space be?
On my editor spaces are blue (because that is the background colour) and tabs alternate between red and green so I can find and eliminate them!
Python does not scale. Over a certain line count it becomes impossible to refactor, and a bajillion unit tests are needed to do the job of a decent compiler.
Python makes easy things trivial and hard things impossible. Often the better choice is Scala, but the list of good candidates is smaller, because it's a harder tool to use.
You are criticizing Python where you should be criticizing ASCII. Python uses positioning, specifically indentation, to indicate structure. Nothing wrong with that.
What sucks are the ASCII methods for positioning text. The tab character is a mess, and everyone appreciates that. What isn't so appreciated is the lack of any succinct way to indicate indentation. Leading spaces is a horrible way to do it, but it's the only way ASCII can do it. It's extremely redundant, it forces the use of a fixed width font to make the columns line up, and it's prone to error. UTF did nothing to address this, simply repeating the mistakes made with ASCII.
One solution is better control characters. An "indent++" and "indent--" control character can solve this issue.
Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
Using positioning to indicate structure isn't necessarily bad. Using it to determine structure is.
I haven't written python in 5 years, but I remember pickling being cool and unique about it (esp as someone who does a lot of API stuff).
.NET in that way and very different from Java where you spend more time on plumbing and ontology.
Also it seemed like you could easily add modules that got a lot of very desirable stuff done. Comparable to
No. Just a lot of entry level courses in college have changed to it. Entry level courses result in the most searches per user.
Since all the tools that check for the most popular language are heavily influenced by browser searches, it is skewed quite a bit. It is probably between twice as much and ten times as much, but the data of internet searches is so generic it is impossible to ever know for sure.
I have never seen it used by any production company near me and rarely see job posting for it that are for development. I have only seen it mentioned in build/test positions and even then rarely.