java工具软件

IntelliJ IDEA 的工具代码补全弹窗跳出来的那一刻,我常常会愣一下。软件它连我下一个要写的工具变量名都猜到了,这玩意儿比很多同事都懂我。软件但真正让我觉得 Java 工具软件有意思的工具,不是软件这些大块头 IDE,反而是工具那些藏在命令行里的小工具。

上个月排查一个线上内存泄漏,软件堆转储文件拉了 2 个 G 下来。工具用 MAT 打开,软件笔记本风扇直接起飞,工具鼠标转圈转到怀疑人生。软件后来同事甩给我一个叫 jhat 的工具命令,虽然界面丑得像 1998 年的软件网页,但人家几秒钟就把对象引用关系理清了。工具那一刻我忽然明白,工具这东西,从来不是越花哨越好,能在关键时刻救命的就是好工具。

Java 世界里的工具软件,大概分成两类。一类是像 Maven、Gradle 这种构建工具,它们管着你项目的生老病死,从依赖解析到打包发布,一条龙服务。另一类是 JProfiler、VisualVM 这种诊断工具,专门在你程序快咽气的时候做急救。这两类工具的共同点是——平时你想不起它们,出事了才想起抱佛脚。

我见过最讽刺的场景是,一个团队用着最新版的 Spring Boot,却还在用 System.out.println 调接口。他们不是不知道有 Postman 和 Arthas,是懒得学。工具软件最大的敌人从来不是功能不够强,是人的惯性。但话说回来,Java 工具软件也确实有个毛病——学习曲线陡得能当滑梯。Gradle 的构建脚本写起来像在写另一种编程语言,Groovy 和 Kotlin DSL 来回切换,能把人绕晕。

有个细节挺有意思。我用过的每个 Java 工具软件,几乎都逃不过“配置文件地狱”。XML 时代要写一长串标签,YAML 时代要小心缩进,现在又流行什么 HCL。你说这些格式哪个比哪个高级?未必。但工具软件厂商就爱折腾这些。可能对他们来说,配置文件的复杂程度直接和工具的专业程度挂钩。

不过,最近几年风向变了。JUnit 5 的测试写得像在写故事,Mockito 的语法读起来像英语句子。连 Lombok 这种靠注解偷懒的工具都被广泛接受了。这说明什么?说明 Java 工具软件终于开始琢磨用户体验了。虽然还是比不上前端那帮人做的工具那么丝滑,但至少不再把“专业”等同于“难用”。

说句掏心窝子的话,Java 工具软件的未来不在功能堆砌上。你堆再多的按钮,不如把默认配置调好。你搞再炫的可视化,不如在报错信息里直接告诉我哪行代码出了问题。工具是给人用的,不是用来展览的。什么时候 Java 工具软件能把“让人少操心”当成第一要务,那才是真的进化了。