James Williams

Previewing Pivot

Tags: General

One of the cool things about being a Groovyist is the fact that the Java ecosystem seems to be mostly our own playground, full of areas where we can decorate it with Groovy syntactic sugar. When looking at the Pivot framework, bunches of possible Groovyisms flooded my mind.

Pivot is a framework that allows developers to build cross-platform applications for the web and desktop using Java and XML. The "write once, run anywhere" mantra is something that never did quite take hold because previous efforts (namely applets) were a little before their time. But applets have been primed to make a comeback and GWT, Android, and Echo2 have brought Swing-like flows to the web and mobile spaces. But each of those use the familarity of one paradigm to target another, they aren't trying to be all things to all paradigms as Pivot does.

That being said, I do like some of the features of Pivot. It uses very XUL-like XML files to create its models though they can also be specified using Java code. The structure of those files aligns very well with Groovy's various builders and parsers. My one point of disappointment was seeing that they implement the web side using applets. I have nothing against applets but I would have preferred a solution that generated HTML à la GWT or ZK. Such an approach would play to the lowest common denominator and deal with the fact that the JRE plugin is not yet a default install in most browsers but I can understand why the applet path was taken. The project is in a developer preview state with only binary files available at the moment and only a handful of demos so that may change in the future. Pivot looks promising but I reserve full judgment until they release the source and I can root around a bit.

Are we foolish for wanting one framework to target all platforms ? Besides the ZUL-like model files/clear separation of MVC, what does this bring to the table that you couldn't do with AWT/Swing already?

Pivot http://pivot.dev.java.net/

Greg Brown's article on Dzone: Introducing Pivot