Alternativas de design de interface do usuário com Groovy/JRuby/Jython ou outras linguagens da JVM?

Para um desenvolvedor no ecossistema Java, há um punhado de opções quando se trata de design de interface do usuário. Os mais conhecidos são:

  • Swing (preferido quando usado com o NetBeans e seu construtor de GUI)
  • SWT do Eclipse (principalmente preferido para plug-ins do Eclipse)

Agora, existem estruturas ou alternativas de design para isso que visam JRuby/Groovy/Jython ou outras linguagens JVM "dinâmicas"?

Algumas estruturas de UI são camadas sobre Swing ou SWT, por exemplo, uma estrutura pode ler uma descrição de uma Tela em xml e instanciar os componentes Swing correspondentes.

Se você conhece uma estrutura como essa, mas que tem como alvo as linguagens "dinâmicas" da JVM, também gostaria de vê-las nas respostas.

0
adicionado editado
Visualizações: 1

3 Respostas

O Clojure tem algumas bibliotecas/estruturas de GUI que parecem importantes:

seesaw wraps Swing in a very concise DSL, which could certainly be used to declaratively create GUI interfaces:

(defn -main [& args]
  (invoke-later 
    (-> (frame :title "Hello", 
           :content "Hello, Seesaw",
           :on-close :exit)
     pack!
     show!)))

Incanter provides quite a lot of graphing and visualisation functionality (wrapping JFreeChart among other things). Not quite a general GUI library, but very useful if you're focusing on stats:

;; show a histogram of 1000 samples from a normal distribution
(view (histogram (sample-normal 1000)))

Há também um código de exemplo interessante aparecendo para quebra automática do JavaFX 2.0 no Clojure - mais uma vez, isso é mais como uma DSL declarativa:

(defn -start [app stage]
   (eval
     (fx Stage :visible true :width 300 :height 200 :title "hello world"
         :scene (fx Scene
                  (fx BorderPane :left (fx Text "hello")
                      :right (fx Text "Right")
                      :top (fx Text "top")
                      :bottom (fx Text "Bottom")
                      :center (fx Text "In the middle!"))))))
0
adicionado

Eu acho que os dois frameworks mais maduros do Jruby são Monkeybars ( http://monkeybars.rubyforge.org/ ) e Limelight ( http://limelight.8thlight.com/ ).

Monkeybars é uma implementação MVC completa e rubyesque que pode ser usada em conjunto com um construtor Swing GUI, enquanto o Limelight utiliza uma relação de código mínimo/efeito máximo como o Shoes faz.

0
adicionado

Não exatamente o design da interface do usuário, mas você pode tentar Griffon .

0
adicionado