技术人,都非常关注技术流行趋势。
那么当下,全球什么技术栈,什么研发工具最流行呢?
stackoverflow在23年底做了一个全球调研,涵盖编程语言,数据库,研发工具,IDE,AI辅助工具.... 等多方面。
让我们一起看看:我们是否在潮头?中外又有什么差异,值得我们反思与借鉴的呢?
第一项:开发语言(多选)
各种语言的使用场景有所不同,抽取出后端开发的常用语言:
Python,45.32%
Java,30.49%
C#,29.16%
C++,20.21%
PHP,19.03%
C,16.66%
go,14.32%
而大家问问自己的体感,是这个情况吗?
为什么国外C#用得多,而go相对较少?而国内正好反过来呢?
第二项:数据库(多选)
各种数据库的使用场景有所不同(SQLite,Redis,ES),抽取出后端固化存储的数据库:
PostgreSQL:49.09%
MySQL:40.59%
SQL-Server:27.34%
MongoDB:25.66%
MariaDB:17.69%
Dynamodb:10.31%
Oracle:10.06%
社区调研中,PostgreSQL超越MySQL成为全球最流行的数据库!
画外音,更权威的DB-Engines的排名为:
Oracle > MySQL > SQL-Server > PG
这里面,能看出一些国内外数据库使用的差异:
其一,国内外,开源与闭源的比例的差异。
从全球统计数据来看,闭源商业数据库 SQL-Server, Oracle 使用比例并不低;但是在国内,闭源商业数据库的使用,却没有这么高的比例,原因是什么呢?
其二,国内外,开源趋势的差异。
PostgreSQL, MongoDB, MariaDB, Dynamodb… 等后起之秀,在中国几乎没有掀起什么风浪,国内仍是MySQL的天下,原因又是什么呢?
其三,对开源贡献的差异。
咱们的产品,排名最高的是:
TiDB:0.19%,排名32位
画外音:国内声音很大的OceanBase,PolarDB等产品都没见影子。
我们拥有全球最多的开发者、工程师、架构师、科学家、研究员... 然而,我们的科技创新竞争力却… 为什么会有这样的差距?
第三项:包管理,依赖管理,打包工具(多选)
这里面,能看出一些国内外工具使用的差异:
其一,容器化程度差异。
从全球统计数据来看,Docker与K8s,基本上已经是标配,但国内的覆盖率似乎没有这么高。容器化确实是降本增效的利器,为什么大家的系统都迁移不动呢?
其二,Python流行度。
pip的排名如此靠前,比Make和Maven都高出一大截,与开发语言模块调研的结论是一致。为什么国外Python比其他后端语言更受欢迎呢?
画外音:Make的比重超过Maven我是没想到的。
第四项:IDE(多选)
VS code:74.09%
VS:28.74%
IntelliJ IDEA:28.06%
与大家预想的一样吗?
国内外的差异在于:居然24.49%的人使用Notepad,22.59%的人使用Vim开发程序,这个比例应该是远超国人的吧?
画外音:
1. 没有看到Vim与emacs之争,emacs退出历史舞台了吗?
2. 我当时用Source Insight与Vim写C++,用Notepad写PHP。为什么?我的“小师傅”用这几个工具。
第五项:AI辅助工具(多选)
在国外,工程师几乎100%都用上AI辅助工具了,且其中83%的工程师正用着ChatGPT!兄弟姐妹们,你们用着ChatGPT吗,难道不自惭形秽吗?
第六项:AI编程辅助工具
在国外,56%的工程师都用上Copilot辅助编程了!兄弟姐妹们,你们用着Copilot吗,难道不自惭形秽吗?
今后,淘汰我们的可不是AI,而是那些用着AI工具的其他工程师!
第七项:文档管理与异步协同(多选)
Jira,遥遥领先
confluence,屈居第二
Markdown File,稳居第三
Trello与Notion紧随其后
画外音:wiki大家都不用了吗?
对比国内,文档有什么用,还要Markdown File?那更不可能了。即使有文档,也只写一次,接口与文档,是不太可能对的上的。出了问题怎么办?看代码呀!
为什么国内的工程师如此不重视文档?我是这么考虑的:
其一,习惯。
看文档,浪费我自己的时间,又麻烦。
问别人,我更方便。打搅别人?我才不管。
长此以往,写了文档也没人看,谁还写文档?
其二,项目压力。
开发周期这么紧张,代码都写不完,还写文档?
当文档成为额外的负担,谁还写?
其三,文化。
我只是暂时在这个模块,这个岗位,这个公司。混口饭吃而已,过一段时间就跳槽了。没有文档,我举足轻重,现在出了问题,只有我能搞定。传承?是给自己立竞争对手。未来出了问题?看代码去呀,与我无关。
结束语
看完stackoverflow的2023年度流行技术栈与研发工具调研结果,感触良多:
为何国外C#,SQL-Server,Oracle用的多?
咱们对开源的贡献,为何远低于国外?
容器化,先进又好用,为什么难以推进,使用率远低于国外?
手搓代码的工程师比例,为何远低于国外?
GPT与Copilot的使用比例,为何远低于国外?
对文档的重视程度,为何远低于国外?
...
或许是原因,也或许是结果...
相关文章:
调研:
你写文档吗?维护文档吗?
你用ChatGPT与Copilot吗?为何不用?
这些问题,你怎么看?