一些杂想:Java老矣,尚能饭否?( 八 )

grDevices:::svg.off()`);res.send(text)})app.listen(3001, function () {console.log('Example app listening on port 3001!')})
是Java生态圈的绝对大佬 , 曾几何时 , 也称得上一个轻量级框架(相比EJB?) , 然而现在看看 , 的模块量级、启动速度、内存占用恐怕都谈不上多轻量了 。是一个动态性很强的框架 , 其核心的IoC和AOP功能大量使用了反射、动态字节码生成等技术 , 这与前面说的AOT编译的封闭世界假设是冲突的 。所以尴尬的事情出现了 , 我想要使用AOT或者说 , 但是第一个难题居然是代码中的框架不支持…
基于此 , 社区中出现了-[73]和-fu[74]这样的项目(目前都还是实验阶段) , 其中-基本确定会在6和 Boot 3中直接集成 。
关于- , ATA上已经有大佬们做过比较深入的分析了 , 比如:让启动提速95.5倍 , 项目解读之-- , 也可以参考下官方的---beta[75] 。
我理解 做的事情关键就是用 AOT 插件(Maven/)生成的配置(反射、资源、动态代理、-Image选项):
从测试结果看 ,  的启动速度、镜像大小、内存占用与传统 Boot相比有非常明显的提升 , 但峰值性能、构建时长等方面还处于劣势(同样的话好像说了好几次了?)
其他://等等
近几年来 , 开源社区涌现了[76]、[77]、[78]等一批以提升 Java 在云原生环境下的适应性为卖点的微服务框架 , 从他们的中可以提取到一些高频关键词:
相比更常见的 Boot , 这些新的框架天生对有更好的适配 , 更轻量、启动更快、内存占用更低 , 非常适合容器化交付 。虽然目前看起来尚显稚嫩 , 生态系统相比还不算成熟 , 但就我个人而言 , 非常愿意在小的项目里使用这些框架 。
其他的 , 像、JBoss还有等等社区 , 其实都很活跃 , 仍然充满活力 。
未来?
捋完这么多 , 我发现对于Java的未来我还是充满迷茫 。一方面 , 在新生语言的挑战下 , Java似乎不可避免地慢慢变成一种“传统” , “老旧” , “经典”的语言;另一方面 , Java和它的队友们一直在努力开创或者吸纳各种新特性、新功能 , 包括但不限于:
虽然很多特性短期内还不能落地 , 但道阻且长 , 行则将至 。至少就目前看来 , Java在传统的企业级和服务端应用领域构筑的堡垒还是牢不可破 , 再加上由强大生态所构建的护城河 , 留给Java的时间还有很多 。
最后 , 作为一个Java开发者 , 很诚实地希望 , 在可见的未来 , Java能一直流行下去 。