Skip to main content

Window shopping and Java web applications

Posted by davidvc on December 11, 2006 at 12:55 PM PST

In a
previous post
I talked about the potential for using a rich client runtime like Java to provide a better experience for web users and a simpler and more productive experience for web developers. But this can raise a concern: what do you do about Google spiders and getting attention from search engines? If your "web site" is embedded in Java, how does Google find you?

Anne Zelenka recently discussed some myths about Flash. One of them is the concern that Flash "hides" your content, thus disabling search engines from finding your site. This problem exists for any web application that provides functionality dynamically (JavaScript, Flash, Java, ActiveX/.Net) rather than pure HTML content.

Anne refers to an article that discusses this issue in more detail and gives you tips on how your dynamic app can still be available to search engines.

The main point is that you can (and probably should) keep your content separate from your style and behavior. You can then make this content available for web clients that don't use or look at Java, Flash or JavaScript (like a Google spider crawling your site).

For example, if you have a rich-client calendaring app, then if a spider goes to your URL, you provide an HTML version of your calendar. You can have a rich-client music player, but a spider or someone just "checking you out" can go to your URL and find a nice presentation of your service with updated content.

I think of it as the difference between someone walking down the street window shopping, versus someone going into your store and wanting to try on clothes, push buttons, taste the fruit, and interact with your salespeople. For web applications, the browser and HTML can be used for "window shoppers" while a rich client model can be used for committed users who want to have a richer, more interactive experience of your service.


Some care must be put into how you migrate a window shopper to a committed user with as little effort as possible, so they don't just walk away. It should be as easy as opening a door and walking in.

Java has not been very good at this transition -- it's been more like having to wait in line and pass through a security checkpoint before you can enter the store. This has improved significantly, particularly with Java Web Start, but there is still a ways to go until Java has the same level of graceful transition as Flash and JavaScript, I believe the Java VM is ultimately the better platform, and I believe we can fix these remaining barriers to entry. That's the vision I'm holding, anyway. Now that Java is open source, I'm even more hopeful this can happen.