Snow is a GUI description language for Java and Common Lisp, currently supporting the Swing UI library.

Like XUL and similar, it makes it possible to write GUI code in a declarative fashion.

With Snow, the structure of the code reflects the tree of widgets that make up the GUI. Layout is specified with a CSS-like embedded language. Data binding cleanly separates GUI code from application code and automatically propagates changes in both directions.

Snow is implemented on top of ABCL (ArmedBear Common Lisp) and third-party libraries, most notably JGoodies Binding and Cells (for connecting the GUI and the application, following the model-view-controller paradigm) and MiGLayout (declarative, CSS-like component layout).

At the time of this writing, Snow supports only the standard Swing GUI library, but it should in principle be extensible to other libraries, like SWT.

GNU GPL License

Project Page