Java EE 從 J2SE 跨平台紅利、J2EE 統一標準的巔峰,逐步演變為臃腫、門檻高、效率低、維護貴的「重型平台」。本文從語言演進、規格變更、社區分裂、框架氾濫、技術棧爆炸五個維度,深度剖析系統性成因,直擊痛點。
五大根因
- 語言特性邊際效應遞減:Java 5 的 Generics、Autoboxing 等語法糖未帶來本質生產力提升,反而增加認知負荷
- 規格修補而非創新:EJB3 只是將 XML 配置搬進 Annotation,本質未變,代碼被注解「汙染」
- 社區分裂:Spring 與 EJB 對立,開發者被迫站隊,生態內耗嚴重
- 框架氾濫四大害:① 門檻陡增 ② 封閉基礎技能導致「藍領化」 ③ 設計過度復雜 ④ XML 配置地獄(究竟在寫 Java 還是 XML?)
- 全棧技術棧爆炸:前端 HTML/CSS/JS/AJAX/JSP,中間 Spring/Struts/EJB/JNDI,後端 JDBC/JPA/Transaction/DB,加上協議、注解、XML、構建、測試、版本控制、業務知識……普通人根本掌握不完
獵頭需求單的荒謬
「精通 Spring、Hibernate、Struts、JPA、EJB3、JMS、JTA、JMX、WebLogic、WebSphere、JBoss、Tomcat、Maven、Ant、JUnit、UML、設計模式、分布式、高併發、調優、安全、CI/CD、Docker、K8s、英語流利……」
連 James Gosling 都未必全會。這不是招聘,是許願。
出路在哪?
回歸本質:語言是工具,框架是手段,業務價值才是目的。拒絕盲目疊加,選擇「剛好夠用」的技術集,建立團隊統一技術規約,投資自動化工具鏈降低認知負擔。