例如,是否可以让Scala,Java和Clojure源在同一个项目中正确编译/构建?或者,我是否必须将它们作为单独的项目库来实现,然后我选择作为“主”项目使用它?
如果这些都没有,那么其他人怎么做呢?
答案 0 :(得分:6)
不幸的是,虽然Java 社区似乎对多语言编程非常热衷,但IDE供应商并没有真正跟上。他们通常做有Java,Scala,Clojure,Groovy,Ruby,ECMAScript,Python,C ++项目的插件,但混合 一个中的多种语言项目通常不受支持。
例如,在Ruby中,通过JRuby将Swing用作GUI是很常见的。但是如果要使用Matisse,NetBeans Swing GUI构建器必须使用Java项目,则不能在Ruby项目中使用Matisse。但是,如果您使用Java项目,那么您不能拥有Ruby主可执行文件,您必须拥有Java主可执行文件。此外,您不会获得Rake支持以及Ruby项目类型支持的其他内容。 (丑陋的解决方法是编写一个Java主可执行文件,手动创建一个JRubyEngine
实例,将 Ruby 主可执行文件加载到其中并运行它。)
Eclipse Scala插件支持有限的多种语言,但是他们必须跳过的箍是巨大的。基本上,他们使用运行时字节码修补将Scala Aspects注入Java Development Tools Eclipse插件,以使类型驱动的跨语言重构工作。与AspectJ一样,Groovy插件做了类似的事情(事实上,他们最初提出了使用方面编织为JDT注入新功能的想法)。因此,所有这些插件都允许使用自己和Java进行多语言编程。但不幸的是没有彼此。 (尽管一些维护者表示有兴趣进行更密切的合作。)
总的来说,我担心唯一的解决方案是新的IDE。
答案 1 :(得分:3)
回答这个问题的时间相当晚,但答案是IntelliJ IDEA在多语言编程方面做得非常好。我最近观看了一个演示,其中一个开发人员使用5种(!)语言编写了混合语言应用程序。
他们设法进行多语言感知语法着色,重构等。他们显然已经为此付出了一些努力,并且有理由感到自豪。
我很高兴地注意到IDEA现在(部分)是开源的。