Java 过时了,但是,不会被淘汰。
不被淘汰,是因为历史原因,很多金融系统使用 Java Web 开发,是无法切换的。倘若说彻底淘汰 Java,恐怕也需要 50 年以上,直到那些旧有的系统淘汰掉,同时新系统使用其他语言编写。
过时,是因为不知道是不是语言过于厚重,Java 到现在也无法支持 async/await 或者协程,Java 在非阻塞 IO 方面停滞不前,流行的spring 和 jdbc 都是阻塞 IO,这让 Java 比起 Nodejs,Go 效率低下,虽然可以使用 nginx 之类的非阻塞负载均衡器抵消这种影响,但是却更耗费硬件资源。比方说,Java Spring 写的服务,用 8 个 cpu 跑满后面的数据库读写,而 Nodejs Go 只需要 2 个 cpu。
备注: Java netty 受制于 Java 语言,不支持 async await,也不支持协程,使用 netty 你面临 callback hell,另外,非阻塞数据库连接规范 rdbc 至今仍然不成熟,代码仓库不完备,缺乏足够测试,缺乏应用,而 jdbc 仍然是阻塞 IO,所有基于 jdbc 的软件库都不适用 netty。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有