8 ms·
What is going on with measures of programming language popularity?
- yen223 8y agoWhat's going on is that there are many equally-valid definitions of "popularity". Do you mean number of developers who's heard of a language? Who uses a language? Who likes a language? Or do you mean a language that's most widely deployed, for some definition of deployed? The question you need to ask is what decision is going to be impacted as the result of knowing the "popularity" of some language. The answer to that question will guide you towards the right metric you should be looking at.
- tabtab 8y agoIndeed! Keep-up-with-the-Jonesism sends people into circles of craziness and self-fulfilling prophecies.
- Jach 8y agoFrom https://www.xach.com/naggum/articles/3141310154691952@naggum.no.html https://www.xach.com/naggum/articles/3141310154691952@naggum... "if you aren't using today's fad language in the very latest version of the IDE, you'll be left behind. aaaugh! but it's good that some people run like they are scared out of their wits. if they suddenly disappear over the edge of a cliff, a good number of people will notice in time and _not_ follow them. those are the ones that matter."
- baxtr 8y agoThat’s similar to asking: which species is the most successful one? By which measure? Bio-mass? Space occupied?
- WiseWeasel 8y agoOoh, that's an interesting question. I'd have to go with highest total energy consumed through their metabolism and activities. Those with the highest chemical impact on the planet.
- baxtr 8y agoPlease don’t backward engineer the metric so that we will win ;-)
- WiseWeasel 8y agoYeah, factoring in activities certainly gives us the advantage. I suspect most people have an idea of success more along the lines of mass of other species consumed. That seems unfair to plants though. I feel some measure of chemical impact of the species to be the most level playing field, and that relative total energy consumption is close to the core of the question.
- maxxxxx 8y agoI would go with the highest biomass :-). Whoever weights most in total wins. EDIT: According to https://en.wikipedia.org/wiki/Biomass_(ecology)#Ocean_biomass https://en.wikipedia.org/wiki/Biomass_(ecology)#Ocean_biomas... it's earthworms.
- WiseWeasel 8y agoIs a giant sequoia tree, the largest of which was able to accumulate ~1350 tons over 2000 years, more successful than the quantity of worms that lived under it during that time? A continual measurement per unit time seems more fair to me than instant current weight at any given time. Maybe if it was possible to measure the biomass generated over the course of the year for each species. I'd think that's directly related to their energy consumption.
- marcosdumay 8y agoI would go with the time fitness takes to bounce back after an environmental change... So us, then bacteria, and so on.
- dzdt 8y agoThe article omits the Redmonk ranking [1], which is imho much better than TIOBE. The Redmonk approach uses github and stackexchange as complementary data sources, and shows a two dimensional main result. The top 20 in the Redmonk ranking are 1 JavaScript 2 Java 3 Python 4 PHP 5 C# 6 C++ 7 CSS 8 Ruby 9 C 9 Objective-C 11 Swift 12 Scala 12 Shell 14 Go 14 R 16 TypeScript 17 PowerShell 18 Perl 19 Haskell 20 Lua Considering how different languages occupy different niches, the relative ranking withing niches seems reasonable. And ranking across niches scales according to size of the niche. Client-side web scripting is a huge niche, hence javascript is in the top spot. General purpose desktop/server applications are another huge niche, served by Java, C#, C++, C, Scala, Go (in that order). And so on. It seems pretty sane, and the results have been stable enough to interpret the rise of upcoming languages and see the resilience of top contenders. [1] https://redmonk.com/sogrady/2018/08/10/language-rankings-6-18/ https://redmonk.com/sogrady/2018/08/10/language-rankings-6-1...
- hellofunk 8y agoWhat??! No Nim?!
- deleted 8y ago[deleted]
- wink 8y agoPretty sure I wrote this already at some point, but as a 9 year user who has not really starred anything in the last 8 years I still find this methodology flawed. Probably not as flawed as the other two, ok. Also there are some ecosystems where people don't just really use stackexchange, so those are also way off. Could be huge, could be nil.
- CryoLogic 8y agoI have absolutely no doubts that the most used language is JavaScript - considering nearly every website in existence relies on it. So it's really just a question of methodology. When TIOBE says popularity they must not be talking about usage rates, or if they are perhaps they are specifically sampling some subset of enterprise?
- magnetic 8y ago> I have absolutely no doubts that the most used language is JavaScript - considering nearly every website in existence relies on it. You should have doubts because every website you look at is on a device that most likely has tons of parts written in C. Pretty much any piece of hardware you run your browser on, irrespective of whether you're looking at a website that has javascript code or not, has some C code running to support your javascript VM, browser, and operating system. Whether you're on a computer, cell phone, gaming console, IoT device, you name it... you're most likely executing some C code quite frequently. And that's whether you're using a browser or not. C is still the go-to language (no pun intended) for pretty much all drivers (with certain parts in assembly as needed) of any piece of hardware.
- cestith 8y agoTIOBE is, AFAICT, using a single web search engine (Google) and searching for a string representing the language like "C programming" or "Ruby programming", and taking a count of results. This favors languages that have a lot written about them due to age, or student interest, or whatever leads people to write a web page about a language. It'd be interesting, and no more or less valid, to see how many paper books and ebooks have been sold on each. GitHub takes count of the projects on its own site in each language, but that microcosm may not represent other places. Anecdotally, my employer runs private git repos on private servers, and our ratios don't match GitHub's. Another interesting metric would be number of job openings. Another would be average pay for a developer mainly using a particular language. Another would be asking people in a scientific poll which languages they use and which ones they enjoy using.
- hirundo 8y agoAs a Rubyist I'm pleased with the Github ranking, but how much of that is tilted by Github being a Ruby platform initially colonized by Rubyists?
- hyperpape 8y agoIt's unclear how important it is today, but historically analyses that used Github heavily favored Ruby: https://www.benfrederickson.com/ranking-programming-languages-by-github-users/ https://www.benfrederickson.com/ranking-programming-language....
- catach 8y agoI'd expect that Github's scope/growth/ubiquity has mostly smoothed out that bump.
- discreteevent 8y agoAnd GitHub rankings don't factor in things like the fact that java programmers may be under represented, because they tend to be older with enough experience and contacts to get work - without needing to show a GitHub project (plus if they have kids, they just don't have the time)
- bigger_cheese 8y agoI'm in my 30's and one of the younger people in my department. I work in Engineering. I don't use Github I do not know anyone personally who uses it. I think it is probably a generational thing. Search engine result as well I'd be suspicious of. If I am searching a programming language it is something I don't use very often thus why I am looking up the information. The languages I use the most often I have stack of books on my desk rarely need to look anything up with a search engine.
- thebooglebooski 8y agoI don't really understand how you can measure popularity without doing a census-like survey, reaching out to every developer possible in a coordinated effort. Awhile back, I took a statistics class that explained how polling everyone by calling everyone with a phone landline resulted in a misrepresented sample. The reason: not everyone has a phone landline. And those with phone landlines had a tendency to belong to specific demographics. So...if you survey everyone using Github, and not every developer uses Github, are you not prone to the same fallacy?
- GFischer 8y agoOne example off the top of my head are the billions of lines of Cobol code that are certainly not on GitHub :) . I'm not sure if Cobol programmers use StackExchange (I guess they do).
- drawkbox 8y ago> TIOBE measures the sheer quantity of search engine hits. PYPL measures how often language tutorials are Googled. Popularity by who searches for language help like Java or C/C++ is mostly because those are more difficult languages with bigger, historical sprawl and frameworks. Just using searching for popularity is skewed because people search more so for things they don't know, than ones they do, and harder languages will probably be more searched. Same with tutorials, it only shows what people are learning. However it is somewhat valid in that even languages you use daily you end up searching for solutions and information on docs, community, etc. The github and repo stats probably give a bigger picture of popularity combined with searching and surveys. Side note: Personally I think everyone should learn C/C++ and maybe a functional language or a dynamic language like Python in addition to their main languages. Learning C/C++ and building in it is closer to the metal, has memory management and every language you learn after is less difficult. I do love C++ for game development but it helps with learning all other languages as well as all other languages difficulty is downhill from it, and is especially great for memory management, stack/heap understanding, value/reference understanding and C/C++ is empowering in the power/speed of the platforms. To this day still most apps are built with C/C++ under the hood whether directly, exported to or in a virtual machine that is built in it. For highly performant apps/code/systems C/C++ still are king.
- Roboprog 8y agoC++: it feels so good when the beating stops Maybe object Pascal or rust for the less masochistic? I’m ok with C if need be.
- analog31 8y agoI've used the language popularity indexes to show MBA's that my preferred tool chain isn't some weird obscure thing that I just discovered on the Internet. The numbers were good enough for that purpose, and of course they didn't question the underlying methodology. Perhaps the more useful message for them is that there are in fact more than one or two popular languages, and that they are not all commercial products.
- meddlepal 8y agoAs Mark Twain eloquently put it...there are lies, damned lies and statistics.
- observr9 8y agoHow about available jobs? I suspect a lot of people are trying to determine which language to invest their time in learning. Another relevant measure would be ALL jobs, not just available. Some people may not care if a million people are using language X if they're not getting paid for it.
- nielsbot 8y agoSeems like a good suggestion
- submeta 8y agoThen, in the web sphere you'd have to focus on PHP (in Germany). But then again, looking at the details, you will realize that those job offers ask for developers who are fluent in: php, JavaScript, css, mysql, Photoshop (!), wordpress (!), etc. Reads like a job offer from the beginning of 2000. But the sheer numbers cannot be ignored: Java / c# >> php >> Python >> Ruby/Rails >>>> Clojure... (Just one example) Now you'd have to go into the details again to answer the question if you'd want to work at the problem set that is described in the job offer (how sophisticated, what kind of domain, how challenging,...)
- Apocryphon 8y agoArticle underestimates how much iOS app legacy Objective-C code there is; even Apple is a far ways off from replacing it all with Swift.
- saagarjha 8y agoI think you meant "underestimate".
- Apocryphon 8y agoGood catch.
- jaequery 8y agoJavaScript Is ambiguous these days. How much percentage of the JavaScript popularity is from the backend language Nodejs and how much of it from the client side(html, react, angular, etc)?
- bcheung 8y agoWhy the distinction? It's the same language.
- jaequery 8y agoi guess it depends on what you are looking for? in the frontend world, it really is only Javascript, so I don't think we need a popularity contest there. and it's in use by practically all the websites in the world as a dynamic renderer. but when comparing a language like Java, PHP, Node, Python, I really don't want to see the results of frontend Javascript skewing the results. otherwise, one would just assume Javascript is the most popular backend language, but that is not the case, as stated in the article. article states that one of the rankings had Java as #1 and Javascript as #8. but on the other, JS was overwhelmingly #1 (because it combined both frontend and backend). you need distinction because frontend and backend are like apples and oranges.
- munificent 8y agoThe TIOBE index is hot garbage, and always has been. Even so, this article is also pretty bad. Nowhere does the author define what he means by "popularity", which is one of the key problems all of these popularity contests suffer. If we say "Language X is more popular than language Y?" What does that mean? Answers could be any of: * Total extant corpus of X is larger than Y. * Number of people who know X is larger than Y. * Amount of open source code in X is greater than Y. * Number of people currently writing X (how much?) is greater than Y. * Number of people who want to be writing X is greater than Y. * Number of jobs available for writing X is greater than Y. * Number of people talking about X is greater than Y. These are all wildly different metrics but all have reasonable claims to represent "popularity" and/or are what some of these rankings claim to show. To do anything useful, you really need to know what problem the reader is trying to solve and pick a metric that helps that problem. Is the reader trying to decide what language to learn to find a job today? To get ahead of the curve and be an expert in five years? To discover a new exciting language? To choose a language to use for a large, conservative project? A small ambitious one?
- munk-a 8y agoI think the most useful popularity vector of a language is probably "What proportion of good programmers I interview will know a language" that vector would influence what language a company might chose to build a new product in in order to ensure they can find good developers to maintain it. Actually a better question might be "What proportion of good programmers I interview will know a language in five years".
- justinpombrio 8y agoThat's going to vary wildly depending on who you interview, which is going to depend on what sort of thing your company does. A game studio is going to get people that know C and Lua with a fringe group that are excited about Rust, while a big enterprisey company is going to get Java and C# developers with a fringe group that are excited about F#. (Maybe these examples are all wrong, but you get the idea.)
- 8y ago
- innocentoldguy 8y agoI don't put a lot of stock into TIOBE and similar lists because I'm not really sure how that information helps. It seems to me that these lists are measuring ubiquity rather than popularity, which I define as being well-liked. I guess there is value in that, but I'm far more interested in seeing a ranked list of well-liked languages and the reasoning behind those opinions. Slant isn't perfect, but it offers me the sort of pros vs. cons lists that I find much more valuable when selecting a language. Job prospects/salary is another ranking I'm interested in. For example, I know I can get a JavaScript job on any corner, but is that ubiquity going to cost me in salary? Can I earn more by mastering something like Rust, Elixir, or Erlang?
- 13415 8y agoInstead of popularity indices, I'd like to see the percentage that a language+framework takes in applications of a certain type, such as desktop applications, client-side web applications, server applications, data crunching, embedded, etc. That way you can spot trends or find alternative languages for a certain task. Another interesting metric would be the number of open source libraries for the language that have had commits within the last 3 months and whose major semantic version is 1.0 or higher (or some other way to weed out unfinished libraries), sortable by license.
- bacon_waffle 8y agoMy day job mostly involves C code, which lives in a company repository; I only rarely search for C specific stuff. Hobby projects - work on OSS in C++/Python, or learning Rust - must result in an order of magnitude more of my language-specific searching and public committing, even though it represents a small fraction of my programming time. So, for me, searching is mainly related to the learning about a language, not so much using a language. This makes me wonder if the integral over time of search volumes might be a useful measure of language use?
- mastazi 8y ago"The data doesn't match my personal preconceptions, so the methodology must be broken" Uhm yeah, nah.
- krschultz 8y agoThe Stack Overflow developer survey is another data set that I trust. https://insights.stackoverflow.com/survey/2018#technology https://insights.stackoverflow.com/survey/2018#technology
- vorg 8y agoTiobe's faulty ranking method isn't even reliable. Three years ago Apache Groovy was in the top 20, but six months ago it wasn't even in the top 50. Now it's supposedly rising rapidly again. And this isn't the first time this has happened with Groovy -- it was also in the top 20 in Oct 2013 but three months later out of the top 50. I suspect Tiobe's rankings are being gamed somehow.
- davidw 8y agoI used to do a language popularity thing, langpop. One of the takeaways is that there are different metrics and none of them is perfect. So I grabbed what I could, combined them, and even had a JS thing where you could weight them differently. Stuff I looked at: raw search, source code, books, job advertisements.
- DoreenMichele 8y agoThere is an excellent book on such things that I highly recommend: How to lie with statistics Problems like this are part of why we have sayings like: Measure twice, cut once. GIGO (Garbage in, garbage out) Some saying about measuring to extreme precision, then "cutting with an axe."
- bcheung 8y ago> Measure twice, cut once. I always thought that had to do with carpentry and woodworking, not statistics.
- DoreenMichele 8y agoSame problem space to my mind: applying math to the real world in some meaningful, useful fashion.
- zmmmmm 8y agoThe big problem is all the major indexes are driven by search engine measures, and those themselves are highly sensitive to any change in the underlying search engine methodology itself. So a small change in Google's ranking algorithm will see a language move up or down dozens of places. I would tend to focus more on job ads personally because those are at least linked to "real intent" to use a language for something tangible. You don't put it in an ad because something is controversial or had a lot of news lately etc. which can all lead to things being Googled a lot or getting a spurt of search activity. Github's index is nice in that it is based on actual code, but then it's also heavily biased by what is open source and therefore doesn't fully reflect industry use of languages (which is why I think it deviates from other indexes to put Javascript and Python a bit higher, and less emphasis on say Java and C#).
- pankajdoharey 8y agoI dont think these measurements are any good or true reflection of a languages usage in the industry, some languages go totally under the radar, like clojure/clojurescript.
- dcooper8 8y agoNor is github a perfect indicator. Some languages promote their own open-source repository hubs, such as https://gitlab.common-lisp.net https://gitlab.common-lisp.net.
- sseth 8y agoGithub ranking by open pull request to me feels the best approach if what you are interested in is trends of language adoption. Measuring total corpus would be measuring past popularity and may miss trends. Search metrics on the other hand may actually overrate newer languages which may be searched more compared to more mature languages. Opened pull requests sounds like a better metric overall.