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