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有我的投票.
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)