Java,垂垂老矣。
日前,被誉为编程语言界“江湖百晓生”的TIOBE发布了2022年12月的编程语言排行榜,Python、C语言与C++位列榜单前三,而Java仅排名第四。
这是2001年TIOBE出道以来,Java首次与前三无缘。
毕竟,那些年Java双手插兜,不知什么是对手。
一时间,编程语言优劣之争再起。
那么,昔日常年霸榜的Java,为何走上了下坡路?英雄迟暮的Java,如今尚能饭否?Java的基本盘依然庞大,仍有重返*的资本?
赶上好时代,也成为时代的“眼泪”
人多了就有江湖,有江湖的地方就有纷争。
据公开信息显示,编程语言的数量繁多,仅GitHub上托管的就超过300种,但主流也就几十来种。
这其中,Java被誉为“常青树”,历经风雨而不倒。
想当年,C语言以及其一脉相承的C++,成为桌面时代的技术底座,无论操作系统,或是游戏引擎,还是桌面应用,背后都有它们的身影。
用一统江湖来形容,也不为过。
然而,江湖人才辈出,不服“武林盟主”的大有人在,Java就是其中一个。
1995年,初出茅庐的Java抓住网页粗糙的痛点,从而一鸣惊人,成为江湖上冉冉升起的新星,甚至进入了微软的视线。
彼时,比尔盖茨曾感叹:“Java是迄今为止设计的*得语言。”
然而好景不长,适合Web的编程语言不断冒出,Java并非*选择。
好在,Java没有气馁,在服务器端上找到了生存的土壤,成为网站后台处理数据的好帮手,这之后不断攻城略地,成为江湖上一支不可忽视的重要势力。
一名业内人士告诉锌刻度:“服务器端原本是C/C++的地盘,风刮不进雨水透不过,但当网页从静态走向动态之后,就应付不过来了,而Java在后台响应复杂的网站表现得更好。”
一言以蔽之,Java赶上了好时代。
如若不是Web大潮到来,网站如雨后春笋般冒出,Java就没有那么大的用武之地,也谈不上后来与C/C++分庭抗礼。
Java首次与前三无缘
尽管如此,Java登上神坛还要等到移动时代。
随着智能手机的普及,移动互联网起势,逐渐成为人们的“刚需”,Java也跟着扶摇直上九万里,借助Android打开了一个新世界的“大门”。
关于此,TIOBE的排名可为佐证。
TIOBE排行榜反映的是某个编程语言的热门程度,2001年至2019年,Java一直是TOP 1的常客,中间偶有失落,但很快就回归“王座”。
这之后,Java的统治力大不如前,各路势力跃跃欲试。
事实上,Java多年以来不乏挑战者,C/C++一直虎视眈眈,Python、JavaScript、PHP等老牌玩家针锋相对,Go、Ruby等新锐力量“野心勃勃”。
万万没想到,最后的“新王”竟然是Python。
Python诞生于1990年,是一款比Java还老的编程语言,不经意间从一棵小树苗默默长成为参天大树。
正应了那句老话,老骥伏枥志在千里。
AI起势,“新王”上位
对于Java的“衰败”,张文策深有体会。
毕业于2008年的张文策,并非计算机专业出身,而是与几个要好的同学一道参加了Java培训班,才半途入行。
“学这个,就图可以多赚钱,没别的意思。”张文策告诉锌刻度迄今对培训班仍有成见,“千万不要信老师说的包就业,纯粹是一个文字游戏,包就业=包推荐就业,这中间的差别大了去了,嘿嘿!”
张文策的Java之旅并不顺利,多数公司压根没考虑这种速成品,所幸彼时需求旺盛,最终在一家工作室找到了容身之地。
尽管如此,张文策并未气馁。
在工作室积攒了一年多经验之后,张文策开启了跳槽模式,辗转多家公司,在Java上也有了一定的造诣之后,也有了一个体面的offer。
然而,张文策更忧虑了。
想再进一步,就势必进阶为高级Java工程师,但这个进阶颇为不易,除非是真的热爱代码,否则仅冲着工资去,难上加难。
对此,张文策也心知肚明:“Java都卷成麻花了,大多干的都不是Rocket Science,顶多算合格的螺丝钉。”
更为糟糕的是,甲骨文“作死”。
2009年,甲骨文收购Sun,拥有了Java版权,次年与谷歌开启了旷日持久的诉讼,直到2021年才尘埃落定。
甲骨文法务总管Dorian Daley 曾声明:“谷歌偷走了 Java 技术,并且在长达十年的时间里以一个垄断者的姿态诉诸法律。”
张文策没有等待甲骨文败诉,心中就有了一个判断:“谁敢用Java,谁就可能招惹甲骨文,那可是出了名的专利流氓,逮谁咬谁,去Java化是大势所趋。”
Java 11 的应用占比*
因而,2018年之后,张文策选择拥抱Python,投身炙手可热的AI赛道。
Forrester副总裁兼首席分析师Jeff Hammond曾表示:“Python已被证明对从事人工智能或机器学习类型的人非常非常有用!”
眼下,AI逐步起势,从梦想照进现实,赋能千行百业成为万物互联时代的基石。
譬如,当下红得发紫的AI绘画,从涂鸦走向了艺术创作,上演了一出AI与人类同台竞技的好戏,令相关从业者倍感忧虑。
此背景下,Python超越Java,也是顺理成章的事情。
“Java是被互联网炒起来的,Python是被AI炒起来的,要永远站到胜利者这一边。”张文策称。
Java是老了,又不是不能打了?
与张文策不同,魏世杰对Java仍有信心。
作为大龄一线coder,魏世杰对唱衰Java之声已感到疲惫:每隔一段时间,都有人冒出来质疑Java,是不是不行了?真的要凉了?到底啥时候死?已经过时了吗?是否真的即将被取代?
“说真的,有没有点新词,翻来覆去还是那一套,早就听腻了。”魏世杰如是说。
魏世杰告诉锌刻度,TIOBE排名指的是热度而非市场份额,Java的基本盘依然很扎实,拥趸者依然很壮观。
据Jetbrains的数据显示,2020年全球专业Java程序员约为520万人,算上主要使用其他语言但也使用Java的程序员约为680万人,其中51%在中国。
图源:Jetbrains
而据GitHub发布的《Octoverse 2021年度报告》显示,2020年全球程序员为5600万,其中中国共有程序员652万。
以此推算,近半数的中国程序员与Java有不解之缘。
“Java是老了,又不是不能打了,现在都更新到jdk18了。”魏世杰认为老语言Java版本不断更新、体验也在不断改善,与Python一样有生命力,“不要听外行胡说八道,看看招聘就知道了,市场不会骗人的。”
据职友集的数据显示,2022年全国Java程序员的月平均工资是19.8K,较2021年下降了3%;其中,拿20K~30K工资的占比最多,达27.7%。
以上可见,Java程序员的日子虽有所下滑,但整体还过得去。
魏世杰进一步表示:“编程语言说白了就是一个生产工具,只有效率之分、场景之分,没有高下之分,这就好比外卖不会关心骑哪个牌子的车,只关心一天到手赚多少。”
总而言之,桌面时代成就了C/C++,移动时代成就了Java,AI时代成就了Python,一个时代有一个时代的主题。
*不变的是,程序员永远不过时。
(应受访者要求,文中张文策、魏世杰皆为化名)