技術人,都非常關注科技流行趨勢。
那麼當下,全球什麼技術棧,什麼研發工具最流行呢? 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的使用比例,為何遠低於國外?對文檔的重視程度,為何遠低於國外?