For the last two weeks I’ve been writing a database editor application with JSP / Servlets. I’m a returning JSP / Servlet programmer with a 7+ year background, but with a 1 year Rails pause. Now that I finished the task, I can share my feelings. Sorry, Java world. It’s not your day.
My work started with reading through 400 pages of the Headstart with JSP / Servlets book just to refresh memories and get enough confidence to begin coding away. This fact speaks for itself. Even with the help of a top notch IDE it took 3 hours to configure the environment for a new project, install all necessary libraries, set paths etc, and I even didn’t try all these Struts, Springs, Hibernates and other complicated stuff. I knew it will be a pain and the whole perspective wetting my feet sounded scary and promised days of learning, lots of pitfalls, foruming, Googling and god knows what else. Hard things made simpler, and simple things made impossible, as someone said once about modern Java. Now throw a stone at me if I’m wrong.
To me, as a freelancing programmer, a waste of time (which is with capital ‘W’) equals to misery in slums. I never charge for my own preparations, learning and anything else that is not directly connected with a client or a project. With J2EE the preparations phase is much longer than expected. Then the developing phase comes, bug fixing (which shouldn’t be there in the first place, but with endless XML descriptors you never know when trouble calls your name), and all this time my clients are waiting. It’s nowhere near the Agile methodology if you ask me. It’s much more suited for RUP or aging enterprise level waterfall design. So, even if I don’t charge, every project has a deadline, and to be in time I have to deliberately stretch my estimates to incorporate the unexpected.
You may argue that I just need to learn it once and forever, apply some polish wax over time and revise every now and then. Not really, my answer would be. When freelancing, you need many tools in your kit and often you don’t get back to a technology until your next assignment. Returning to JSP and Servlets always gives me a shake in the knees.
The bottom line is I’m seriously considering to “forget” about it (after 7+ years of Java experience, to remind). It isn’t worth the time to me, it brings little satisfaction even though my clients are happy as a rule. To make it worse, it takes longer to get it right, multiple wheels are reinvented every time, testing is a headache when it comes to DB fixtures, page layouts aren’t present and an includes mess is everywhere, routing and filtering feels like a patch, not a native feature. Well, you got the idea…
For all of you who know me and value my advice, it’s time to move on. Pick the right book, pick the right coach, exercise your brain, evolve and thrive. Don’t be lazy or you risk to miss the right turn. The world is spinning even when you stand for years.
Personally, I found a very nice replacement – Rails – but don’t take it as an advert. I mentioned it only twice in this writing as it’s not the point. The point is the world is changing and there’s no reason to become dinosaurs that young!
Oh yes, and value your time. Cheers!