偶然想起,大名鼎鼎的 stackoverflow 报告一直没见过原版,关于它的信息都是二手的。虽然在这个时间点(2024 年过半)有些尴尬,但是还是有读一读的热情。报告很长,我就节选一些我感兴趣的部分做个摘录,并结合自己的印象来谈谈感受。

Developer profile

这部分是开发者画像。绝大部分调查者来自欧美+印度。其中 5 年以上经验的人占了绝大多数。角色这块,依旧是全栈、后端、前端占了前三甲。老外的全栈真的普遍,这点和国内真是显著不同。

Technology

编程语言

职业程序员,HTML/CSS、Javascript、SQL 是绝对统治级别的前三,因为有了这三样,绝大部分的网站都能开发。全栈几乎可以和这三个划等号。4-6 位也比较有意思,分别是 python、typescript、shell。Python 能处在这个位置,除了它自身的简单易用,也是它作为很多人的入门语言形成的惯性,以及它在数据分析、机器学习领域的不可替代性造成的。Typescript 的使用率能和 Python 并驾齐驱,倒是我没有想到的。我想这是因为 JavaScript 语言的流行性极大带动了 ts 的发展。最后的 shell,毫无疑问它的场景在于服务器运维,也是全栈开发者工作中必须面对的场景。未来我打算学的 Golang, 2023 年的排名在 12,落后于 C。

数据库

数据库和我现在做的工作高度相关,感受多一些。网上对数据库的分类有很多,比如 oltp 和 olap。但是我这边的分类的话,更倾向于行数据库、列数据库和混合型。当然,redis 这种内存数据库不在这个范围内。正是因为存储方式的不同,导致不同数据库产品有不同的应用场景。比如最流行的 pgsql 和 mysql,都是行存储,因此属于 oltp。clickhouse 为列存储,故为 olap。近些年更有 tidb 这种高性能数据库,可以在两种存储方式之间切换,所以既可以当作业务数据库,也可以当作分析数据库。

其实如果紧紧围绕业务和分析两大需求,还有别的解决方案。比如前司,pgsql 读写分离,一个 master 配上三个 slave,大屏这种纯分析展示的场景,就从只读数据库去读取。不过仅仅能达到不影响主业务的程度,复杂查询对数据库的压力大,速度也慢。

上面说的其实都属于基于 SQL 查询语言的表格类型数据库。分类上与之平级的还有 nosql 数据库。其下的数据库一般和情景紧密绑定,比如 redis 在高并发、elasticsearch 在日志检索、mongodb 在松散数据存储。属于是有了这些需求,才会去用。

云平台

AWS 是遥遥领先第二的存在。AWS 几乎也成了云平台标准的制定者。比如 S3 存储,都是 AWS 最开始制定的。看来,以后想要出海工作,AWS 也是必须要接触熟悉的。

编程框架

前五名(React/Nodejs/Jquery/Angular/Express)全是基于 JavaScript,这也应证了 javascript 最流行的结果。这里面,前端框架独占其三,这说明了,前端生态圈的旺盛。

后记

这份报告比较全面,远不止上述内容。如果要阅读全文,这里给出全文链接:

2023 Devoloper Surveyhttps://survey.stackoverflow.co/2023/#methodology