我应该使用Jython,JRuby,Beanshell,Groovy,Rhino,还是用于这个小任务?

Ale*_*x R 6 java perl programming-languages jython beanshell

我有一些批量数据操作脚本,支持小型企业网站.

这些脚本是Perl,Java和存储过程的"老鼠巢",它们按计划运行,以根据各种源和算法更新数据.

我想摆脱Perl,这样我至少可以通过在开始到结束时在JVM管理的数据库连接中包含整个进程来利用事务管理.

我应该利用哪种Java动态/脚本语言来满足以下条件:

  • 通过提供类似的表达能力,I/O,正则表达式等来直接迁移Perl代码.
  • 良好的IDE支持,包括代码完成和调试,最好是在Eclipse中
  • 易于安装.优选地,整个脚本引擎应该在单个jar文件中.
  • 不是孤立的技术.我想选择5年内仍会存在的东西.
  • 当然 - 与我已经拥有的其余Java代码完全集成.

我希望我的标准足够清楚,这不会被标记为主观问题.

对我来说,这绝对是一个编程问题.我认为所有这些语言都只是"有用的java库".

谢谢!

oco*_*odo 2

公平地说,Jython、JRuby、Groovy 都是不错的选择。它们都具有良好的 IDE 支持,并且语法比 Perl 更富有表现力且更简洁。(Python 和 Ruby 在其概念上都受益于 Perl,因此从 Perl 移植并不是太令人头疼)

当然,Beanshell 和 Javascript(以 Rhino 的形式)也足够了,尽管我想说它们的语法表达能力较差。

根据当前的使用趋势来判断,我认为 Jython 和 JRuby 可能是相对于其他语言而言拥有最普遍支持/最长寿的两个语言。

实际上,选择取决于您对每种语言的水平,但在所有这些语言中,我建议您使用 Jython,但如果您更喜欢 Ruby,请使用 JRuby。

  • 唯一的区别是大括号(为简洁起见,不会添加或删除)和命名参数,而不是通用 Perl 的“@_”参数列表,后者可以在 1 行中扩展为命名参数。我不确定我是否同意这两个“比 Perl 更简洁”,特别是在您需要比传递 3 个标量更复杂的参数处理的情况下(我很想看看 Ruby/Python 如何处理获取参数列表,附加另一个列表的内容并将其传递给另一个函数。Perl 就像 `sub f1 () { my @append=(1,2,3); f2(@_, @append); };` 一样简单 (2认同)