On Dec 2, 2017 6:53 AM, "Owen" <owen.ri...@gmail.com> wrote:

Hey all. I'm looking for hints on how to put GUIs together in Clojure. Any
thoughts appreciated.

The two themes that stick out for me in Clojure are considered attention to
the default data structures and the radical approach to minimising state.
But it seems to me that GUIs are inherently stateful and I don't have a
huge amount of faith that issues around data structures have been
completely thought through.


Which data structures? Clojure's data structures are very well "thought
through".

App state != gui state.


It particularly sticks out to me that Clojure itself hasn't taken a
position on the subject and that the 'official' Clojure GUI language might
actually be Swing or JavaFX.


There is no "gui language". There are gui apis.

This would be in spite of the fact that those two both bring extremely
stateful objects into the Clojure world that just don't sit very neatly
with the apparent vision of the language.

So with this as my starting point; I don't think there is an official,
idiomatic way to create a GUI. Can anyone point me in the direction of any
authoritative recommendations (particularly academic literature) on how to
balance GUI state and functional programming?


The beginning of wisdom here is simple: traditional models of computation
(Turing Machines, Lambda Definability, etc.) just do not work for
interaction. Functional programming is totally orthogonal to interactionist
programming.

For academic lit, see Robin Milner, esp. his book on the Pi Calculus.

I can tell if I have a GUI or not, but I'm looking for yardsticks to assess:
1) Is my toolkit introducing unnecessary state?
2) Am I introducing unnecessary state?
3) Are my models of inter-widget communication appropriate?


Impossible to know without seeing your code.

g

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to