9

我正在用 Java 编写图形应用程序。最终我想建立一种脚本语言,这样事情就可以编程了。你推荐哪个语言库?

可能的嫌疑人是:

不太可能的候选人是:

目标受众可能不是铁杆程序员,因此首选不那么晦涩难懂的语言。我的猜测是 JavaScript 更容易被他们接受,即使它有怪癖,只是因为他们看到的更多。

Lua 似乎在 C/C++ 中很流行,但至少 LuaJava 需要额外的 .dll/.so,这使得部署变得复杂。

编辑: PhiLho写道,有一个名为 kahlua 的 Lua 的 Java实现


相关问题:

4

9 回答 9

9

如果目标受众是“没有编程技能....”,则选择 jython (python) 它很容易学习。(我 7 岁的女儿学得很快)

Bruce Eckel 在“thinking in java”中与 jython 一起写了一章。

在获得“否决票”的危险中,python 比 BASIC 更容易:-)

于 2008-09-27T10:55:03.423 回答
3

Lua 因其语言的简单性而受到赞赏,使其易于学习。LuaJava 使用原始的 Lua 实现,使其完整,但正如您指出的那样,安装起来可能很微妙。我至少知道 Lua 的纯 Java 实现:Kahlua。它不完整(除其他外缺少协程支持,但没有它们可以做很多事情),但可能已经可用于您的目标。
不像,比如说,Groovy,它不应该给你的应用程序增加太多开销......

于 2008-09-27T11:04:14.150 回答
2

如果您想全力以赴,您可以使用JSR 223定义的 Java 平台脚本。采用这种方法将允许应用程序使用任何具有一致脚本引擎的语言。

于 2008-09-30T01:15:29.563 回答
1

还有 BeanShell,它的优点是成为完全认可的 JSR,因此可能更容易留下来。

http://www.beanshell.org/

于 2008-09-27T12:22:53.727 回答
1

Java 6 已经提供了 javascript 作为 JSR 223 脚本语言,开箱即用。

于 2008-10-17T09:47:23.833 回答
1

我刚刚阅读了 Steve Yegge 的通用设计模式。这篇文章的主题比 Java 应用程序中的嵌入式脚本要广泛得多,但是由于作者编写了一个允许编写脚本的 Java 应用程序(使用 Jython),因此我发现了一些有趣的深刻观点。

JavaScript 是地球上最好的两种脚本语言之一,在“脚本语言”一词的最正确意义上:即专门设计用于嵌入更大的主机系统然后用于操作或“脚本”的语言主机系统中的对象。这就是 JavaScript 的设计初衷。它相当小,有一些可选的扩展,它有一个相当严格的非正式规范,它有一个精心设计的接口,用于在 JavaScript 中透明地显示主机系统对象。

相比之下,Perl、Python 和 Ruby 是巨大的蔓延,都试图(如 C++ 和 Java)成为每项任务的最佳语言。在编写任意主机系统的脚本方面,唯一与 JavaScript 竞争的其他主流语言是 Lua,它以游戏行业首选的脚本语言而闻名。

我同意他将范围缩小到 JavaScript 和 Lua。

如果没有方便的示例,我所能做的就是说使用 JavaScript/Rhino(或 Lua,一旦它在 JVM 上可用)可能会让我的生活更轻松。

我个人更喜欢 Java 平台上的 JavaScript。用户基数更大。正如 Yegge 所说,它是“世界上最容易被误解的编程语言”,但该语言的可用资源量是一个加分项。犀牛似乎是一只成熟的野兽。

于 2008-10-29T07:44:29.170 回答
1

我目前正在寻找一个允许我使用 Lua 脚本中的 Java 对象和方法的库。

我的第一个想法是也使用 LuaJava,但由于我希望它可以在 Linux、Mac 和 Windows 上运行,我被它除了使用 Java 之外还使用编译库这一事实而推迟了。只有 Windows 预编译的二进制文件可用,而且我不是 Mac 专家,所以我试图在纯 Java 中找到一些东西,我发现了这个:http: //sourceforge.net/projects/luaj

它似乎实现了 Lua 文档中描述的 C API,以及来自 LuaJava 的 API。

该项目看起来非常先进,有来自 Lua (!) 的 Swing 调用示例,它们在我的 Linux 机器上工作。但奇怪的是,邮件列表、论坛和文档真的很少。

我也要在 Windows 和 Mac 上试试这个。希望它有效。

已经提到了 Kahlua,但它只针对 J2ME,这就是为什么它缺少 Lua 的某些部分。我认为有一个名为 Mochalua 的项目具有相同的目标。

另一方面,LuaJ 有两个版本,一个针对 J2SE,它实现了一切(协程也是),另一个针对 J2ME,我认为它缺少 2 或 3 个库(包括需要反射的 LuaJava 东西)。

于 2009-03-13T10:02:22.807 回答
0

你可以考虑Jacl。它基于最初设计为可嵌入脚本语言的 Tcl。因此,有人可能会争辩说,它比其他能够嵌入附加的脚本语言更适合该目的。

特别是如果目标受众是“非核心程序员”,Jacl 是一个不错的选择。聪明的人(尤其是那些没有硬性编程偏见的人)可以在早上轻松掌握 Tcl 语法。

于 2008-09-27T13:33:25.773 回答
0

您可以使用RelProxy - Java,它提供了真正的纯 Java 作为脚本语言,包括用 Java 制作的 shell 脚本,这要归功于它的即时编译。因为 Java“脚本”是共享启动器 ClassLoader 执行的,所以集成很简单。

于 2014-02-19T20:01:24.317 回答