用Java编写脚本

efl*_*les 8 javascript python java scripting-language

我和一些朋友正在用Java编写MORPG,我们希望使用脚本语言,例如.创建任务.

我们没有使用Java编写脚本的经验.我们使用过Python,但我们对它缺乏经验.我们其中一个人也使用过Javascript.

我们应该使用什么脚本语言?我们不应该使用什么脚本语言?

小智 9

我负责一个相当大的混合Java/Jython系统.我们使用java进行核心API开发,然后使用Jython将Java对象连接在一起.这是在科学计算环境中,我们需要能够快速组合临时数据分析脚本.

如果我今天从头开始使用这个系统,我不会选择Jython作为脚本语言.我很喜欢Python,但我经常遇到Python类型系统和Java类型系统之间的尴尬不匹配.例如,如果您只想要一个哈希表,您应该使用Python字典还是Java HashMap?根据您是在Python代码中本地使用数据结构还是将其传递到Java边界,决策可能会有所不同.Jython为你做了一定的类型强制,但它并不完美.当首先使用脚本语言的目的是提高您的工作效率时,甚至不得不考虑这样的问题是很烦人的.

我认为JavaScript或JRuby会有类似的问题.今天我将选择一种专门针对JVM的脚本语言,并利用Java类型系统.显而易见的候选人是Groovy和Beanshell; Groovy最近似乎一直在增长势头,所以我最关注它.


Chr*_*ung 7

我同意Viktor的Jython建议.除了那个和JavaScript(你已经提到过,并且通过javax.script包构建在Java 6+中)之外,GroovyJRuby也值得关注.

顺便说一下,你应该看看Wyvern,也是一个用Java编写并使用Jython编写脚本的MMORPG.其作者Steve Yegge不时有很多话要说.:-)


cau*_*tic 5

Java支持各种(脚本)语言,其中一些语言在此处此处列在维基百科中.您可能应该选择具有强大DSL和元编程功能的语言,例如Clojure.

但是如果你需要更简单的东西,JavaScript可能是一个可行的选择.