j**a 目前开发问题就是太啰哩啰唆了,你想写个简单的项目都得搭一堆 spring 脚手架,写单体微服务这玩意简直是一种心智负担,更不用说安卓开发用 j**a 了,无论写啥安卓项目,最经典的 demo 都得浪费很多时间配那些** gardle 配置,看看隔壁 flutter 写起来就是简洁,基本不需要考虑太多乱七八糟的配置
一部分吧。我认为:J**a 的全对象化和原始值适配不够彻底,对应的原始值包装类自动装拆箱出现得太晚了,同时也存在编译器的能力问题,无法做到原始值在编译层面的包装类对应,导致了泛型不彻底。还有提得最多的操作符重载,可能只有数学计算可以变得更直觉外,其他业务基本不一定用上,甚至会导致操作符滥用带来的代码清晰性问题。另外偶然找到一种替代机制——Manifold ( https://github.com/manifold-systems/manifold ),可以实现类似的操作符重载能力,机制是基于类似 lombok 的编译器行为拦截,原理就是同为 JVM 语言的 Kotlin 的操作符重载。J**a 的问题是过于工程规范化,并且语言特性更新得太保守太慢了。
因为 J**a 中确实有不少都是面向 Spring 编程,我遇到不少写习惯了 Spring 那一套后甚至都不会建立普通 J**a 项目,忘了上次有个什么事情,同事让我帮忙看下,我说建个非 web 项目然后把这个导入进去跑一下看看,结果反过来问我应该怎么做,但是不妨碍 Spring 确实玩的溜。
说的 go 离了框架能写啥似的。。说的 python 离了 django,flask 能写啥似的。。说的 php 离了框架能写啥似的。。说的 perl 离了框架能写啥似的。。。对了 perl 好像不怎么用在 web 上。。说的 js 离了框架能写啥的,离了 jquery 都未必能写几行。。
J**a 第二大框架,quarkus/vert.x ,好多人都没听过吧,在 techpower 的 benchmark 看到这两货的时候都以为是 benchmark 专用的非常小众的玩意儿。实际上也有好多公司好多项目在用,这也不是野生项目,是 redhat 推动的。