

Less painful GUIs in Clojure - Talk - scarredwaits
http://skillsmatter.com/podcast/scala/lightening-talk-clarity-a-wrapper-for-swing

======
scarredwaits
Project page: <https://github.com/stathissideris/clarity>

------
Jach
Looks worthwhile to try out. I've also used Seesaw (
<https://github.com/daveray/seesaw> ) which was pretty enjoyable.

~~~
andrewsardone
+1 for seesaw. For anyone who is interested and in the area, Dave will be
talking about Seesaw at this Tuesday's Ann Arbor Craftsman Guild meetup
<http://craftsmanguild.herokuapp.com/>

------
roryokane
I think the project logotype, “cλarity”, is really bad. It looks like
“charity”, and not like “clarity” – it will confuse Googlers who have only
seen the logo.

------
teyc
I've always wanted to learn Clojure but found the curve a little too steep.
The way you turn something as stuffy as Swing into JQuery-style code and
stylesheets, that is so amazing. If only there were more time to learn stuff
like this.

Are most of these implemented using macros?

~~~
scarredwaits
The components are constructed using the (make) macro, yes, and all the
listener stuff that I explain is also done with macros. The selectors also use
a very simple macro that makes the syntax a bit lighter (so instead of saying
"and-matcher" you can just say "and"), but the mechanism is very composable,
you can use your own custom functions in combination to the existing matchers.

The rest is all functions!

~~~
moomin
As a supplement to this for non-Clojure users. You can make an amazingly
composable system using pure functions. The point at which you can't is when
you want to do something flash that involves a construct (called form) that
isn't a function itself. For instance, a variable declaration isn't a
function, nor is a type declaration.

To do the kind of magic Stathis has done here requires macros, but not many.
I've been hacking Clojure for nearly two years without feeling the need to
write one. (That changed two weeks ago.)

------
skatenerd
I don't know much about interoperation between clojure and java, but wouldn't
it make more sense to build a java gui which makes calls to some sort of
clojure backend?

------
cswetenham
Embedded Vimeo videos never seem to play for me, and the video is apparently
private on Vimeo so I can't view it there either.

~~~
scarredwaits
Sorry about that, the video being private in Vimeo is out of my control :-(

