What is the GUI for ? I'm not sure I'm happy about it, but I think most UI's are done in a browser now, and if you haven't checked out clojurescriptone.com yet I'd take a look.
On Wed, Dec 5, 2012 at 5:38 PM, Christian Sperandio < christian.speran...@gmail.com> wrote: > Hi, > > I'm one of those bearded (Lin)Unixians person who love the black screen. > I'm closer to back-office than front-office (it's may be my (too) pragmatic > mind). > But sometimes, for some programs, a GUI is a good thing for users. In > particular when the sofware is not for barbed person :) > First, I want to give details about my GUI development experience. For > some years now, I developed GUI with Cocoa (OS X, before IPhone and iOS > out). Recently, I did some development in HTML5/CSS/JS (and I hope, in the > future, I'll learn ClojureScript). > > Back to now, I'd like to make a GUI for a Clojure program and being in the > JVM world, I thought I would try a new framework: JavaFX2. Below, I give my > feeling and anyone can write remarks about it. > > We are living in the 2010's years and with JavaFX we find another > framework whose the conception is inheritance spirit. The first thing you > do, is a subclass of Application. Well, what do you do with delegation? > Composition? I had a lot of pleasure with Cocoa because there was no > (almost) inheritance. All your work was done by delegation. I found that > more elegant and cleaner. As far as I like no more the > Apple's philosophy (but it's another discussion), for this point I found > that the Cocoa's architecture was well-thought. And I find that the Clojure > code is damaged by the JavaFX inheritance. You must write :gen-class > extends to just display a window. And when I read documentation about > bindings, I thought it was complicated to make a simple thing (look at > watch in clojure). OK, the JavaFX bindings work but I feel writing code for > writing code. > > My second bad point for JavaFX, it's about the interactive development. I > love languages like Groovy and Clojure because you can test the code in a > console (GroovyConsole or REPL). Can we do that with JavaFX? My main > problem is the following: for launching of your JavaFX application, you > have to call the start method in your main. It blocks the current thread > and the REPL waits for closing the window. While with Swing, you can create > components on-the-fly (no start method to display your main frame) in the > REPL. The "thing" lives and changes under your eyes. It's magic. > > Did I miss something ? Did I have a bad feeling too soon because the > code's weight and difficulties? When I read code like > callback<TableColumn<Person, String>,XXX<YYYY>>, sorry but I'm discouraged. > Some people laugh at Clojure because of its parentheses. But in this case, > we can talk about Java and its arrows. > > Finally, I think I'll turn to Swing. OK it's less pretty and hype than > JavaFX but the fact I can play with Swing inside REPL is fun. And > seriously, why JavaFX's developers made something so unpleasant (I think > again this inheritance point as soon as you want to launch a simple frame). > > If some people work with JavaFX and think it's great, I'm ready to read > your posts. Even if I'm a bearded person, I'm ready to reassess. Perhaps, I > missed something. > > Chris > > -- > 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 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