社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

数字解读:Python社区2017至2018年趋势分析

Python程序员 • 6 年前 • 540 次点击  

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

本文与Dmitry Filippov合写,透过大量收集自Python开发者调查的数据,揭示了有关Python编程语言的最新使用情况和发展轨迹。

Python正变得越来越受欢迎,在科技新闻中引起了人们更多的关注。有报道说,更多的女高中生们正在将Python应用于计算机工程的学习;Python被推荐为大学计算机入门课程的编程语言。 此外,Stack Overflow的2018年开发者调查显示,Python是大多数人想学习的编程语言。 Python被广泛用于网络,从简单的个人网站,到世界上大型银行里的数据挖掘和机器学习。

是什么让Python如此特别? Python开发者是哪些人? 它为什么如此受欢迎? 为了回答这些以及其他许多重要的问题,JetBrains和Python软件基金会(Python Software Foundation,PSF)合作,针对使用Python作为主要或补充语言的人群开展了一项调查。 到目前为止,还没有人做过针对Python的专项研究,以期了解不同开发人员是如何使用它的,有哪些组件促进了它的使用,以及是什么让它成为了最受欢迎的语言之一。

我们调查的目标是确定Python的最新趋势,并一窥Python开发界的全貌。抱着这一目的,我们着手研究了以下问题:

  • Python 3最新的普及率是多少?

  • Python是怎样和其他语言一起使用的?

  • 什么样的项目会用到Python?

  • Python用户的主要开发类型有哪些?

  • 最流行的技术和工具是什么?

  • 最常见框架和库有哪些,以及它们是如何相辅相成的?

  • Python开发者是一群什么样的人?

该调查于2017年10月发布。这里是我们对结果所做的汇总,你也可以从Python开发者调查2017年结果的网站上挖掘更多的图表和原始数据。

方法论

在我们查看相关数据和见解之前,有必要回顾一下调查所采取的方法,包括:调查是如何派发的,采取了哪些措施来避免潜在的偏见,并确保调查不倾向于任何特定的工具,技术,库,或者国家。

我们将调查发送给几个独立的团体,包括订阅了PSF邮件列表,博客,Slack,LinkedIn和Twitter的人员。我们还在一些访问量最大的Python.org页面上推广了该项调查,并通过阅读文档进行了公布。大部分回复(62%)来自Python.org上的广告横幅;其他主要来源是PSF博客和Twitter帖子。我们没有利用产品、服务或供应商相关的渠道,以防止调查结果倾向于任何特定的工具或技术。

调查深受社区的欢迎,回复率超过预期。在开放期间,收到的回复超过了1万份。我们在做调查分析时过滤掉了不完整和重复的回复,留下来的数据集包括了来自150多个国家的9,532名应答者。对于如此大的样本,描述统计误差的保守置信区间仅为1%,意味着所有结果都具有统计显著性。我们实现了调查的主要目标:收到了准确可靠的数据!

Python开发者画像

开启Python世界之旅的第一步,让我们来聊聊最令人兴奋的事儿 -- 和Python语言及其应用程序相比,Python社区也呈现出同样的多元化。

虽然Python用户的年龄范围很广,但是大多数受访者的年龄在20岁左右,四分之一在30多岁。有趣的是,几乎五分之一的Python用户年龄在20岁以下。如果我们将Python开发人员的年龄范围,与Stack Overflow在其最新调查中确定的一般开发人员的年龄范围进行比较,分布情况比较相似。区别在于,Python调查中,年龄在18岁以下的开发者稍微多一些。原因在于,很多中学和大学的学生在使用Python,而且Python常常被选作第一门语言。

超过一半的受访者是全职的开发人员,每五名开发人员中就有一位担任数据分析师,架构师,或团队负责人。与Stack Overflow的调查相比,我们可以看到:Python开发者比一般开发者更少可能全职工作(52%的Python开发人员与74%的开发人员),更有可能自己当老板,或成为自由职业者(Python开发人员占13%,所有开发人员占9.7%)。

Python调查的受访者呈现出各种不同的经验; 22%的人拥有不到一年的经验,超过11年经验的人也是这个比例,而经验在这两者之间的分布平滑。这表明新手和经验丰富的开发人员之间保持了良好的平衡,使Python成为了可持续发展的语言。

值得注意的是,Python比其他语言的平均新手比例高得多。 根据Stack Overflow数据,30%的开发人员拥有不到两年的专业经验,而Python开发人员调查中的这一比例为41%。

大型的Python开发团队中并不多见。 在我们的调查中,56%的Python开发人员表示他们独立开发项目,40%的人通常在2到7人的团队中工作。 大约一半的受访者在从事一个主要项目的同时还有几个小项目,而四分之一的人则一次只从事一个项目。

2016年,JetBrains在没有PSF参与的情况下举办了一次Python开发者调查。 虽然JetBrains在2016年的样本规模很大,但其调查主要通过自己的渠道进行推广,这自然吸引了PyCharm用户中的更大份额 - 约50%的PyCharm用户和50%的使用其他编辑器的用户。 为了减少不可避免的偏差,2016年的调查没有比较不同代码编辑器的用户数量。 尽管2016年的调查结果存在偏差,仍然值得比较一下2017年和2016年的一些调查结果。 例如,在2016年的调查中,45%的人表示独立完成自己的项目,51%的人则是团队工作。 2017年调查中的这一比例不同也许是因为,有大量的新手,且Python是他们的第一语言,以及数据科学家的数量和现在使用Python的Web开发者的数量旗鼓相当。

Python工作机会

正如我们上面所写的,在Stack Overflow的2018年开发者调查中,Python是最理想的语言(即调查者最有兴趣学习的语言);这是Python连续第二年获得该排名。 Python用户在排名最高的编程语言中排名第三。这些事实与Python就业市场是什么关系呢?

尽管Python开发人员调查并未专门提出工作受欢迎度,但我们可以从Python开发人员需要的其他资源中,收集世界范围内的各种工作信息。包括机器学习,数据库,数据分析,云基础设施,设计,站点可靠性/测试,网络抓取,安全性,移动开发,API等等。根据jobs.python.org上列出的职位,机会倾向于国际化需求,尤其是在英国地区。

在任何主要工作网站搜索“Python开发人员”,会返回数千个就业机会。 2018年3月,美国Python开发者在美国的平均工资(根据实际数据)为115,835美元。这么高的平均工资表明,许多公司正在竞相雇佣知识渊博的Python开发人员。这进一步说明Python确实是一种广受欢迎的技能。

Python与美国最好的工作 -- 数据科学也有关系(基于2018年4月的Glassdoor.com)。大约五分之一的数据科学工作涉及Python,包括NumPy,Pandas和Matplotlib库。

Python使用情况

几乎五分之四的Python开发者认为Python是他们的主要语言,比JetBrains 2016年调查的75%增加了4%。

各种研究表明,Python开发人员的数量以及使用Python作为主要语言的开发人员的份额正在逐年稳步增长。 在Stack Overflow的调查中,Python的受欢迎程度从2017年初的32%上升到今年年底的38.8%。 这可以通过Python数据科学的迅速普及来解释,因为这部分用户的增长速度远远快于其他用户。

Python经常与其他语言一起使用:

所有使用Python作为主要语言的开发人员中有一半还使用JavaScript。 79%的网页开发人员使用JavaScript,但只有39%涉及数据分析或机器学习。

对于那些使用Python作为辅助语言的用户来说,细分情况略有不同,因为使用JavaScript(46%)和更多使用C / C ++(42%),Java(41%)和C#(24%)的用户较少。

Python开发类型

为了确定最流行的Python开发类型和它们的交集,我们提出了两个类似的问题:“你用Python做什么?” 受访者可以选择多个答案,以及“你最喜欢用Python干什么?” 受访者只能选择一个答案。 结果显示,科学方面的开发现在像网络开发一样受欢迎:有一半的受访者从事数据科学项目,另一半是网站开发。

根据受访者是否使用Python作为主要或次要语言,回复有所不同:使用Python作为其主要语言的人中有54%参与了Web开发,而那些认为Python是其次要语言的人中有33%参与了Web开发。 这种差异对于数据分析,机器学习和其他类型的开发来说不太重要。

许多Python开发人员扮演多种角色。 他们承担最多的角色有:

数据分析和机器学习的交叉是预料之中的,但是网络开发和数据分析/机器学习之间的交叉值得关注。

当被问及他们做的主要开发类型时,26%的Python用户选择网页开发,超出了数据分析的范围(据报道为18%)。

但是,如果我们将18%进行数据分析的人与9%主要角色是机器学习的人结合起来,那么我们知道27%的人主要从事科学开发。 这意味着数据科学家使用Python的人数与网络开发人员数量一样多。

有趣的是,当JetBrains在2016年进行了Python开发者调查时,有38%的受访者认定为Web开发人员,只有21%认为是科学开发人员。 这可能是Python开发人员数据科学家迅速增长的证据。

比较使用Python作为主要语言与辅助语言的趋势之间的趋势,网站发展差距最大(29%为主,15%为次要)。 数据分析和机器学习的差别要小得多。 相反,更多的DevOps和系统管理员使用Python作为辅助语言(13%)而不是主要语言(8%)

数据科学占据了Python第一吗?

Python开发者调查中,最令人感兴趣的问题是Python世界中,网络开发者与数据科学家的比例。 我们要求受访者估算使用Python的网络开发人员和数据科学家之间的比例。 受访者可以根据自己的经验,看法和一般“直觉”来回答。 因为我们明确地询问了开发的类型,并且样本规模足够大以具有统计显着性,所以我们可以将社区的看法与现实进行比较。

更多受访者(57%)认为网络开发者比数据科学家更普遍,而只有33%认为相反。

根据前一部分展示的数据(26%网络开发,27%科学开发为主要活动),真实的比例是1:1。

只有九分之一的受访者猜对了这一点; 大多数人低估了Python数据科学用户的数量。 Web开发通常被认为是Python的主要应用。 虽然这在几年前是真的,但Python数据科学家的数量正在快速增长,并且已经与Web开发人员的数量保持一致。

Python 2与Python 3

我们问,“你使用最多的是Python的哪个版本?” Python 3遥遥领先,是75%,而使用Python 2作为主要解释器的仅占25%。 Python 3正在迅速增长; 在2016年的调查中,60%的人使用Python 2和40%的Python 3. Python 2的使用正在下降,因为它没有得到积极发展,没有获得新的功能,并且在2020年后不再维护。

值得注意的是,70%的网络开发人员使用Python 3,而数据分析师中有77%,机器学习专家中有83%。 这可能是因为许多Web开发人员在转换到Python 3时仍需要维护遗留代码,并且许多数据分析师和机器学习专家最近才加入Python生态系统,直接选择了Python 3。

我们还问开发人员他们如何安装和更新他们的Python文件。

70%的人从python.org安装Python,或者使用操作系统提供的软件包管理器,如APT和Homebrew。

Python框架,库和技术

Django是最流行的框架; 41%的Python开发人员使用它。

科学软件包,如NumPy,pandas和Matplotlib合在一起紧随其后,达到39%。 其他流行的框架和库有Requests,Flask,Keras / Theano / TensorFlow / Scikit-learn等。 TensorFlow和Django在StackOverflow的最受喜爱和最需要的技术之列。

Django被76%的Web开发人员选为第一框架,而在数据科学领域工作的人中只有31%。 奇怪的是,29%的网页开发人员正在使用科学库。 这证实了两个角色之间的巨大交叉。

当被问及除Python以外的技术时,Jupyter Notebook的排名最高为31%,考虑到大量数据科学开发人员,这很有意义。 Docker仅以29%的速度落后2%。 按角色拆分,Docker被47%的参与Web开发的人使用,只有23%的数据科学家使用Docker。 同样,Web开发人员使用Amazon Web Services,Google App Engine,Heroku等云平台的频率是数据科学家的两倍。

比较2016年的调查结果和2017年的调查结果,Django和Flask这两个最流行的Web框架已经失去了份额。 (2016年,Django的使用率为51%,2017年为41%; 2016年的Flask使用率为40%,2017年为32%)。 同时,科学库和技术框架的使用也在增长。 2016年,Anaconda,NumPy和Matplotlib(合并)的使用率为36%; 在2017年底,NumPy,Pandas,Matplotlib,SciPy和类似项目的使用率为39%,Anaconda使用率为25%。

当被问及他们使用哪种云平台时,云使用受访者首先将AWS排在了67%。 Google App Engine,Heroku和DigitalOcean的使用要少得多。 AWS在Stack Overflow的调查中也高度评价最喜爱和最受欢迎的平台。 我们可以列出的云平台的可能回答很有限; “其他”类别收集了13%的响应,包括Linode,PythonAnywhere,OpenShift和OpenStack。

Python开发的工具和特色

当我们询问在Python开发中对于开发实践,工具和功能的使用时,最多的地方是代码自动完成,代码重构,编写单元测试以及使用Python项目的虚拟环境。 NoSQL数据库,Python分析器和代码覆盖工具是最罕用的。 这些结果与2016年的数据非常相似:

为了找出最受欢迎的编辑器和IDE,我们提出了两个问题:“您在Python开发中考虑过哪些编辑器/ IDE?” 并允许多个答案,以及一个单一答案的问题,“你当前Python开发使用的主要编辑器是什么?” 基于对这个问题的8,000多个回复,PyCharm是最流行的工具,其次是Sublime,Vim,IDLE,Atom和VS Code。

注:我们采取了大量步骤来消除偏见,并确保调查不倾向于使用任何特定的工具。 要详细了解调查方法以及用于分派调查的渠道,请参阅调查结果网站的原始数据部分。

Web开发人员在编辑器的喜好上与数据科学家略有不同。 Web开发人员非常喜欢PyCharm专业版,Sublime文本和Vim,而数据科学家显然更喜欢PyCharm社区版,Jupyter Notebook和Spyder。

当我们问道:“在Python编程中,你考虑过哪些编辑器/集成开发环境?” 我们了解到Web开发人员考虑最多的是Sublime Text(47%),其次是Vim(39%)和Atom(32%)。 科学开发人员最常考虑Jupyter Notebook(42%),其次是PyCharm社区版(39%),崇高文本(31%)和Vim(26%)。

我们还发现,大多数开发人员每天都使用他们的编辑器,大约五分之一每周使用他们的编辑器。

调查的原始数据

与Python及其社区的开源哲学一致,我们已经向公众提供了原始数据,我们欢迎进一步的分析和结论。我们打算在2018年和未来几年重复这项调查。我们的目标是让每年的调查差不多,以便完成纵向的数据分析。

在解析原始数据之前,请注意以下几点:数据是匿名的,没有个人信息或地理位置详情。此外,对所有开放式领域进行了裁剪,以防止通过逐字评论来识别任何个人受访者。为了帮助他人更好地理解调查的逻辑,我们用英语共享数据集,调查的问题和所有调查逻辑。我们使用不同的排序方法来回答选项(字母,随机,直接)。每个问题中都指定了使用答案选项的顺序。

我们很乐意了解您的发现!请在Twitter或其他提供@ jetbrains和@ThePSF的社交媒体上与#pythondevsurvey2017#标签分享。我们也乐于接受建议和反馈,以便下次改进。请在这里提出任何意见或问题。

关键要点

2017年Python开发者调查是社区的标准。一些更重要的关键点有:

  • Python 3的普及率已经达到了75%,并且在迅速增长。

  • 目前从事数据科学和web开发的Python开发者一样多,但是Python在数据科学家中的迅速增长可能很快会打破这一平衡。

  • 使用Python的每5位开发者中,有4位使用Python作为主要语言。

  • Django,NumPy,pandas和Matplotlib是Python开发人员最常用的框架和库。 Jupyter Notebook和Docker是Python使用最受欢迎的技术。 AWS是最受欢迎的云平台。

  • PyCharm,Sublime,VIM,Atom和VS Code是最常用的Python编辑器。

  • 一半使用Python作为主要语言的人也使用JavaScript和HTML / CSS。 Python也经常用于SQL,Bash / Shell,C / C ++和Java。

我们希望调查结果阐明了Python开发者社区的现状,让你纵览全局,并回答了一些问题。


英文原文:https://opensource.com/article/18/5/numbers-python-community-trends
译者:泰然



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/aL7o7ydby7
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/11838
 
540 次点击