Monday, March 30, 2009

JSF and AJAX - Still no Good

AJAX is the way of life for web developers. If you are a Java Enterprise developer, more specifically a JSF developer, you will find loads of AJAX/JSF libraries. But if you decide to use one of them, you will not be able to use components from any of the other libraries (in most cases). In other words your application will be locked into the library you choose to use.

I found a good article today on JDJ "JavaServer Faces: The Importance of Components" by Jim Cook. The following paragraph was interesting:

AJAX fits in with the JSF framework very naturally. However, the early JSF specifications (1.0, 1.1, and 1.2) don't address AJAX. One of the consequences is that each vendor of JSF components has built its own AJAX engine and the various engines aren't always compatible. Although this issue is being addressed in the upcoming 2.0 specification, for the time being, component users are basically forced to choose components from only one vendor if they want to use AJAX.

According to this, until the 2.0 JSF specification has been implemented by all the major JSF libraries, its probably better to stay away from them if you want to prevent a lock-in. Look at it this way. If you do use one these AJAX/JSF libraries today, tomorrow when they come up with the new JSF 2.0 compatible version of their library, your application will not be able to use it.

So what can Java developers who need AJAX do today?

You can use a pure Javascript based AJAX library like Dojo or YUI along with Spring and Hibernate. At least you know that tomorrow when Dojo and YUI come out with their new versions, your application can make use of them. Yes, your application will be locked into YUI or Dojo. Life is not perfect.

Wednesday, March 18, 2009

Which Java Techs are HOT today?

I have been working recently with some SEO experts and was amazed at how they search for information on the net using various analytics and statistics tools. It made me think, why not search the net to get some REAL facts on which Java technologies are hot today. The goal is to help outsourcing companies and developers to focus more towards technologies that are in more use in the industry.

I started with regular Google Insights and Adwords Keyword Tool searches. But when Google Insights showed me that majority of these searches have been performed in India, I realized that these results signify what developers are searching for. But my goal is to find what customers are searching for.

Then it came to me. If I search Jobs websites in the markets that are best known for outsourcing IT projects, using Java specific keywords, that should give me a good idea of which technologies are more in use in those markets. I chose to search monster.com for USA and itjobswatch.co.uk for UK. Following are my findings.

  Jobs on Monster.comJobs on ITJobsWatch (avg last 3 months)

Application Server Platforms
Websphere825463
WebLogic
664303
JBoss47486

Backend GLUE Frameworks
Spring
546434
Struts527173
Seam154

Other Backend Frameworks
Hibernate
551334
EJB372143
DWR13
3

Client-side Frameworks
JSF
88245
RichFaces
7No Data
IceFaces9No Data
ADF21

Now this is by no means a very extensive list of technologies but I searched the most common ones I knew of. Technologies like JUnit, XML, Webservices etc. do not have to be researched. Everyone knows that its a must to know them just like HTML, Javascript CSS etc.

I was hoping to find something more conclusive for the client-side frameworks. I do know JSF is the choice for Java Programmers but which ONE JSF library is most widely being used??