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. 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. 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? 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? I know that MVC/MVMC/MVA/etc exist, but I don't know how to assess their merits against how Clojure wants me to work. -- 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.