Gosling and Hamilton discuss Java licenses to ease community development of the Java language

James Gosling and Graham Hamiliton introduced modifications to the Java platform’s licensing structure and terms on Wednesday. The main change is the introduction of the JRL, Java Research License which is geared to supporting contributions to the Java language from the community. It’s still not open source as Sun is still in control, but it’s opening the door for some flexibility at least.

I personally don’t think that Sun should release Java as open source – to do so would introduce the possibility of the language branching in many different directions. Although initially this may seem like a good idea to encourage innovation, at the same time you would end up with a platform with many incompatibilities, and the great benefits of Java (write once, run anywhere) would be gone.

Implementing the Chain of Command pattern using Commons Chain

OnJava.com have a good article on their site giving and overview and code examples on how to use the Commons Chain library to implement a solution using the Chain of Command pattern.

The interesting thing about the Commons Chain implementation is that the commands that are used in any one process are configurable externally via an xml file, which allows you to alter the order of commands or the command themselves without any code changes.

Part 2 of the article shows how Commons Chain is being used in Struts 1.3.

AJAX – Asynchronous Javascript and XML

Google have recently been demonstrating some interesting web browser based client/server type functionality in some of their beta products. Most noticable of these is the Google Suggest site which drops down a list of word suggestions as you type.

News.com have an article today about this type of functionality picking up speed to offer a richer user experience, using older technologies to achieve the result.

To avoid reloading a page when the user selects an action in the page, typically some Javascript is used to call a function in a hidden frame on the page to retrieve some data from the server. When the data is returned Javascript can be used to update the main page with the new data. Simple but effective.