作为一个个人开发者,我经常使用的ORM框架开发者明确表示,Jiimmer后续的重心将不在放在java/kt上,而是全面转向ts,这需要数个月的时间调整。这对我这位热衷于使用jimmer的开发者,是悲报,也是喜讯。
保守的java,激进的spring
自从jdk21推出的预览功能虚拟线程之后,似乎这一部分的内容还在陷入停滞,在jdk25推出之后依旧遥遥无期。这并非不可理解,因为其虚拟线程的野心非常之大,并不满足于实现“协程”,更要java需要兼容之前的synchronized 关键字,这个改动涉及到了JVM的核心锁定机制,改动的风险极高。但是可惜的是,大部分的java库,甚至是JDBC驱动也是synchronized遍地开花。这个古董正在偿还欠下的数十年的“技术债”。
如此看来,java确实在奋力追赶当今的技术关键点,这位奋发图强的老登似乎还不至于如此不堪,但是其“悲哀”之处在于,其在尽力做到向后兼容的同时,遭到了Spring的背刺。
spring的绝望之处在于,Java在Serverless、云原生、高性能后端领域已经相当落后于go、rust还有那个当初蹭自己热度的javascript。如果追随java“稳重”的脚步,那么后续到来的,将会是慢性死亡。所以spring在替java焦虑,更在替java激进。其多次的破坏式更新和在尽力维持兼容的java形成了非常鲜明的对比,也是一记犀利的背刺。
javax到jakarta的变动,spring虱子多了不嫌咬
老流氓Oracle逼走了google带来的安卓开发之后,再度作妖,在和Eclipse基金会交接后要求将所有的javax包更换为jakarta包,直接导致了后续的相关依赖的不兼容,直接导致了相当多的项目要么“器官移植”,要么“植物人”。一定程度上也导致了springboot3.x的彻底后续不兼容,导致其强制要求jdk17+。
这是一个坏的开始,从此之后,Spring的操作也越来越骚。
从开始强推AOT,在到SpringBoot4.0的DataSourceAutoConfiguration等核心配置类的路径变更,导致一些starter级别的框架直接崩溃。
这就导致,原本为了稳定而死守Springboot2.x的老登们投鼠忌器,更不敢更新框架,而像Jimmer作者这样积极拥抱java新特性的开发者被spring不断喂奥利给。
更加悲哀的是时间节点,当今ai应用需求的爆发期,你如果希望进入spring领域中开发ai应用,就必须要跟上spring的脚步,然后被spring糊一脸翔。且ai应用的逻辑往往在“胶水”能力和快速迭代上,这恰恰是spring的厚重所排斥的,而python和ts则是这方面天生的赢家。所以要么引入其他的ai开发框架,要么直接跳到py等更加完善的ai开发的语言中。
Jimmer作者的无奈,悲哀守旧的生态圈,不得不到来的跳船求生

(babyFish大佬在技术群中的发言,直言转战ts的原因)
jimmer作者的初衷,是希望干掉生态中追求人海战术的家伙,但是就目前java和spring的生态环境,使得其愿景在jvm生态下变得遥遥无期。而转战ts,似乎是可行的路径。
最后,希望jimmer转战ts之后能够磐涅重生,一飞冲天。在此,本人作为受够了java生态中各种问题的个人开发者,也开始尝试选择转战ts全栈,且发现ts几乎是对个人开发者最友好的生态了。后续我讲分享一下目前我正在使用的技术栈。