我认为最好的三个选项是Groovy、Python和Scala。这三种方法都允许您在较高级别编写代码(与C/Java相比)。Python有自己完全足够的DB绑定,Groovy和Scala可以使用Java专用的绑定。在
Python的优点是它已经被广泛使用,因此有大量的工具、库、专业知识等围绕它。它有一个特别干净的语法,这使得它的工作在美学上令人愉快。缺点是速度慢(这对您来说可能不是问题)、非类型化(因此您会出现运行时错误,而不是编译时错误),并且您不能在Jython和Python之间来回切换,因此您必须选择是否需要大量的Python内容,还是大量的Java内容,减去大量优秀的Python东西。在
Groovy的优点是您已经了解它,并且它可以很好地与Java库进行互操作。它的缺点还包括速度慢和缺少静态类型。(因此,与Python相比,选择是:您更看重Python干净的语法和广泛的采用,还是更看重一种能够在这种环境中很好地工作的语言中的大量Java库?)在
Scala的优点是它是静态类型的(也就是说,如果代码通过了编译器,它就有更大的工作机会),速度很快(如果你足够努力的话,它可以和Java一样快),并且可以很好地与Java库进行互操作。缺点是,要使静态类型工作起来,它会给您带来更多的工作(尽管远比Java少,同时也更安全),Scala的规范风格是一种混合的对象/函数的混合体,与其他两种风格相比感觉更为不同(因此需要更多的培训才能在IMO中充分发挥作用)。与Groovy相比,问题是熟悉性和易于入门是否比速度和正确性更重要。在
就我个人而言,我现在用Scala做几乎所有的工作,因为我的工作需要速度,而且编译器能捕捉到我经常犯的那种编码错误(因此,这是我使用过的唯一一种语言,当我编译完大段代码后,我不会感到惊讶)。但我在其他环境中也有过很好的Python经验——与大型数据库接口似乎是一个很好的用例。在
(我排除了Perl更难维护,没有Python的显著优势,也排除了Ruby没有Python强大到足以保证不那么直观的语法和较低的采用率/工具可用性的可能性。)