![Python使用图 2018年python书籍_根据数字:2017/2018年Python社区趋势_第1张图片](http://img.e-com-net.com/image/info8/c00c5735b2ad469dad3fa294f6fc1d1e.jpg)
所有图片均由Python Developers Survey 2017 Results网站提供。
2018年python书籍
本文与Dmitry Filippov共同撰写。
Python正在Swift普及,并在技术新闻中引起了越来越多的关注,包括有关正在使用Python的报道, 涉及到更多的计算机工程专业的高中女生 ,并建议入门级大学计算机班教授编程语言。 此外,Stack Overflow的2018年开发人员调查发现Python是大多数人想要学习的编程语言。 在全球最大的银行中,从简单的个人网站到数据挖掘和机器学习,整个Web上都可以看到和使用Python。
是什么让Python如此特别? 谁是Python开发人员? 为什么它如此受欢迎? 为了回答这些以及许多其他重要问题,JetBrains与Python软件基金会(PSF)合作进行了一次开发人员调查,调查人员将Python用作主要语言或补充语言。 到目前为止,还没有针对Python的研究来了解各种开发人员如何使用它,哪些组件对其使用进行了补充,以及使它成为最受欢迎的语言之一。
该调查的目的是确定Python的最新趋势,并收集有关当今Python开发世界的外观的见解。 考虑到这一动机,我们着手确定:
该调查于2017年10月进行。我们将在此处汇总结果,您可以在Python Developers Survey 2017 Results网站上挖掘更多图表和原始数据。
在查看数据和见解之前,重要的是要回顾调查的方法,包括调查的分布方式以及为消除潜在偏差并确保不偏向任何特定工具,技术,图书馆或国家而采取的措施。
我们将调查发送给了几个独立的小组,包括订阅PSF邮件列表,博客,Slack,LinkedIn和Twitter的小组。 它在一些访问量最大的Python.org页面上也进行了数周的宣传,并通过“ 阅读文档”进行了宣传。 大部分回应(62%)来自Python.org上的横幅广告; 其他主要来源是PSF博客和Twitter帖子。 没有使用与产品,服务或供应商相关的渠道来防止调查结果偏向于任何特定工具或技术。
该调查受到社区的好评,答复率高于预期。 在收集期间,它收到了10,000多个回复。 在调查后的分析过程中,部分响应和重复项被过滤掉,来自150多个国家/地区的9,532名受访者被包含在我们的分析数据集中。 描述如此大样本量的最大统计误差的保守置信区间仅为1%,这意味着所有结果在统计上都是有意义的。 该调查的主要目标得以实现:我们收到了准确而可靠的数据!
我们将从最激动人心的事情开始进入Python世界:Python社区与语言及其应用程序一样多样化。
Python用户的年龄范围很广,但大多数受访者的年龄在20岁左右,四分之一在30岁左右。 有趣的是,将近五分之一的Python用户年龄在20岁以下。如果我们将Python开发人员的年龄范围与Stack Overflow在其最新调查中确定的一般开发人员年龄范围进行比较 ,则分布看起来相似,而Python调查报告的人数略多18岁以下的开发人员。这可以用许多学生在学校和大学中使用Python的事实来解释,这是一种通用的第一语言。
超过一半的受访者全职从事开发人员工作,五分之一的开发人员是数据分析师,架构师或团队负责人的两倍。 将我们的数据与Stack Overflow调查进行比较 ,我们可以发现Python开发人员比一般的开发人员全职受雇的可能性更低(52%的Python开发人员与74%的所有开发人员),并且更有可能成为自雇或自由职业者(13%的Python开发人员与9.7%的所有开发人员)。
Python调查的受访者报告了广泛的经验; 22%的人拥有不到一年的经验,相同比例的人拥有超过11年的经验,并且中间的人分布平稳。 这表明新手和经验丰富的开发人员之间保持了良好的平衡,使Python成为一种可持续的语言。
值得注意的是,平均而言,Python的新用户比例要比其他语言高得多。 根据Stack Overflow的数据 ,有30%的开发人员具有不到两年的专业经验,而Python开发人员调查则为41%。
大型开发人员小组在Python中并不常见。 在我们的调查中,有56%的Python开发人员表示他们独立进行项目开发,而40%的团队通常由2至7人组成。 大约一半的受访者在一个主要项目上工作,而少数项目则在其中,而大约四分之一的受访者一次专注于一个项目。
在2016年,JetBrains主持了一次Python开发人员调查,而没有PSF的参与。 尽管JetBrains在2016年拥有大量样本,但其调查主要是通过自己的渠道进行的,这自然吸引了PyCharm用户的较大份额-大约50%的PyCharm用户和50%的其他编辑。 为避免不可避免的偏差,2016年的调查未比较不同代码编辑器的用户群数量。 即使2016年的调查结果存在偏见,也值得比较2017年和2016年的一些调查结果。 例如,在2016年的调查中,有45%的人报告自己在自己的项目中独立工作,而有51%的人在团队中工作。 2017年调查中比率不同的原因可能是,以Python为第一语言和数据科学家的新移民数量增加了,而现在与使用Python的Web开发人员数量相当。
如上文所述,在Stack Overflow的2018年开发人员调查中 ,Python是最理想的语言(即,一个受访者最感兴趣的学习语言); 这是连续第二年获得该排名。 Python用户在最受欢迎的编程语言列表中也将其排名第三。 这些事实与Python就业市场有何关系?
即使“ Python开发人员调查”没有专门针对职位受欢迎程度,我们也可以从其他资源中了解到Python开发人员在全球范围内需要大量工作。 其中包括机器学习,数据库,数据分析,云基础架构,设计,站点可靠性/测试,Web抓取,安全性,移动开发,API等。 根据Jobs.python.org上列出的职位,机会偏向国际需求,尤其是在英国地区。
在任何主要的工作站点上搜索“ Python开发人员”都会产生数千个工作机会。 2018年3月,美国Python开发人员在美国的平均工资(基于Indeed数据)为115,835美元。 平均薪水高表明许多公司正在竞争雇用知识渊博的Python开发人员,并进一步支持Python是一种必备技能的想法。
Python在美国最好的工作-数据科学中也占有一席之地 (根据Glassdoor.com在2018年4月的数据)。 大约五分之一的数据科学工作涉及Python,包括NumPy,pandas和Matplotlib库。
五分之四的Python开发人员中有近四成说这是他们的主要语言,比JetBrains 2016年的调查中的75%增长了4%。
各种研究表明,Python开发人员的数量以及使用Python作为主要语言的开发人员的比例逐年稳定增长。 在Stack Overflow的调查中,Python的普及率已从2017年初的32%增加到年底的38.8%。 可以用Python在数据科学中Swift普及来解释这一点,因为这一部分用户的增长速度比其他用户快得多。
Python通常与其他语言结合使用:
使用Python作为主要语言的所有开发人员中,有一半也使用JavaScript。 79%的Web开发人员使用JavaScript,但参与数据分析或机器学习的人员只有39%。
对于使用Python作为辅助语言的用户,细分类略有不同,因为使用JavaScript的人较少(46%),使用C / C ++的人(42%),Java(41%)和C#(24%)更多。
为了确定最流行的Python开发类型及其交叉点,我们提出了两个类似的问题:“您将Python用于什么?” 哪些受访者可以选择多个答案,以及“您最多使用Python? 只有一个可能的答案。 结果表明,科学发展现在和Web开发一样受欢迎:一半的受访者从事数据科学项目,一半的受访者从事Web开发。
根据受访者使用Python作为主要语言还是第二语言而做出的响应也不同:使用Python作为主要语言的受访者中有54%参与了Web开发,而使用Python作为主要语言的受访者中有33%参与了Web开发。 对于数据分析,机器学习和其他类型的开发而言,差异不那么明显。
许多Python开发人员戴着很多帽子。 他们最常组合的角色是:
数据分析和机器学习的交叉是可以预期的,但是Web开发和数据分析/机器学习之间的重叠是值得注意的。
当被问及他们从事的主要开发类型时,有26%的Python用户表示Web开发远远超过了数据分析(报告的比例为18%)。
但是,如果我们将进行数据分析的18%和主要是机器学习的9%结合起来,那么我们就会知道27%的主要从事科学发展。 这意味着使用Python的Web开发人员与数据科学家一样多。
有趣的是,当JetBrains在2016年进行Python开发人员调查时,有38%的受访者确定为Web开发人员,而只有21%为科学开发人员。 这可能是Python开发人员中数据科学家Swift增长的证据。
比较使用Python作为主要语言与辅助语言的趋势,网络开发的差距最大(主要是29%,次要是15%)。 对于数据分析和机器学习而言,差异要小得多。 相反,与主要语言(8%)相比,更多的DevOps和系统管理员使用Python作为辅助语言(13%)。
Python开发人员调查中最引人入胜的问题是Python世界中Web开发人员与数据科学家的比例。 我们要求受访者估算使用Python的Web开发人员和数据科学家之间的比例。 受访者可以根据自己的经验,信仰和一般的“直觉”来回答。 因为我们明确询问了开发类型,并且样本量足够大以具有统计意义,所以我们可以将社区的看法与现实进行比较。
越来越多的受访者(57%)认为网络开发人员比数据科学家更普遍,而只有33%的受访者认为相反。
根据上一节中报告的数据(其中26%的报告Web开发和27%的报告科学开发是其主要活动),真实比例为1:1。
只有九分之一的受访者正确地猜出了这一点; 最低估了数据科学Python用户的数量。 Web开发通常被认为是Python的主要应用程序。 尽管几年前确实如此,但是Python数据科学家的数量正在Swift增长,并且已经与Web开发人员的数量相当。
我们问:“您使用哪个版本的Python最多?” Python 3占75%的领先地位,而Python 2仅用作主要的解释器,占25%。 Python 3发展Swift; 在2016年的调查中,有60%的人使用Python 2和40%的Python3。Python2的使用正在下降,因为它没有得到积极开发,没有获得新功能,并且在2020年之后将不再维护。
值得注意的是,有70%的Web开发人员正在使用Python 3,而77%的数据分析师和83%的机器学习专家都在使用Python 3。 这可能是因为许多Web开发人员在过渡到Python 3时仍必须保留旧代码,并且许多数据分析人员和机器学习专家最近才加入Python生态系统,并直接使用Python 3。
我们还询问开发人员如何安装和更新其Python安装。
70%的人从python.org或使用操作系统提供的软件包管理器(如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%的Web开发人员正在使用科学图书馆。 这证实了两个角色之间的强烈重叠。
当被问及除Python之外使用的技术时,Jupyter Notebook的排名最高,为31%,考虑到涉及数据科学的大量开发人员,这是有道理的。 Docker仅落后29%的2%。 按角色细分,大多数Web开发人员中有47%使用Docker,而数据科学家中只有23%使用Docker。 同样,Web开发人员使用Amazon Web Services,Google App Engine,Heroku等云平台的频率是数据科学家的两倍。
将2016年的调查结果与2017年的调查结果进行比较,两种最受欢迎的Web框架Django和Flask失去了市场份额。 (Django在2016年使用了51%,2017年使用了41%; Flask在2016年使用了40%,2017年使用了32%)。 同时,对科学图书馆和技术框架的使用也在增长。 2016年,Anaconda,NumPy和Matplotlib(合并)的使用率为36%; 截至2017年底,使用NumPy,熊猫,Matplotlib,SciPy等的占39%,使用Python的占25%。
当被问及他们使用哪种云平台时,使用云的受访者将AWS排名第一,达到67%。 Google App Engine,Heroku和DigitalOcean的使用频率大大降低。 在Stack Overflow的调查中,AWS在最受欢迎和最受欢迎的平台上也名列前茅 。 我们只能列出可以作为潜在答案的云平台数量; “其他”类别收集了13%的响应,包括Linode,PythonAnywhere,OpenShift和OpenStack。
当我们询问在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开发中使用哪些编辑器/ IDE?” 我们了解到,网络开发人员最常考虑使用Sublime Text(占47%),其次是Vim(占39%)和Atom(占32%)。 科学开发人员最常考虑使用Jupyter Notebook(42%),其次是PyCharm社区版(39%),Sublime Text(31%)和Vim(26%)。
我们还发现,大多数开发人员每天都使用他们的编辑器,大约五分之一的人每周使用他们的编辑器。
与Python及其社区的开源哲学一致,我们已将原始数据提供给公众,我们欢迎其他分析和结论。 我们打算在2018年及以后的年份重复该调查。 我们的目标是使调查每年保持相似,以便可以进行纵向数据分析。
在解剖原始数据之前,请注意以下几点:数据已匿名,没有个人信息或地理位置详细信息。 此外,所有开放式字段均已删除,以防止通过逐字逐句的注释识别任何受访者。 为了帮助其他人更好地理解调查的逻辑,我们以英语共享数据集,调查问题以及所有调查逻辑。 我们对答案选项使用了不同的排序方法(字母,随机,直接)。 每个问题中都指定了使用答案选项的顺序。
我们很高兴得知您的发现! 请在Twitter或其他社交媒体上分享它们,并使用#pythondevsurvey2017#标签提及@jetbrains和@ThePSF 。 我们也欢迎您提出建议和反馈,以便下次改进调查。 如有任何评论或问题,请随时在此处打开问题。
2017年Python开发人员调查是社区的基准。 一些更重要的要点包括:
我们希望调查结果能阐明Python开发人员社区的当前状态,了解全局并回答一些问题。
要了解有关Python趋势以及雇主正在寻找的更多信息, 请在PyCon Cleveland 2018上参加作者的演讲:数字:2017 / 2018r中的Python社区趋势 。
翻译自: https://opensource.com/article/18/5/numbers-python-community-trends
2018年python书籍