文|鋅刻度 陳鄧新
編輯|孟會(huì)緣
Java,垂垂老矣。
日前,被譽(yù)為編程語(yǔ)言界“江湖百曉生”的TIOBE發(fā)布了2022年12月的編程語(yǔ)言排行榜,Python、C語(yǔ)言與C++位列榜單前三,而Java僅排名第四。
這是2001年TIOBE出道以來(lái),Java首次與前三無(wú)緣。
畢竟,那些年Java雙手插兜,不知什么是對(duì)手。
一時(shí)間,編程語(yǔ)言優(yōu)劣之爭(zhēng)再起。
那么,昔日常年霸榜的Java,為何走上了下坡路?英雄遲暮的Java,如今尚能飯否?Java的基本盤依然龐大,仍有重返巔峰的資本?
趕上好時(shí)代,也成為時(shí)代的“眼淚”
人多了就有江湖,有江湖的地方就有紛爭(zhēng)。
據(jù)公開信息顯示,編程語(yǔ)言的數(shù)量繁多,僅GitHub上托管的就超過(guò)300種,但主流也就幾十來(lái)種。
這其中,Java被譽(yù)為“常青樹”,歷經(jīng)風(fēng)雨而不倒。
想當(dāng)年,C語(yǔ)言以及其一脈相承的C++,成為桌面時(shí)代的技術(shù)底座,無(wú)論操作系統(tǒng),或是游戲引擎,還是桌面應(yīng)用,背后都有它們的身影。
用一統(tǒng)江湖來(lái)形容,也不為過(guò)。
然而,江湖人才輩出,不服“武林盟主”的大有人在,Java就是其中一個(gè)。
1995年,初出茅廬的Java抓住網(wǎng)頁(yè)粗糙的痛點(diǎn),從而一鳴驚人,成為江湖上冉冉升起的新星,甚至進(jìn)入了微軟的視線。
彼時(shí),比爾蓋茨曾感嘆:“Java是迄今為止設(shè)計(jì)的最好得語(yǔ)言。”
然而好景不長(zhǎng),適合Web的編程語(yǔ)言不斷冒出,Java并非唯一選擇。
好在,Java沒(méi)有氣餒,在服務(wù)器端上找到了生存的土壤,成為網(wǎng)站后臺(tái)處理數(shù)據(jù)的好幫手,這之后不斷攻城略地,成為江湖上一支不可忽視的重要?jiǎng)萘Α?/p>
一名業(yè)內(nèi)人士告訴鋅刻度:“服務(wù)器端原本是C/C++的地盤,風(fēng)刮不進(jìn)雨水透不過(guò),但當(dāng)網(wǎng)頁(yè)從靜態(tài)走向動(dòng)態(tài)之后,就應(yīng)付不過(guò)來(lái)了,而Java在后臺(tái)響應(yīng)復(fù)雜的網(wǎng)站表現(xiàn)得更好。”
一言以蔽之,Java趕上了好時(shí)代。
如若不是Web大潮到來(lái),網(wǎng)站如雨后春筍般冒出,Java就沒(méi)有那么大的用武之地,也談不上后來(lái)與C/C++分庭抗禮。
Java首次與前三無(wú)緣
盡管如此,Java登上神壇還要等到移動(dòng)時(shí)代。
隨著智能手機(jī)的普及,移動(dòng)互聯(lián)網(wǎng)起勢(shì),逐漸成為人們的“剛需”,Java也跟著扶搖直上九萬(wàn)里,借助Android打開了一個(gè)新世界的“大門”。
關(guān)于此,TIOBE的排名可為佐證。
TIOBE排行榜反映的是某個(gè)編程語(yǔ)言的熱門程度,2001年至2019年,Java一直是TOP 1的???,中間偶有失落,但很快就回歸“王座”。
這之后,Java的統(tǒng)治力大不如前,各路勢(shì)力躍躍欲試。
事實(shí)上,Java多年以來(lái)不乏挑戰(zhàn)者,C/C++一直虎視眈眈,Python、JavaScript、PHP等老牌玩家針鋒相對(duì),Go、Ruby等新銳力量“野心勃勃”。
萬(wàn)萬(wàn)沒(méi)想到,最后的“新王”竟然是Python。
Python誕生于1990年,是一款比Java還老的編程語(yǔ)言,不經(jīng)意間從一棵小樹苗默默長(zhǎng)成為參天大樹。
正應(yīng)了那句老話,老驥伏櫪志在千里。
AI起勢(shì),“新王”上位
對(duì)于Java的“衰敗”,張文策深有體會(huì)。
畢業(yè)于2008年的張文策,并非計(jì)算機(jī)專業(yè)出身,而是與幾個(gè)要好的同學(xué)一道參加了Java培訓(xùn)班,才半途入行。
“學(xué)這個(gè),就圖可以多賺錢,沒(méi)別的意思?!睆埼牟吒嬖V鋅刻度迄今對(duì)培訓(xùn)班仍有成見,“千萬(wàn)不要信老師說(shuō)的包就業(yè),純粹是一個(gè)文字游戲,包就業(yè)=包推薦就業(yè),這中間的差別大了去了,嘿嘿!”
張文策的Java之旅并不順利,多數(shù)公司壓根沒(méi)考慮這種速成品,所幸彼時(shí)需求旺盛,最終在一家工作室找到了容身之地。
盡管如此,張文策并未氣餒。
在工作室積攢了一年多經(jīng)驗(yàn)之后,張文策開啟了跳槽模式,輾轉(zhuǎn)多家公司,在Java上也有了一定的造詣之后,也有了一個(gè)體面的offer。
然而,張文策更憂慮了。
想再進(jìn)一步,就勢(shì)必進(jìn)階為高級(jí)Java工程師,但這個(gè)進(jìn)階頗為不易,除非是真的熱愛(ài)代碼,否則僅沖著工資去,難上加難。
對(duì)此,張文策也心知肚明:“Java都卷成麻花了,大多干的都不是Rocket Science,頂多算合格的螺絲釘?!?/p>
更為糟糕的是,甲骨文“作死”。
2009年,甲骨文收購(gòu)Sun,擁有了Java版權(quán),次年與谷歌開啟了曠日持久的訴訟,直到2021年才塵埃落定。
甲骨文法務(wù)總管Dorian Daley 曾聲明:“谷歌偷走了 Java 技術(shù),并且在長(zhǎng)達(dá)十年的時(shí)間里以一個(gè)壟斷者的姿態(tài)訴諸法律?!?/p>
張文策沒(méi)有等待甲骨文敗訴,心中就有了一個(gè)判斷:“誰(shuí)敢用Java,誰(shuí)就可能招惹甲骨文,那可是出了名的專利流氓,逮誰(shuí)咬誰(shuí),去Java化是大勢(shì)所趨?!?/p>
Java 11 的應(yīng)用占比第一
因而,2018年之后,張文策選擇擁抱Python,投身炙手可熱的AI賽道。
Forrester副總裁兼首席分析師Jeff Hammond曾表示:“Python已被證明對(duì)從事人工智能或機(jī)器學(xué)習(xí)類型的人非常非常有用!”
眼下,AI逐步起勢(shì),從夢(mèng)想照進(jìn)現(xiàn)實(shí),賦能千行百業(yè)成為萬(wàn)物互聯(lián)時(shí)代的基石。
譬如,當(dāng)下紅得發(fā)紫的AI繪畫,從涂鴉走向了藝術(shù)創(chuàng)作,上演了一出AI與人類同臺(tái)競(jìng)技的好戲,令相關(guān)從業(yè)者倍感憂慮。
此背景下,Python超越Java,也是順理成章的事情。
“Java是被互聯(lián)網(wǎng)炒起來(lái)的,Python是被AI炒起來(lái)的,要永遠(yuǎn)站到勝利者這一邊?!睆埼牟叻Q。
Java是老了,又不是不能打了?
與張文策不同,魏世杰對(duì)Java仍有信心。
作為大齡一線coder,魏世杰對(duì)唱衰Java之聲已感到疲憊:每隔一段時(shí)間,都有人冒出來(lái)質(zhì)疑Java,是不是不行了?真的要涼了?到底啥時(shí)候死?已經(jīng)過(guò)時(shí)了嗎?是否真的即將被取代?
“說(shuō)真的,有沒(méi)有點(diǎn)新詞,翻來(lái)覆去還是那一套,早就聽膩了?!蔽菏澜苋缡钦f(shuō)。
魏世杰告訴鋅刻度,TIOBE排名指的是熱度而非市場(chǎng)份額,Java的基本盤依然很扎實(shí),擁躉者依然很壯觀。
據(jù)Jetbrains的數(shù)據(jù)顯示,2020年全球?qū)I(yè)Java程序員約為520萬(wàn)人,算上主要使用其他語(yǔ)言但也使用Java的程序員約為680萬(wàn)人,其中51%在中國(guó)。
圖源:Jetbrains
而據(jù)GitHub發(fā)布的《Octoverse 2021年度報(bào)告》顯示,2020年全球程序員為5600萬(wàn),其中中國(guó)共有程序員652萬(wàn)。
以此推算,近半數(shù)的中國(guó)程序員與Java有不解之緣。
“Java是老了,又不是不能打了,現(xiàn)在都更新到j(luò)dk18了?!蔽菏澜苷J(rèn)為老語(yǔ)言Java版本不斷更新、體驗(yàn)也在不斷改善,與Python一樣有生命力,“不要聽外行胡說(shuō)八道,看看招聘就知道了,市場(chǎng)不會(huì)騙人的?!?/p>
據(jù)職友集的數(shù)據(jù)顯示,2022年全國(guó)Java程序員的月平均工資是19.8K,較2021年下降了3%;其中,拿20K~30K工資的占比最多,達(dá)27.7%。
以上可見,Java程序員的日子雖有所下滑,但整體還過(guò)得去。
魏世杰進(jìn)一步表示:“編程語(yǔ)言說(shuō)白了就是一個(gè)生產(chǎn)工具,只有效率之分、場(chǎng)景之分,沒(méi)有高下之分,這就好比外賣不會(huì)關(guān)心騎哪個(gè)牌子的車,只關(guān)心一天到手賺多少?!?/p>
總而言之,桌面時(shí)代成就了C/C++,移動(dòng)時(shí)代成就了Java,AI時(shí)代成就了Python,一個(gè)時(shí)代有一個(gè)時(shí)代的主題。
唯一不變的是,程序員永遠(yuǎn)不過(guò)時(shí)。
(應(yīng)受訪者要求,文中張文策、魏世杰皆為化名)