Of late, I’ve been looking into a variety of technologies, with a view to reimplementing an existing web application. “Spring”:http://www.springframework.org and “Hibernate”:http://www.hibernate.org/ are a given. Even if it offered no performance improvements over CMP Entity Beans, Hibernate is much nicer to work with. Once you get your head around Spring, its benefits become clear – cleaner, simpler code with less configuration hassles can only be considered a good thing. Next up I’ve been looking at business rule engines and user interface scripting.

Currently, both “Jess”:http://herzberg.ca.sandia.gov/jess/ and “Drools”:http://drools.org/ are striving for my attention, with Drools wining out so far purely because of its better documentation. Both should theoretically allow me to remove business rules altogether from my Java code, assuming I can work out a design whereby everything hangs together properly. For the UI, I had almost come to the conclusion that I would be hand-scripting it, but I took a look at the “Thinlets”:http://www.thinlet.com/ project, and was impressed by what I saw.

From the website:

Thinlet is a GUI toolkit, a single Java class, parses the hierarchy and properties of the GUI, handles user interaction, and calls business logic. Separates the graphic presentation (described in an XML file) and the application methods (written as Java code).

Its compressed size is 38KB, and it is LGPL licensed.

Thinlet runs with Java 1.1 (browsers’ default JVM) to 1.4, Personal Java, and Personal (Basis) Profile. Swing isn’t required.

The online demos look impressive. My only concern at present is the requirement for a Java plugin. Assuming this isn’t an issue for my target audience (and it depends greatly on which of the projects I take on – there are a couple on the table) I may well consider using it. It certainly helps support the argument that a thin (web) client can also be a rich one.