我和一些朋友正在用Java编写MORPG,我们希望使用脚本语言,例如.创建任务.
我们没有使用Java编写脚本的经验.我们使用过Python,但我们对它缺乏经验.我们其中一个人也使用过Javascript.
我们应该使用什么脚本语言?我们不应该使用什么脚本语言?
我负责一个相当大的混合Java/Jython系统.我们使用java进行核心API开发,然后使用Jython将Java对象连接在一起.这是在科学计算环境中,我们需要能够快速组合临时数据分析脚本.
如果我今天从头开始使用这个系统,我不会选择Jython作为脚本语言.我很喜欢Python,但我经常遇到Python类型系统和Java类型系统之间的尴尬不匹配.例如,如果您只想要一个哈希表,您应该使用Python字典还是Java HashMap?根据您是在Python代码中本地使用数据结构还是将其传递到Java边界,决策可能会有所不同.Jython为你做了一定的类型强制,但它并不完美.当首先使用脚本语言的目的是提高您的工作效率时,甚至不得不考虑这样的问题是很烦人的.
我认为JavaScript或JRuby会有类似的问题.今天我将选择一种专门针对JVM的脚本语言,并利用Java类型系统.显而易见的候选人是Groovy和Beanshell; Groovy最近似乎一直在增长势头,所以我最关注它.
我同意Viktor的Jython建议.除了那个和JavaScript(你已经提到过,并且通过javax.script
包构建在Java 6+中)之外,Groovy和JRuby也值得关注.
顺便说一下,你应该看看Wyvern,也是一个用Java编写并使用Jython编写脚本的MMORPG.其作者Steve Yegge不时有很多话要说.:-)
Java支持各种(脚本)语言,其中一些语言在此处和此处列在维基百科中.您可能应该选择具有强大DSL和元编程功能的语言,例如Clojure.
但是如果你需要更简单的东西,JavaScript可能是一个可行的选择.