Scala/Groovy/Clojure中的GUI

Ale*_*sky 30 groovy user-interface scala clojure

上次我不得不处理Java是2005年,从那时起我几乎忘了它的一切.

今天我需要在Java之上构建一个GUI应用程序.我想最好使用Scala/Groovy/Clojure语言之一.

问题是:哪个更适合桌面GUI编程?我的程序将转换并显示一系列jpeg/png文件+将有~10个对话框(每个对话框中包含大量选项和所有可能的小部件).

主要要求是紧凑性:我讨厌只编写十几行代码来绘制一个带按钮的简单框架.我在GUI中的背景是(大部分)Tcl/Tk和GTK +.

Ray*_*yne 20

免责声明:我是Clojure程序员.我显然有偏见.

在所有这些语言中,我认为Clojure和Groovy可能是最紧凑的.Scala是一种像Java一样的大括号语言,所以它往往会占用更多的空间.然而,它远没有Java那么冗长,我认为Scala非常棒.我知道Scala有一个摆动包装器.我从未在Scala中进行GUI开发,所以我无法真正说出它的感受.

我已经在Clojure中完成了一些摇摆开发,并没有真正花费太多时间.直到你自己写一些抽象,但总体而言,因为Clojure的代码往往是短,比Java代码更简洁摆动应用比在Java中,同样的东西用小摆幅从Clojure的直接可能很乏味.

Clojure还有一些包装,可以让摇摆发展更多Clojury.其中一个是clj-swing.我已经看到了一些使用它编写的代码,它非常酷,而且比直接互操作更简洁.

现在,我不知道Groovy.我真的不知道太多关于它的任何东西,但我知道它比Java更紧凑,所以我想象的GUI开发将是相当紧凑的为好.

我认为Clojure是一个安全的赌注.随着CLJ-摇摆,甚至直接使用Java GUI工具包直接会比Java成为真正的紧凑,并在非紧的东西用宏建立抽象的能力绝对是一个巨大的加分.Clojure有我的投票.

  • 如果他在工作中可以选择使用这些语言,显然,他们并不觉得它对于生产代码来说太"模糊和不成熟".我认为你应该让他决定,因为这是他的申请.除此之外,我知道有几家公司使用Clojure作为他们/他们的主要语言之一,并为此感到自豪. (7认同)

Dan*_*ral 18

Scala提供了相当完整的基本GUI元素示例应用程序,您可以通过scala scala.swing.test.UIDemo在命令行键入来运行它们.您可以在此处浏览它们的源代码.

您还可以查看本文档,了解Scala Swing包装器背后的设计原则.


Ted*_*eid 9

Groovy有Griffon框架,它使用约定优于配置来在JVM上构建GUI应用程序.它与grails/rails类似,但是对于丰富的GUI而不是Web应用程序.


Bla*_*ger 7

Groovy有一个称为swing构建器的东西,可以使GUI编程更容易.这是来自groovy网站的一段示例代码,它创建一个带有按钮的框架并计算您单击它的次数:

int count = 0
new SwingBuilder().edt {
  frame(title:'Frame', size:[300,300], show: true) {
    borderLayout()
    textlabel = label(text:"Click the button!", constraints: BL.NORTH)
    button(text:'Click Me',
         actionPerformed: {count++; textlabel.text = "Clicked ${count} time(s)."; println "clicked"},
         constraints:BL.SOUTH)
  }
}
Run Code Online (Sandbox Code Playgroud)