Next, JSP and Servlets, JDBC, and MySql, along with POJOS. Made it easier to write consistent, clean code, and along with the Java Cookbook, programming was a lot of fun for a while.
It all almost ended with JSF, Struts, Struts2, Spring MVC, Spring DI, Pico, Wicket, Tapestry, Hibernate, JPA... these were often the product of good minds and talented engineers, but, yeah, this almost ended my career in programming. I remember seeing a sysadmin and unix book on the desk of a web developer. I asked what he was learning for, and he gestured to a long row of Java related web books on his shelf. "I just want to be a systems administrator", he said, "I can't deal with this churn anymore." What had been fun now required a 2,000 page stack of books with constant churn, and so many little integration errors that doing even the simplest thing was a true slog. I wanted to secede as well, but many teams (and recruiting managers) absolutely insisted on this stack. I figured software was "over" for me, at least in web dev...
Then, Rails. Pretty much saved programming for me. I get it, it's not the new shiny anymore, but it was blissful to get back to such a productive environment. Although the Rails community was too brash and dismissive of reasonable criticisms and efforts to improve the stack, I understand the hurt that was behind this angry rejection of the "enterprise" world. Get stuck on an "enterprise" Java project in 2004, see nothing get done, and then watch as people try to shoot down Rails or Django, and you'll understand why the anger hit this level, why people cheered when the simple words "Fuck You" were offered as a retort to J2EE criticisms of Rails. It's better to be civil even as you disagree with everything you've got, though, (the Django community seemed to understand this better than the Rails one).
Lately, javascript framework churn has pushed me back into the way I felt during the explosion of Java based frameworks. The difference is that I know understand that this will pass, it's a period of chaos that often accompanies a large shift in technology and focus. It will settle down, and what emerges will be simple, effective, and useful. However, I am also making an effort to find shelter from the storm. Eventually, this will be sorted out, but I don't want to get sucked up into the vortex for several years like I did with Java in the mid 2000s. Like a lot of devs, I'm looking to stay on the backend - though this has always been my inclination anyway.
Lately, scipy and scikit-learn, I hope. The ease of doing formerly difficult things may lead to some awesome new directions!