The Smell of Java (& JSP) or A Case for Java

By Angsuman Chakraborty, Gaea News Network
Friday, June 29, 2007

After sometime I am back to developing in Java & JSP. And boy does it smell good! If there is a programmers heaven, I am in it now. I have small self-made libraries to help automating regular tasks, tons of high quality free third-party libraries for the bigger ones like opencsv, poi etc. and I am kicking some coding storm. After spending sometime with other languages and environment it sure feels sweeter.

BTW: I am also doing some Javascript work, but in comparison to Java, frankly it isn’t that much fun. The trouble with Javascript these days is that there is too many libraries to choose from and often you will find what you need in bits and pieces in multiple libraries. Too much of anything including choice is bad. Javascript libraries need consolidation. How many libraries do you need to make AJAX calls? Of these only GWT is breaking new grounds but even there lot needs to be done.

Ranting for Simple Architecture
I had ranted before about how JSP has become more complex over the years. I think at some point Java technologies has been overtaken by designer types who prefer pristine over-designed architecture over simplicity. I still prefer something simple while designing, most often than not simple solution is also the best solution.

The case for Java
Much has been said about Java’s suitability / unsuitability for certain tasks. All said and done Java is still is a very nice language to learn and use. In the hands of an expert Java is a beautiful tool to wield. It is complete, powerful, protects you against the bad mistakes and helps you write really clean and simple code. Java is the enterprise language of choice in the industry for a good reason and will remain so for years to come. It is backed by mature libraries and vibrant community.

Caveat and few words of advise
You need to stay clear of over-designer types. Several popular frameworks like Struts are way over-designed. You need to choose your tools well. Almost everyone and their grandma has developed an IoC or MVC framework. First analyze your requirements to see if you need them. Then choose one which appears simplest to you. The cost of learning a new framework + cost of fitting the framework to your needs or worse the cost of fitting yourself and your team to the framework has to be balanced against the value provided by the framework. Don’t be afraid to create something simple yourself if it perfectly fits your needs. Remember cost-benefit analysis is your friend. Do it well and then get it reviewed by an architect type to ensure that you are not missing the big picture.

All said and done…
Despite all the frenzy over languages like PHP (been there, love it, doing it) or Ruby (dabbled in it), I would still prefer Java for any enterprise or Web 2.0 product or services. In the long run you will realize the value of this statement.

will not be displayed