Web Developing: Java not a good choice
My understanding is that Java is an universal languages, can be used anywhere, but in many fields, it is not the most effective or suitable choice.
The Agile development, the open-sources are much better choices for their quick development and free of charge.
The reality and trends are open-sources and Agile developments are always the premier choices for small & middle scale companies.
Even in big companies with high-volume web applications, Java is not a correct choice. I met many real cases which cost huge budgets in Java/J2EE platform without expectation results and finally, have to discard and make a change to other languages:
1. Alfresco is a Java-based Free/Libre enterprise content management system(CMS). one of California Lawyers Union Courts’ Organization used it as paper work repository.
Working together with Perl’s Catalyst and PHP’s Drupal CMS, they seems a perfect design. However, the reality proves that Alfresco is a weak of the whole system: low perfomance, unknown bugs which terminated the system from time to time.
Finally they decided to discard Afresco, using simple PHP to replace, which is totally capable of.
They spent majority money in Alfresco (because it is Java), makde them suffering from that Java/J2EE makes thing complicated, elusive and hard to control.
Open-source PHP can do exact the same work, and cost them a less little.
E.g, when warning/error occurs, Java throws a large number of cascaded trail information, while other languages, like PHP, only 1 line message. Suppose which is easy to debug?
2, FedEx ever cost huge money by using Java/J2EE as the platform of their Tracking System and Label System. Using Weblogic(JBoss), Oracle, with latest Java/J2EE technologies, collected some of IT professionals to build up the platform.
The system gave them painful and the lesson that finally they could not afford, they replaced it by simplier (and more advanced) Perl and Shell Scripts.
When choosing Java as developing tools, it means a lot of challendges: trivial works, modules version issues, design,development,deploy problems, bugs. The developers bury themselves on a lot of middle-tirs, combination, studying new staff, without a transparent understanding of whole technical layers.
These could be avoided easily by choosing other developing tools, such as Agile development, existing open-sources frameworks.
Some people talk about J2EE’s advantages, such as shared memory, and persistent DB connection, message queues, caching system, session control, RPC, web services,
XML. Yes, they sound good, but when they make all these work together, they will find it is not good at all. Just concepts are beautiful.
That’s my underanding about Java and Open-sources resources on the point of development.