编者按
本文翻译整理自最新发布的 Python开发者调查。
该调查由Python基金会与JetBrains于2019年秋季发起,调查对象来自150个不同国家的24000多名Python开发者。
此调查结果可以作为学习、求职及了解Python语言生态的参考,希望对你有帮助。
以下是该调查的一些基本情况(主要取各指标前三项或份额比重大于10%的项)
Python基本使用情况
Python作为主要语言及次要语言的比例
- 作为主要语言:84%
- 作为次要语言:16%
与Python一起使用的其他语言(取前三位)
- 主要:JavaScript、Bash/Shell、HTML/CSS
- 次要:JavaScript、C/C++、HTML/CSS
- 综合:JavaScript、Bash/Shell、HTML/CSS
使用Python从事Web开发及数据科学的开发者对其他语言的使用情况
- 数据科学:SQL、Bash/Shell、JavaScript、C/C++
- Web开发:JavaScript、HTML、SQL、Bash/Shell
Python使用场景
使用Python的主要场合
- 工作及个人使用:58%
- 个人、教育及业余项目:21%
- 工作:21%
Python的主要使用场景
- 主要:数据分析、Web开发、机器学习
- 次要:数据分析、DevOps/系统管理/自动化脚本
- 综合:数据分析、Web开发、DevOps/系统管理/自动化脚本
最常使用Python的场景
- 主要:Web开发、数据分析、机器学习
- 次要:DevOps/系统管理/自动化脚本、数据分析、Web开发
- 综合:Web开发、数据分析、机器学习
Python各版本使用情况
Python3 vs Python2
- Python3:90%
- Python2:10%
Python各版本对应场景分布:
主要场景中使用比例(Python3 :Python2)
- 数据分析:61% vs 42%
- Web开发:51% vs 45%
- 机器学习:42% vs 20%
Python3 各版本分布
- 3.7:53%
- 3.6:26%
- 3.8:11%
- 3.5:4%
- 3.9:3%
- 其他:3%
安装及升级途径
- 操作系统自带:35%(比如apt-get,yum,homebrew等)
- Python.org:31%
- Anaconda:20%
- Docker:17%
- pyenv:15%
Python虚拟环境
- Virtualenv:56%
- Docker:33%
- Conda: 23%
- Pipenv:21%
主要框架及库
Web框架
- Flask:48%
- Django:44%
- Tornado:5%
数据科学框架及库
- NumPy:63%
- Pandas:55%
- Matplotlib:46%
- SciPy:36%
- SciKit-Learn:33%
- TensorFlow:26%
- Keras:20%
- Seaborn:17%
- PyTorch:15%
- NLTK:14%
大数据工具
- Apache Spark: 13%
- Apache Kafka: 9%
- Apache Hadoop/MapReduce: 7%
其他框架及库
- Requests:56%
- Pillow:32%
- Asyncio:21%
- Scrapy:17%
- Tkinter:17%
- PyQT:15%
- Six:13%
- aiohttp:12%
单元测试框架
- pytest:49%
- unittest:30%
- mock:15%
其他技术及云设施使用情况
ORM
- SQLAlchemy:36%
- Django ORM:32%
- SQLObject:4%
数据库
- PostgreSQL:47%
- MySQL:39%
- SQLite:39%
- MongoDB:20%
- Redis:20%
- MS SQL Server:10%
云平台使用
- AWS:55%
- 谷歌云:33%
- DigitalOcean: 22%
- Heroku:20%
- 微软Azure:19%
- PythonAnywhere:12%
如何在云端运行Python代码(生产环境)
- 使用容器:47%
- 使用虚拟机:46%
- 使用PaaS服务:25%
- Serverless:24%
开发环境
- 本地使用virtualenv:56%
- 使用容器:41%
- 使用虚拟机:22%
- 使用本地系统自带解释器:18%
- 使用远程开发环境:17%
开发工具
操作系统
- Linux:68%
- Windows:48%
- MacOS:29%
持续集成系统(CI)
- Jenkins/Hudson:24%
- Gitlab CI:23%
- Travis CI:15%
配置管理工具
- Ansible:20%
- 个性化解决方案:9%
- Puppet:5%
编辑器及IDE
- 主要:PyCharm(33%)、VS Code(24%)、Vim(9%)
- 数据科学:PyCharm(28)、VS Code(23%)、Jupyter Notebook(13%)
- Web开发:PyCharm(42%)、VS Code(26%)、Vim(10%)
使用IDE的主要特性
- 使用版本管理
- 代码refactoring
- 使用自动补全
- 使用Python虚拟环境
- 使用静态检查工具
- 使用SQL数据库
- 编写测试代码
- 使用调试器
- 使用问题跟踪
- 在远程机器上运行、调试及编辑代码
- 使用可选的类型提示
- 使用代码覆盖检查
人才市场
工作状态
- 全职:67%
- 学生:10%
- 在职学生:6%
- 自主创业:6%
- 自由职业者:5%
职位
- 开发者/程序员:73%
- Team Lead:19%
- 数据分析:19%
- 架构师:18%
使用Python的经验
- 3-5年:30%
- 1-2年:23%
- 少于1年:21%
- 6-10年:17%
- 11年以上:10%
开发工作经验
- 少于1年:29%
- 1-2年:20%
- 3-5年:20%
- 11年以上:17%
- 6-10年:14%
团队工作 vs 独立工作
- 在团队中工作:53%
- 独立为自己的项目工作:44%
- 咨询及培训:4%
在多个项目工作的情况
- 在多个项目中工作:45%
- 在一个项目或者几个业余项目:40%
- 只为一个项目工作:15%
团队大小
- 2-7人:75%
- 8-12人:17%
- 13-20人:5%
- 21-40人:2%
- 多余40人:2%
公司规模
- 51-500人:24%
- 11-50人:19%
- 多余5000人:18%
- 2-10人:13%
- 1001-5000人:10%
公司所处行业
- 信息技术/软件开发:42%
- 科学:7%
- 教育/培训:6%
目标行业
- 信息技术/软件开发:45%
- 会计/财务/保险:4%
- 销售/分销/商业拓展:4%
年龄分布
- 21-29岁:42%
- 30-39岁:32%
- 40-49岁:12%
- 18-20岁:7%
- 50-59岁:5%
- 60岁以上:2%
"一个谈论技术话题及生活方式的地方"