A senior Java developer explores why Java is perceived as complex by collecting community feedback on Twitter. The post categorizes the main criticisms: poor getting-started experience compared to Node.js, insufficient standard library, verbosity, complex enterprise-era concepts (EJBs, ClassLoaders, OSGI), abstraction overload in frameworks, and limited native functional programming support. The author counters many points—noting tools like SDKMAN and JBang ease setup, Lombok and Records reduce boilerplate, and modern Java stacks avoid legacy complexity—while acknowledging genuine concerns around onboarding friction and FP limitations. The conclusion advocates evaluating Java on its current merits rather than outdated impressions, positioning it as a strong platform for large enterprise applications.
Table of contents
1. Poor Getting Started Experience2. Core Standard Library is not enough3. Java is Verbose4. Complex “enterprisy” stuff5. Complexity for Library authors6. Too much abstraction7. Poor/Non-native FP Support8. Miscellaneous reasonsSort: