近日,Jetbrains 发布了《2019 年开发人员生态系统现状》报告。报告显示:Java 是***的主要编程语言,JavaScript 是最常用的整体编程语言,Go 是最有前途的编程语言,Python 是学习最多的编程语言。该报告涉及约 7000 名开发人员在编程语言、开发项目、移动设备与工具使用等方面的数据。其中,中高级职称的受访对象占 78%。以下是我们从报告中得出的主要结论:
编程语言
在过去一年里,***的编程语言是 Java 和 Python。其后是 C# 和 JavaScript,两者不相仲伯。但如果结果按示例大小标准化,那么 C# 是***的语言。
有一些语言主要起“辅助”作用,包括 HTML、SQL 和 Shell 脚本语言。很多软件开发人员练习过这些辅助语言,但很少有人将它们作为主要语言。例如,56% 的人练习过 SQL,但只有 19% 的人称它为主要语言,仅 1.5% 的人将它作为***语言。从另一方面看,Java 是独占鳌头的语言,其用户中有 44% 只使用或首先使用 Java。其后是 JavaScript,份额“仅有” 17%。
Java 是最主流的编程语言。虽然 Java 10 和 11 日趋流行,但 Java 8 仍是使用最多的版本,使用者占比高达 83%,其次是 Java 11 ,占比 22%。
JavaScript 是最常用的整体编程语言。58% 的受访者使用 React 作为 JavaScript 框架,其次是 Express 、Vue.js 、React Native 等等。其中,Vue.js 的流行程度逐年增长。自去年以来,份额已达到 11%,几乎是 2017 年的一倍。在编辑器方面,44% 的 JavaScript 开发人员经常使用 TypeScript。2019 年,1/4 的开发人员在使用它,而去年这一比例为 17%。
Go 是最有前途的编程语言。虽然 Go 是一种年轻的语言,但其用户相对成熟,它的使用份额已从 2017 年的 8% 大幅跃升到今年的 18%,多达 13% 的开发人员愿意采用或迁移到 Go 语言。此外,多数人使用单个全局 GOPATH。在同时编辑多个项目的开发者中,甚至有 2/3 的人仍不倾向于每个项目使用一个 GOPATH。虽然最近才出现 Go 模块,但 40% 的 Go 开发人员已经在使用它,还有 17% 的人希望迁移过来。
Python 是学习最多的语言。27% 的受访对象在过去一年中开始或仍在持续学习 Python。在使用版本上,由于 9/10 的开发人员宣布将在 2019 年使用 Python 3,Python 2 正在迅速减少。去年仍有 1/4 的人使用 Python 2。而且,有趣的是,大多数 C++ 开发人员声称 Python 是其最喜欢的语言。Web 开发和数据科学家仍是 Python 开发的两大主力。因为据称 Python 是数据科学的***工具之一,所以涉及数据分析和机器学习的 Python 开发人员数量如此众多毫不令人吃惊。数据分析比 Web 开发更受欢迎,机器学习则在今年超过 DevOps。除了 Python 以外,Django 和 Flask 目前仍是***的 Python web 框架。
移动设备与工具
2/3 的移动开发人员使用本地工具开发用于移动操作系统的应用,约 1/2 的开发人员使用跨平台技术或框架,且 React Native 、Flutter、Cordova 的使用者较多。
89% 的开发人员在某种程度上自定义其 IDE。多数开发人员投入“暗黑”的阵营,83% 的人更喜欢暗色调主题的 IDE 编辑器。
数据库
对大多数软件开发者而言,其工作总会以这样或那样的方式涉及数据库,但只有极少数从业者主要关注数据库。报告显示,56% 的受访者表示自己使用 SQL,但只有 3% 专门将 SQL 作为主要语言。
在数据库上,语言和数据库的配合使用上存在一定偏好。 例如,20% 的 Scala 开发人员使用 Apache Cassandra,而 70% 的 C# 开发人员使用 MS SQL Server。 MongoDB 在 TypeScript 开发人员 (45%) 和 Go 开发人员 (41%) 中非常流行。9/10 的 PHP 开发人员使用 MySQL,而一半的人使用 MariaDB。最 “SQL 的”数据库是 Oracle、MS SQL Server 和 ClickHouse,因为它们约 1/3 的用户以 SQL 作为其主要语言。70% 的受访对象对他们的数据库表示满意,不打算迁移或采用其他的。
连续两年,人们可以看到,使用 MySQL Workbench(从 30% 降至 24%)、phpMyAdmin(从 27% 降至 21%)以及命令行(从 27% 降至 24%)来管理数据库的受欢迎程度呈下降趋势。
DevOps
关于开放运营,1/5 的受访者都深入参与基础架构开发。其中 15% 的从业者表示脚本语言 (bash / shell / powershell) 是其主要编程语言。
报告显示,配置管理工具 Chef 和 Puppet 今年的市场份额差不多,但它们加起来占据的市场份额仍略低于 Ansible。在使用服务器模板工具的开发者中,90% 使用 Docker。使用 Docker 的调查对象中有 74% 也在使用 Docker compose。
最常用的工具集是 Docker + Terraform + Ansible。在组合使用基础架构配置、服务器模板和配置管理的用户中,有 27% 的人使用它们。但使用 Docker 的人数是其三倍(没有配置管理,也不配置基础设施)。
Kubernetes 使用情况飞速增长,在 2017 年 份额 16% 的基础上增加了 13% 以上。
私有服务器仍略超过云服务器。但如果深入了解,人们会发现很多用户两者都使用。他们更倾向于将云服务器作为主要托管平台。
关于“在哪里托管数据库和 / 或服务和 / 或贵公司开发的应用程序”的答案,***名并不令人感到意外。Google Cloud Platform 的份额超过了 Kubernetes 用户(一般是 41% 对比 28%),这意味着 Kubernetes 的增长可能会推动 GCP 的流行。