Inline below.. Dave
On Thu, Mar 17, 2016 at 9:37 AM, Jason Zwolak <jzwo...@gmail.com> wrote: > Paul, yeap, Seesaw is definitely something worth considering. Dave Ray > hasn't abandoned the project, but I sent a personal email to him asking > about the state of the project and it does seem the Seesaw is in more of a > maintenance phase than a continue to move forward and improve phase. Dave > Ray, if you're on this list, would you chime in? > Yep. Seesaw's definitely in maintenance mode. Once upon a time it overlapped a lot with my day job, but not anymore so I just don't have a ton of enthusiasm to spend time on it. I'd be open to new maintainers if someone's feeling adventurous. Otherwise, JavaFX seems like the future so I think effort would probably be better spent there. A lot has changed in UI land in the last 5 years. > Also, I was at the talk you mentioned and was very impressed with their > methods. What wasn't mentioned in the talk was the fundamental structure of > the interface between Clojure and JavaFX. One point that _really_ struck me > is that they have a reoccurring timer running in the background and each > time it wakes up it checks for changes on the app-state (presumably an > atom, but I do not remember). If the app-state has changed then it starts > re-rendering the UI. If I remember correctly it recreates the UI components > that rely on any part of the app state that has changed. It sounds a little > similar to Facebook React. I questioned them on this approach as it sounded > strange to me... and they convinced me it's a good approach for their > project and inspired me to try something similar on my own... which I'm > secretly working on ;-) > > One thing that makes this work so well for their approach is that they > have animations that depend on the app state. So their reoccurring timer is > almost like a video algorithm redrawing the on screen image at the > specified frame rate. > > -- > Jason Zwolak > > On Thu, Mar 17, 2016 at 11:06 AM, Paul L. Snyder <p...@pataprogramming.com > > wrote: > >> Yow, old indeed! >> >> In 2011, Dave Ray released Seesaw, which is a very nice wrapper for Swing. >> I've used it for a bunch of projects, and it works great. Of course, it >> does look like Swing, but it's plenty usable. (It's also still being >> maintained, so if you're looking for a toolkit that you can use right now, >> it's a good way to go.) >> >> https://github.com/daveray/seesaw >> >> That said, I'd also love to see a JavaFX wrapper. At the Conj in Philly, >> Cognitect talked about a project where they'd used it extensively: >> >> https://www.youtube.com/watch?v=ajX09xQ_UEg >> >> It's definitely piqued my interest. >> >> Paul >> >> On Sat, 12 Mar 2016, Jason Zwolak wrote: >> >> > +1 JavaFX. >> > >> > I know this is an old thread... but in case anyone comes across it >> (like I >> > did just now) and wants to see where things are, they should know that >> > JavaFX has come a long way and seems to be Oracle's replacement for >> Swing. >> > Now JavaFX is no longer only in JavaFXscript... in fact, I believe >> > JavaFXscript is deprecated in favor of the JavaFX Java classes. >> > >> > I've seen some major projects done with Clojure and JavaFX... even from >> the >> > guys at Cognitect. >> > >> > On Thursday, May 27, 2010 at 11:18:41 AM UTC-4, Luke VanderHart wrote: >> > > >> > > My side project is a fairly complex GUI application written in >> > > Clojure. Recently, I've become irritated with using Java interop for >> > > everything. It's not that Clojure doesn't have nice java interop - it >> > > does. It's just that when interacting with a GUI framework, which is a >> > > large part of my app, I have to be back in mutable object-oriented >> > > land, worrying about class hierarchies, mutable state, locks, etc. >> > > Yucky. >> > > >> > > So, with a perhaps dangerous lack of sanity and without any guarantee >> > > of success, I've decided to try my hand at writing an idiomatic >> > > Clojure GUI library. If I have success (which I doubt) I will of >> > > course make it available as open source. >> > > >> > > I intend for it to be mostly declarative, with a nice DSL for defining >> > > GUI elements. Each component will also implement map, and use one of >> > > Clojure's reference types as an interface for inspecting / updating >> > > its state. I may also implement some aspects of Functional Reactive >> > > Programming wherever it's convenient to do so. >> > > >> > > What you all must help me decide is what GUI framework to use as the >> > > underpinnings of it. It's genuinely hard to decide. I have at least >> > > some experience with all of them, so I have no strong preference, but >> > > I'd like to get your input. I did consider trying to make it abstract >> > > enough that you could plug in *any* of them under the hood, but >> > > there's enough differences between the frameworks that that would get >> > > very ugly very fast. >> > > >> > > Possibilities are: >> > > >> > > AWT >> > > Pros: native widgets, bundled with Java, low-level >> > > Cons: few widgets, considered somewhat obselete >> > > >> > > Swing >> > > Pros: bundled with Java, good widget selection >> > > Cons: non-native widgets >> > > >> > > SWT >> > > Pros: native widgets, widely used >> > > Cons: requires platform-specific libs >> > > >> > > QT Jambi >> > > Pros: native widgets, huge widget selection, highly-regarded framework >> > > Cons: requires platform-specific libs, writing custom widgets is >> > > hairy, momentum and support seem to be lagging since Nokia dropped >> > > official support. >> > > >> > > Remember, the actual API won't matter - that will be completely >> > > abstracted away. So try to focus on the framework's look and feel. >> > > Also let me know if I've missed any of the framework's key >> > > characteristics. >> > > >> > > Thanks! >> > > >> > > -Luke >> > > >> > > >> > >> > -- >> > 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. >> >> -- >> 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 a topic in the >> Google Groups "Clojure" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/clojure/NkLXh8KYXqk/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > 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. > -- 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.