Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Python grew fastest in web searches for 'tutorial' over the last 5 years (sites.google.com)
55 points by robert-zaremba on Jan 6, 2013 | hide | past | favorite | 47 comments


I cannot take seriously a programming language popularity index that states that Javascript has become significantly less popular in the last year. I'm no fanboy but given the sheer weight of evidence from language activity on sites like github to the incredible number of jobs and recruiters desperate for skilled javascript developers it just does not add up. Sometimes a metric producing an unexpected outlier means you've found something interesting but usually it means your metric is broken or meaningless. Searches for the word tutorial sounds like an increasingly meaningless metric the world of sites like stackoverflow.


I cannot take seriously

Really, how seriously does one need to take a language popularity index regardless of context?


Very good point, it also doesn't take into account that java and python are taught in colleges... If a student wanted more help on their python/java homework they will search python tutorial or java tutorial, the context is flawed


I read through the analysis and it sounds off. It assumes that the number of people interested in JavaScript correlates with the number of searches for "javascript tutorial". This is incorrect. Many people search for "nodejs tutorial" or other variations. There might be a growth in "nodejs tutorial" searches at the expense of "javascript tutorial" searches.

Similarly he does not see an increase in searches for "objective-c tutorial" and assumes the language is in decline. In reality there might be growth in terms like "ios tutorial" or "iphone sdk tutorial" which his metrics don't track.


I do agree. How can Javascript go down? It doesn't sound like it peaked last year at all.


I would argue that most people wanting to learn about javascript would be searching for "jQuery tutorial" or "nodejs tutorial" or "coffeescript tutorial" and not "javascript tutorial"

Ruby and Javascript are made infinitely more popular because of projects like Rails, jQuery and node. A language like Python has no obvious framework helping drive adoption, so most information out there would be language-centric versus framework centric.


In case you want to prove that: Coffescript and node.js change nothing in the equation but jQuery has as much searches as python and javascript respectively:

http://www.google.com/trends/explore?hl=en-US#q=Python%20tut...

Not including ember, backbone, angular, …

Although it seems to me that the amount of tutorials on a language/framework do not have to have much in common with their popularity but with the beginner/pro-ratio. (under the assumption that mostly beginners write (for TIOBE) or read (for PYPL) tutorials)


Popularity index sounds like something only Paris Hilton would take seriously.


What does popularity means anyway ? i do javascript all day, i hate it , i prefer python or C# , does that make it popular ? to me no.


According to Google Trends the search term "jquery" will soon overtake "javascript" in terms of popularity[1][2]

[1]http://i.imgur.com/yqQ95.png

[2]http://www.google.com/trends/explore#q=jquery,javascript


That worries me. Some people can write "jQuery" but not proper JS code.


Uh, there's nothing improper about writing jQuery code.


I know. I'm just concerned about people that learn jQuery but not really JavaScript itself, just the bare minimum needed to use jQuery.


I don't really think that is something to be worried about. Most of these people aren't coders by profession, they just want some little customizations to whatever form or theme they happen to be using.

A good parallel for your comment would be: "I'm just concerned about people that learn VBA but not really Visual Basic itself, just the bare minimum needed to use Excel macros."


This is based on search engine results!?

"The ratings are calculated by counting hits of the most popular search engines.... The number of hits determines the ratings of a language" -- http://www.tiobe.com/index.php/content/paperinfo/tpci/tpci_d...

How could that indicate anything other then more pages found by the search engines. How do you know the bias of the engine over time isn't giving better results and the "search trend" ranking is causing the results to skew in one direction or another.

I doubt search engine trends are a really accurate way to understand how much code is out there and what people are actually doing on a daily basis.

Worse the search term is: +"<language> programming"

More sites have "python programming" in them then "perl programming" and way more have "java programming" in them?

This tells me nothing really. I could argue it tells me Java is hard as hell and you have to have lots of references to figure out how to do anything.. Or it tells me that Java has lots of "java programming" sites. Heck maybe it tells us that lots of people host javadocs and every single page says "Java Programming" <reference, docs etc.>.

All that said I am actually enjoying python a lot and find myself writing more of my "you choose the language" projects in it. It feels like it will be more maintainable over time and I have the general feeling I can turn it over to others easier then a pile of Perl. I have to really write careful in Perl to make it readable by non-Perl heads. Python sort of forces that on you up-front. I'm still not a fan of having to use SPACES (COBOL anyone!!) to maintain blocks of code but I'm slowly getting used to it and using vim settings to make it easier etc.


I have to really write careful in Perl to make it readable by non-Perl heads.

This is an honest question: why would you care about that? What does it matter if someone who doesn't know a language (or isn't bothering to learn it) can read code written in that language?

Python sort of forces that on you up-front.

How? Indentation doesn't really matter and, for example, list comprehensions aren't all that obvious to someone who's never seen them before. I can understand "I think sigils might be confusing", but that's such a superficial aspect of programming I'm inclined to dismiss it as such.


> This is an honest question: why would you care about that?

My goal is to write stuff so I can DIE. In 30 years can you imagine how much I've written. I don't want all that code following me around the planet. I want to move forward and leave for others something they can maintain and understand and use.

> Python sort of forces that on you up-front.

Again I'm not done with my processing on this but I am a bit unimpressed with using spaces to identify code blocks. Ask me again in a year it might grow on me.. :)


I want to move forward and leave for others something they can maintain and understand and use.

Yes, but why do you care if people who don't understand a language can or cannot read code written in that language?


yes because I can write Perl that will make your eyes burn. So can Larry Wall.. So What..

How does that work towards the longer term goal of writing code that I can DIE and it still lives on?

If nobody understands it then it will die... If they understand it they can maintain it, give it loving care and feeding and it will live for a long time.

No kidding, I have code that has been in production for 27 years.. still.. think about that..

Chances are I will leave this planet and my code will still be running somewhere...

Can you say that? And if not, why isn't that your goal?

We write code to solve problems for people, not to prove how smart we are. I would argue code that lasts decades is much smarter then 10 lines of something nobody understands and gets whacked on the next refactor.. But then again that's just my style.. :)


We write code to solve problems for people, not to prove how smart we are.

That reads like a false dilemma to me. Surely there's some wonderful excluded middle between "I write code that someone who doesn't know the language can read it" and "I write code so opaque that you need a language specification, a flashlight, and both hands to begin to comprehend it."

I, for example, try to write code, tests, and documentation that a decent developer with a working knowledge of the language and an understanding of the problem domain can figure out what's going on and why. I don't care if someone's nephew or niece who's never programmed before can make heads or tails of the code because I think that's a tremendously silly goal counterproductive to any good business sense.

(Also I've never seen a language which can enforce things like effective factoring, intelligible naming, coherent coupling and decoupling, intelligent encapsulation, and the like. Certainly Python doesn't enforce those.)


You're criticizing TIOBE, but the article is about PYPL, which uses a slightly different methodology (counting searches instead of results).


As pk2200 said, this is PYPL. From what I read I believe, the search term used is: "<language> tutorial"


No metric is perfect. If you think it's so bad, why not suggest a better one?


These kind of popularity metrics really leave a sour taste in my mouth, regardless of the results. They're just so lacking in rigor of even the mildest degree that it's not even worth considering what they "discover".

If any language is to be the "language of the decade", it ought to be C, and possibly C++. C or C++ still power basically every piece of truly important software, even today in 2013. The major operating system kernels, userlands, compilers, interpreters (including Python's main implementation!), network servers, and web browsers, are all written in one or both of them, for example. And that's not including the many embedded and industrial uses of C that aren't very visible at all.

Until some other languages offer the same full-stack experience, and are actually used for writing critical, widely-used software, I don't think we can label any languages but C and C++ as the "language of the year", or "language of the decade", or even "language of the century" and beyond.


While I agree that such metrics don't mean much, if anything at all, the notion that C/C++ should be "languages of the decade" because they "still power basically every piece of truly important software" doesn't make much sense. You might as well declare James Maxwell scientist of the decade because electricity still powers basically every piece of truly important equipment.


> You might as well declare James Maxwell scientist of the decade because electricity still powers basically every piece of truly important equipment.

I'm all for it.

Proponents of 'x' label 'x' the best thing in this decade is a lot less objective than your astute observation that electricity indeed still powers basically every piece of truly important equipment.


"C or C++ still power basically every piece of truly important software, even today in 2013"

I doubt that; here, for example, is a truly important software system that is not written in C++ (and I suspect it would be a lot more dangerous if it had been):

http://www.drdobbs.com/embedded-systems/ada-next-generation-...


"The new iFACTS system will use a program designed and implemented with the SPARK Ada language"

What's the current status of this project? I worked with someone who worked for many years on air traffic control software, it was thousands of developers, zero productivity, huge delays and budget overruns. Air traffic control software aids air traffic controllers but it's not as mission critical as the embedded software in the plane itself or in your car or pacemaker.


As far as I know, the system was fully deployed in 2011. I am not sure if it lived up to its promises (I am not an air traffic control person).

Regarding the software that controls an airplane, is that being written in C++? It is not too hard to find a counterexample there; Boeing wrote the software for the 777 jet in Ada. I would be very wary of any aircraft whose control software is written in C++, unless it was written some small, unambiguous subset of C++ (which would exclude most language features anyway). Likewise with medical implants, automotive systems, or anything other case in which failure might cause death.


Guido van Rosseum left Google a while ago because he was annoyed they weren't using Python enough! Python is a nice language but I don't think it's the language of the decade. The langage of the decade is something that has been used from 2000 to 2012 a lot in entreprise and by individuals. Give that price to PHP for all it's worth. PHP was the language for the web for a very long time.... It was used to create facebook. It was a lot more influential than Python. Ask 50 persons in the street if they know what PHP is, then ask them if they know what Python is. I guarantee you that more people know of PHP.

Predicting what will be the next language of the decade is more interesting. My bet is on Javascript for now.


I like Python (and Ruby) a ton, but they may find themselves legacy-stamped if they don't develop a good concurrency story quite soon.

No big deal to be ~50 times slower than native code in a single-thread, single-processor use case, but for a well-parallelizable problem on a multicore machine you end up being several multiples of ~50 times slower.

Google just gave up on trying to optimize Python (see Unladen Swallow project) and told the engineers to move on to something useful. I am not sure if the interanls are just to messed up too make it work or if resistance and denial on the part of "B"DFLs and the community is too strong.

But when javascript - JAVASCRIPT! - has a better server-side concurrecy pitch than your language, it is in big trouble


Interesting story. Do you know they moved on to what? Java?


Python is still used alongside C++ and Java (and some Go) but primarily for prototyping and small utility scripts. A Google engineer explains:

"Well, simple common sense is going to limit Python's applicability when operating at Google's scale: it's not as fast as Java or C++, threading sucks, memory usage is higher, etc. One of the design constraints we face when designing any new system is, "what happens when the load goes up by 10x or 100x? What happens if the whole planet thinks your new service is awesome?" Any technology that makes satisfying that constraint harder -- and I think Python falls into this category -- should be discouraged if it doesn't have a very strong case made in its favor on other merits."

And note this was before the failure of Unladen Swallow, before van Rossum's departure.


Python is the only line in this graph with a steady upward slope. I think it's fair to say it's the language of the decade if you're not looking at market share, but growth.


My vote goes to JavaScript. Yes, PHP has grown a lot in the last 10 years, but it hasn't made a big difference. Faster and more complete JavaScript runtimes have actually changed the applications we use. Some things would simply not be possible without JavaScript.


php is still the easiest thing to deploy on a server. unless you get loads of ecommerce cms or blog engines in node i wouldnt bet on it. on client there is not much choice anyway.


I don't agree that PHP is that easy to deploy properly. I think it has that reputation only because most people using PHP never actually have to set up and configure a PHP server.

But my point is about the client side. We don't have much of a choice between client side languages, but we do have a choice about how much we do on the client in the first place. That equation has changed quite dramatically over the past decade thanks to new JavaScript runtimes.


> most people using PHP never actually have to set up and configure a PHP server.

Most people using node just use a PAAS too.


That's a tautology.

[Edit] Or did you mean to say that most people use node on a PAAS? In that case it's not a tautology, but I don't think that most people do, and I didn't say node was easy to set up.


The symmetric, "curious dance" between C and C# in 2009-2011 could be due to the fact that "#" is not a alphanumerical character. Some searches for "C#" may have been miscounted as searches for "C" in that period. (But that's just an hypothesis.)


At first I was about to dismiss this as TIOBE-like crap. But giving it a second thought, there is a deep difference in methodology.

TIOBE - language is popular if "<language> tutorial" brings up lots of results on Google This page - language is popular if many people searched "<language> tutorial".

It's not hard to see that the second one is a much more interesting metric. That said, it's still far from being enough to evaluate a language's popularity. On the other hand, it can be at least mildly correlated with the amount of people wanting to learn said language over the measured period of time.


The analysis assumes that more searches for tutorials means the language is more popular where as it might just mean the language requires more tutorials to understand.


After reading the FAQ I agree that using the term "<lang> tutorial" is better than "<lang> programming" - but couldn't the results for "<lang> tutorial" possible represent languages that are harder to grasp, rather than languages in popular use.

Then again, if that was purely the case we'd be seeing "brainfk" all over the place.

Just a thought.


In our country, there are 80% developers are using .net/C#. They know how to use svn, cut CSS from Photoshop, code a website, do webform, but they don't know what JSON is, what GIT is, what Linux is, what a Message Queue, or Redis is. Hm, i don't know why .net is so popular. What .net can do, the Linux-based technologies can do.


Extrapolating "popularity" for google search volume is a huge pet peeve. I see no reason to believe this data means anything.


If you look at USA and look at which state is the darkest for all of the search terms, California is the darkest for each.


> which language is taking advantage of PHP's decline

Until you notice that Y-axis is logarithmic...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: