流行编程语言_编程语言的流行度排名

流行编程语言

There has never been a unanimous agreement on what the most popular programming languages are, and probably never will be. Yet we believe that there is merit in trying to come up with ways to rank the popularity of programming languages. It helps us to see the trends over time and gives us hints as to what to focus on. In the ever-changing world of technology, it is important to stay ahead of the curve.

关于什么是最流行的编程语言,从未达成一致意见,也许永远不会。 但是,我们认为尝试提出一种方法来对编程语言的流行度进行排名是有好处的。 它可以帮助我们了解一段时间内的趋势,并为我们提供有关重点的提示。 在瞬息万变的技术世界中,保持领先地位很重要。

The analysis that follows is on data from Stack Overflow (SO). The SO website is arguably the biggest and the most popular Q&A website in the developer community (“developer” in the general sense of anyone who writes code). Currently, it has about 10 million visits per day and has had 12.6 million users who were active on the website beyond simple visits (e.g. posted a question/answer or made a comment/edit). We believe that ranking programming languages based on their popularity on SO is a good estimate of their actual popularity.

接下来的分析是关于堆栈溢出(SO)中的数据的。 SO网站可以说是开发人员社区中最大和最受欢迎的问答网站(一般来说,任何编写代码的人都称为“开发人员”)。 目前,它每天的访问量约为1000万,除简单的访问(例如,发布问题/回答或发表评论/编辑)外,已有1,260万用户活跃在网站上。 我们认为,根据编程语言在SO上的流行度来排名是对它们实际流行度的一个很好的估计。

We have calculated a popularity index for programming languages which is the average of three factors: Number of questions asked daily, number of daily distinct users and view count of questions. To identify a language, we consider the tags assigned to the posts. For example for JavaScript we consider the following tags:

我们已经计算出编程语言的受欢迎程度指数 ,该指数是三个因素的平均值:每天提出的问题数量,每天的独立用户数量以及问题的查看数量。 为了识别语言,我们考虑分配给帖子的标签。 例如,对于JavaScript,我们考虑以下标记:

   tags like ‘%javascript%’ 
or tags like ‘%jquery%’
or tags like ‘%js>%’ — tag ends with ‘js’ e.g. ‘node.js’
or tags like ‘%extjs%’ — includes ‘extjs4’ and others

For daily question count, we calculate the number of questions that were asked in each day for each programming language.

对于每日的问题计数,我们计算每种编程语言每天要提出的问题数量。

To calculate the Distinct Users Count, we count the number of distinct users who asked/answered a question, posted a comment or edited a question/answer for each programming language in each day.

为了计算“不同用户数”,我们计算每天针对每种编程语言询问/回答问题,发表评论或编辑问题/答案的不同用户数。

Every post in SO has an attribute showing how many times the post has been viewed. We normalize this number by dividing it by the number of days that the post has been visible. This gives us the Normalized View Count for that post. We then sum the view counts for each programming language for each day. Note that since the variance of the normalized view count for the posts in the most recent month is high, we do not include these posts in the calculation. As a result, this measure is one month behind the other two measures.

SO中的每个帖子都有一个属性,显示该帖子被查看了多少次。 我们将其除以可以看到帖子的天数来归一化。 这为我们提供了该帖子的标准化视图计数。 然后,我们将每天每种编程语言的观看次数相加。 请注意,由于最近一个月的帖子的标准化视图计数差异很大,因此我们在计算中不包括这些帖子。 结果,该措施比其他两项措施落后了一个月。

For further details on how the index is calculated see the GitHub repository.

有关如何计算索引的更多详细信息,请参见GitHub存储库 。

Let’s now explore trends using some Line Charts. Note that you can follow along using this interactive dashboard (from the top-right choose the desired filters.)

现在让我们使用一些折线图探索趋势。 请注意,您可以继续使用此交互式仪表板 (从右上角选择所需的过滤器。)

Image for post
Screenshot of the dashboard (Image by author)
仪表板的屏幕快照(作者提供的图像)

Note: The following analysis is based on the SO data until the end of May 2020. The data behind the interactive dashboard will be updated each month.

注意:以下分析基于截至2020年5月的SO数据。交互式仪表板后面的数据将每月更新。

前五 (Top Five)

Starting with the top five most popular programming languages (based on our index), if we look at the yearly data, we see that JavaScript has held the crown for the past 10 years, although Python now a close second, is catching up quickly. The other three, namely Java, SQL and HTML/CSS have been slightly declining in popularity in the past seven years.

从年度最流行的五种编程语言(根据我们的索引)开始,如果我们查看年度数据,我们会发现JavaScript在过去10年中一直保持领先地位,尽管Python现在紧随其后,正在Swift赶上。 在过去的七年中,Java,SQL和HTML / CSS等其他三种语言的普及率略有下降。

Image for post
Yearly Top Five (Image by author)
年度前五名(作者提供)

If we look at the quarterly data, JavaScript is still at the top, although it is neck and neck with Python. The interesting part is the monthly data. May 2020 was the first time in the past 10 years that JavaScript lost its position at the top. Given the pace of growth of Python, it seems this situation is going to last for some time.

如果我们查看季度数据,则JavaScript仍处于顶部,尽管与Python并驾齐驱。 有趣的部分是每月数据。 2020年5月是过去10年中JavaScript首次失去其最高职位的位置 考虑到Python的增长速度,这种情况似乎将持续一段时间。

Image for post
Image by author)作者提供图片 )

数据科学 (Data Science)

Data Science has been a hot topic in recent years. In the following chart we can see that Python and R have had high growth rates in the past years. Scala has kept its popularity more or less, and Julia’s popularity has been minuscule so far. Note that to make it a fair comparison, only the data science part of Python is considered for this comparison (see the GitHub Repository for more details).

数据科学一直是近年来的热门话题。 在下面的图表中,我们可以看到Python和R在过去几年中都有很高的增长率。 Scala或多或少地保持了它的受欢迎程度,到目前为止,Julia的受欢迎程度很小。 请注意,为了进行公平的比较,仅考虑将Python的数据科学部分用于此比较(有关更多详细信息,请参见GitHub Repository)。

Image for post
Image by author)作者提供 )

关系数据库管理系统 (RDBMS)

Among Relational Database Management Systems (RDBMS), MySQL is still the most popular, although its popularity has been declining. The same applies to SQL Server. On the other hand, PostgreSQL’s popularity has been constantly increasing in the past decade. There hasn’t been much change in popularity of Oracle.

在关系数据库管理系统(RDBMS)中,尽管MySQL的受欢迎程度一直在下降,但它仍然是最受欢迎的。 同样适用于SQL Server。 另一方面,PostgreSQL流行在过去十年中一直在不断增加。 Oracle的流行程度并没有太大变化。

Image for post
Image by author)作者提供的图片 )

移动开发 (Mobile Development)

Regarding Mobile development languages, we see some considerable changes. Swift was introduced in June 2014, which caused a major hit on popularity of Objective-C. A similar story happened for Kotlin and Java (mobile). In 2017 Google included Kotlin in Android Studio and Since May 2019, it is the preferred programming language for Android app developers.

关于移动开发语言,我们看到了一些重大变化。 Swift于2014年6月推出,这极大地影响了Objective-C的普及。 Kotlin和Java(移动)也发生了类似的故事。 2017年,谷歌将Kotlin包含在Android Studio中,自2019年5月以来,它是Android应用程序开发人员首选的编程语言。

Image for post
Image by author)作者提供 )

比赛吧! (Let’s Race!)

To see the calculated popularity index in action over the past 10 years, click on the play button at the bottom-left of the chart below. You can also use the slider at the bottom to move to a specific time range.

要查看过去10年中实际计算出的受欢迎程度指数,请点击下面图表左下方的播放按钮。 您也可以使用底部的滑块移动到特定时间范围。

Note: The chart will be updated with new data one month after the beginning of every quarter (as explained above, the ViewCount measure lags one month behind the other two measures, which causes the index to lag one month behind as well, as it is the average of the three measures).

注意:图表将在每个季度开始的一个月后使用新数据进行更新(如上所述,ViewCount度量值比其他两个度量值落后一个月,这会使索引也滞后一个月)。这三个指标的平均值)。

(Created with Flourish bar chart race)
(使用蓬勃发展的条形图竞赛创建)

If you have suggestions for improving the index, please let me know, either in the comments or by creating an issue in the GitHub Repository.

如果您有改进索引的建议,请在评论中或通过在GitHub存储库中创建问题来通知我。

  • Interactive Dashboard

    互动仪表板

  • GitHub Repository

    GitHub储存库

翻译自: https://towardsdatascience.com/popularity-ranking-of-programming-languages-72bcf697ea20

流行编程语言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388289.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用UIWebView加载网页

1、使用UIWebView加载网页 运行XCode 4.3&#xff0c;新建一个Single View Application&#xff0c;命名为WebViewDemo。 2、加载WebView 在ViewController.h添加WebView成员变量和在ViewController.m添加实现 [cpp] view plaincopyprint?#import <UIKit/UIKit.h> …

corba的兴衰_数据科学薪酬的兴衰

corba的兴衰意见 (Opinion) 目录 (Table of Contents) Introduction 介绍 Salary and Growth 薪资与增长 Summary 摘要 介绍 (Introduction) In the past five years, data science salary cumulative growth has varied between 12% in the United States, according to Glass…

10 个深恶痛绝的 Java 异常。。

异常是 Java 程序中经常遇到的问题&#xff0c;我想每一个 Java 程序员都讨厌异常&#xff0c;一 个异常就是一个 BUG&#xff0c;就要花很多时间来定位异常问题。 什么是异常及异常的分类请看这篇文章&#xff1a;一张图搞清楚 Java 异常机制。今天&#xff0c;栈长来列一下 J…

如何实施成功的数据清理流程

干净的数据是发现和洞察力的基础。 如果数据很脏&#xff0c;您的团队为分析&#xff0c;培养和可视化数据而付出的巨大努力完全是在浪费时间。 当然&#xff0c;肮脏的数据并不是新的。 它早在计算机变得普及之前就困扰着决策。 现在&#xff0c;计算机技术已普及到日常生活中…

通才与专家_那么您准备聘请数据科学家了吗? 通才还是专家?

通才与专家Throughout my 10-year career, I have seen people often spend their time and energy in passionate debates about what data science can deliver, and what data scientists do or do not do. I submit that these are the wrong questions to focus on when y…

ubuntu opengl 安装

安装相应的库&#xff1a; sudo apt-get install build-essential libgl1-mesa-dev sudo apt-get install freeglut3-dev sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev 实例&#xff1a; #include "GL/glut.h" void…

分享一病毒源代码,破坏MBR,危险!!仅供学习参考,勿运行(vc++2010已编译通过)

我在编译的时候&#xff0c;杀毒软件提示病毒并将其拦截&#xff0c;所以会导致编译不成功。 1>D:\c工程\windows\windows\MBR病毒.cpp : fatal error C1083: 无法打开编译器中间文件:“C:\Users\lenovo\AppData\Local\Temp\_CL_953b34fein”: Permission denied 1> 1>…

数据科学家 数据工程师_数据科学家实际上赚了多少钱?

数据科学家 数据工程师目录 (Table of Contents) Introduction 介绍 Junior Data Scientist 初级数据科学家 Mid-Level Data Scientist 中级数据科学家 Senior Data Scientist 资深数据科学家 Additional Compensation 额外补偿 Summary 摘要 介绍 (Introduction) The lucrativ…

spotify歌曲下载_使用Spotify数据预测哪些“ Novidades da semana”歌曲会成为热门歌曲

spotify歌曲下载TL; DR (TL;DR) Spotify is my favorite digital music service and I’m very passionate about the potential to extract meaningful insights from data. Therefore, I decided to do this article to consolidate my knowledge of some classification mod…

(第三周)周报

此作业要求https://edu.cnblogs.com/campus/nenu/2018fall/homework/2143 1.本周PSP 总计&#xff1a;1422 min 2.本周进度条 (1)代码累积折线图 (2)博文字数累积折线图 4.PSP饼状图 转载于:https://www.cnblogs.com/gongylx/p/9761852.html

功能测试代码python_如何使您的Python代码更具功能性

功能测试代码pythonFunctional programming has been getting more and more popular in recent years. Not only is it perfectly suited for tasks like data analysis and machine learning. It’s also a powerful way to make code easier to test and maintain.近年来&am…

layou split 属性

layou split&#xff1a;true - 显示侧分栏 转载于:https://www.cnblogs.com/jasonlai2016/p/9764450.html

C#Word转Html的类

C#Word转Html的类/**//******************************************************************** created: 2007/11/02 created: 2:11:2007 23:13 filename: D:C#程序练习WordToChmWordToHtml.cs file path: D:C#程序练习WordToChm file bas…

分库分表的几种常见形式以及可能遇到的难题

前言 在谈论数据库架构和数据库优化的时候&#xff0c;我们经常会听到“分库分表”、“分片”、“Sharding”…这样的关键词。让人感到高兴的是&#xff0c;这些朋友所服务的公司业务量正在&#xff08;或者即将面临&#xff09;高速增长&#xff0c;技术方面也面临着一些挑战。…

线性回归和将线拟合到数据

Linear Regression is the Supervised Machine Learning Algorithm that predicts continuous value outputs. In Linear Regression we generally follow three steps to predict the output.线性回归是一种监督机器学习算法&#xff0c;可预测连续值输出。 在线性回归中&…

小米盒子4 拆解图解_我希望当我开始学习R时会得到的盒子图解指南

小米盒子4 拆解图解Customizing a graph to transform it into a beautiful figure in R isn’t alchemy. Nonetheless, it took me a lot of time (and frustration) to figure out how to make these plots informative and publication-quality. Rather than hoarding this …

蓝牙一段一段_不用担心,它在那里存在了一段时间

蓝牙一段一段You’re sitting in a classroom. You look around and see your friends writing something down. It seems they are taking the exam, and they know all the answers (even Johnny who, how to say it… wasn’t the brilliant one). You realize that your ex…

普通话测试系统_普通话

普通话测试系统Traduzido/adaptado do original por Vincius Barqueiro a partir do texto original “Writing Alt Text for Data Visualization”, escrito por Amy Cesal e publicado no blog Nightingale.Traduzido / adaptado由 VinciusBarqueiro 提供原始 文本“为数据可…

美国队长3:内战_隐藏的宝石:寻找美国最好的秘密线索

美国队长3:内战There are plenty of reasons why one would want to find solitude in the wilderness, from the therapeutic effects of being immersed in nature, to not wanting to contribute to trail degradation and soil erosion on busier trails.人们有很多理由想要…

Java入门第三季——Java中的集合框架(中):MapHashMap

1 package com.imooc.collection;2 3 import java.util.HashSet;4 import java.util.Set;5 6 /**7 * 学生类8 * author Administrator9 * 10 */ 11 public class Student { 12 13 public String id; 14 15 public String name; 16 17 public Set<…