How to stay up-to-date with technology in 10 easy steps, Java edition

This is not a self-improvement post.

  1. This tool/framework/suite/software has some obvious flaws that I can clearly single out after working with it for several years.
  2. I could make something better! I'll just take out the good, rebuild it with current technology and leave all the bad/outdated parts behind! This is surely my ticket to money and fame! (Alternative for the less deluded: there must be something better than this that I can use!)
  3. Attempt to get up to speed ("will only take a few mins") with new, competing technologies.
  4. Find out there are four eight 15 new frameworks, two new languages and 3 new build tools for you to grasp. The questions you are asking Google are no longer answered since 3-4 years ago.
  5. Start googling these new frameworks and languages, adding useful words such as "review" or "x vs y" or the ever popular "< framework >+< current year>" so you get the current status of the project instead of the hype-filled early material
  6. Find out there are new paradigms in how software is being developed. Research those paradigms. Definitely stop when you reach posts on
  7. Start asking Google the right questions with the right paradigms.
  8. Reach answers from the past 3-4 months on the topics.
  9. Congratulations! You have reached the present day. Have a beer and relax. Tomorrow you will be back at work where you will start mentioning all the cool new things you read about. Prepare lines to whine about currently used technologies by poor coworkers that have not been enlightened yet.
  10. Wonder where the last 3 hours have gone by. I was supposed to build something, wasn't I? Oh well, look at all the shiny new toys I have!


Today, the above steps for me were Liferay - >  ?? - > Spring ("Rod Johnson is no longer involved? Pivotal bought VMWare who bought SpringSource? It was only a few years ago I met Costin Leau at my local JUG!") - > Scala, Groovy, Akka, Play 2, Spock, Geb, Gradle, scala sbt, Apache Camel, jBoss Fuse, Heroku - > DSLs, Actors, Iteratees, live bytecode manipulation, stateless http, container-less deployment - > no beer. 

I have come to realise Java has become the Borg

Every couple of years some hotshot comes along with Ruby/Python/Language du jour stapled into the "Framework du jour" and demos in 5 minutes what it previously used to be a day's work; YOUR day of work. People flock, the Borg resists, adapts, assimilates, moves on in pursuit of perfection. 

Rails becomes Grails, Python becomes Scala and Ruby becomes Groovy. make becomes ant becomes maven becomes gradle. As the famous saying goes, "Resistance is futile". As long as you have learned stuff, don't despair! Adapt and assimilate...