Spring是否代表着目前Java技术的顶峰,未来的Java将如何发展?

Spring是否代表着目前Java技术的顶峰,未来的Java将如何发展?

Spring使用场景的确非常普遍,大量公司都在用Spring搭建自己的服务系统,因为好学,好招人,已经被业界证明非常靠谱。但非得要说“用的广泛”就“顶峰”了,怪怪的。比如大部分人都要住房,但如果非得说“盖房子”是人类工程技术的顶峰,听上去是不是怎么都不太对劲?只不过当一个人连房子都住不起时,追求住房子天经地义而已。

如果我们把顶峰定义为于形成了某种“壁垒”,其他技术做不到或者做不好,可能更合适一点。尽管Spring可以做依赖注入,实现web,做接口,实现微服务,方便访问数据…… 但这些功能Java其他的工具也可以做,非Java领域的也能做(没准做得更好),道理上也没那么难理解。对于大量没有技术深入积累的公司或组织,用Java实现业务需求,Spring是个不差的选择。Spring覆盖了常规业务开发几乎所有的方面,也非常值得学习。

如果非要挑几个Java世界里的“顶峰”级别的项目,我会考虑下面几个(注意这里会把JVM本身和Scala等JVM衍生语言也算在内):

ZGC - 支持超大堆的同时保证STW很短
Graal - 一个特制版的的JavaVM。用Java写的JavaVM。能让不同语言跑在同一个VM上,还能互通。
Hadoop家族(HDFS、MapReduce、HBase等)- 海量存储和分析的标配
Zookeeper - 过去10多年想要一个分布式锁/注册中心/配资中心,几乎必须得用过zk(后来才有etcd和consul)
Flink - (尝试)将批处理和流处理统一,实现Chandy-Lamport算法支持分布式流系统snapshot;在Flink之前主流流分析系应该是基于Java系列的Spark
Kafka - 极大吞吐的分布式messaging系统,一个誓死把分布式log做到极致的building block
presto - 一个可以把多个不同数据源拧成一个数据源的东东
Lucene(以及基于其之上的Elastic Search)- 倒排索引工具
Geode - 一个分布式的,且支持低延迟、高并发的强一致分布式内存存储