10 Page Wikis to Setup Dev Environments Suck - App servers are no longer the norm. Build tools have embraced launch wrappers (mvnw, gradlew). @testcontainers / Docker make it easy to run integration tests and are widely used.
Incongruent Deployment Environments Suck - External config and immutable infrastructure have become the norm. Kubernetes has standardized container deployment.
Servers That Take More Than 30 Seconds to Start Suck - Microservices have become the standard. Plain-ole `static void main` apps are now the default. @graalvm provides further startup optimizations. @springboot, @QuarkusIO, & @micronautfw have significantly reduced startup time.
Manually Managed Dependencies Suck - It's been a while since I've heard of someone copying JAR files around instead of managing dependencies with a build tool.
Unversioned & Unpublished Libraries Suck - Reproducible builds are now highly valued and widely used. But we still have some work to do with making sure all production artifacts can be correlated to a commit in SCM.
Long Development / Validation Cycles Really Suck - @playframework and @QuarkusIO have done a great job providing out-of-the-box support for a low latency dev cycle. Others are catching up and now provide it with some additional work.
Monolithic Releases Suck - Continuous Delivery has become the norm. The 12 Factor App & Cloud Native principles are being applied widely. But there are some distributed monoliths out there indicating we haven't totally figured this one out yet.
Sticky Sessions and Server State Suck - Stateless services have become the norm with state having moved to external data stores. CQRS continues to emerge as a way to do state at scale.
Useless Blocking Sucks - Reactive is now all the rage. Even traditional Java frameworks like Spring have gone all-in with reactive. @kotlin has emerged as a contender in the reactive revolution for those that just want a better Java.
The Java Language Kinda Sucks - With more frequent releases & some superb leadership, Java has added a ton of great language features over the past 5 years. Kotlin is gaining real traction, significant in the Android space, and some in the server space. Scala has stagnated a bit.
So there we have it! Tons of progress with the Java ecosystem in the past 5 years. The ship is not sinking as many had predicted. Kudos to all who helped move things forward!
You can follow @_JamesWard.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: