大多数人都愿意用IDE来写Java和C#代码,因为有代码补全、智能格式化,甚至自动重构。在动态语言的世界,情况则不大一样。
原因之一是缺少类似静态语言使用的那种工具,这是由于为动态语言开发这类工具十分困难。不过好在这些动态语言的程序通常短小而简洁(例如和Java相比)。
不过,有时候使用集成开发环境还是很方便的,它可以接管开发者所有的日常任务,从使用源码管理工具、管理项目文件,到编译、调试和部署项目。在这一系列新闻中,我们采访了一些动态语言IDE的开发者,来介绍一下这些IDE的现状和他们的看法。
我们假定所有的IDE都具有一些基础的功能,比如高亮等,因此我们主要关注复杂一些的功能,比如重构(refactoring)。自动重构功能是一 个成熟 IDE的标志,因为这需要对代码做深入详尽的分析。而且这也是一般的多语言编辑器无法提供的功能,除非使用第三方工具。
基于Eclipse的Ruby开发工具已经得到了广泛使用,尤其是在Rails开发中,RadRails提供的扩展非常好用。RDT和RadRails都已经集成到Aptana Studio中了。而且RDT的主要开发者Chris Williams也受雇于Aptana。
Aptana的Ruby Studio一直都静悄悄的,少有动静。因此我们找到了Chris,谈一谈最近有什么新动态。
在过去的6到7个月,我正在忙着我们的新产品——Aptana Cloud。我一直在做关于API/server的所有工作,其用于协调Aptana Studio、第三方托管商,以及装着网站的主机本身。
正因如此,我不再像过去那样有那么多时间给用于Ruby支持和RadRails了。现在我基本上一有空就在修复bug,还有把Cloud支持工具化。如今Cloud已经公布了,我得去实现Rails支持。然后才能差不多全职回到RDT/RadRails上来。
Chris还说他们正在招兵买马,“确保插件开发能稳定地持续下去”。Ruby开发者要是想扩展他们的IDE,不必再用Java。
我们有一个插件,能让终端用户用Ruby代码来调用一小部分Eclipse编辑器API——这样只懂Ruby的人就能够用它写一些小的宏/脚本。如果是JRuby专家,就能用Ruby写出自己的扩展,访问所有的Eclipse API。
提示:InfoQ之前谈到过JRuby Eclipse脚本编程。
Aptana现在支持Ruby、JavaScript、Python和PHP。下一个会支持什么语言?
我们一直在寻找社区中喜欢用什么开发web插件。当我们看到了足够的支持的时候,就会投入到这个领域。我们在洗耳恭听:让我们知道你们需要什么。
下一步的计划是把Studio合入现在的Eclipse Ganymede版本,“添加更多的高级Cloud支持,修复更多的大bug,然后我就能松一口气,在1.3.x RadRails的时间表上制定下一步计划了”。
Ruby开发工具早就支持重构了,实现了比如重命名、扩展、移动和方法内联。尽管这种重构还不够傻瓜化,也不可能在所有情况下都好用,但在多数情况下,能够显著减少手工复制粘贴(本文就是利用自动补全写成的)。
Aptana和RadRails标签里面有关于Aptana IDE的更多内容。
这个动态语言工具很特别,他们想要把基于Eclipse的动态语言IDE所需要的所有可重用的组件都集成到一个框架中,由此来帮助实现对新语言的支持。Ruby是DLTK最早的语言之一,再加上TCL,构成了DLTK的核心。
不幸的是,DLTK的动静也不太大。于是我采访了它的项目负责人Andrey Platov:
一提到TCL,我们就会想到DLTK TCL是最好的TCL IDE之一。我们仍在改进它,并打算把它集成到TCL解释器上。这些工作不是很容易看到。
关于Ruby(还有通常所说的DLTK):第一,DLTK(包括Ruby组件)是一个平台:我们一开始就没打算满足所有终端用户的需求。例如我们从来没有 计划过对Ruby on Rails提供任何支持。DLTK Ruby的目标是为其他厂商提供稳定、干净的Ruby语言平台,让他们基于其创建功能完整的工具。一个很好的例子是来自CodeGear的一个综合 Ruby IDE,叫做 3rdRail。它就是基于DLTK Ruby的。
以 上这些并不是说DLTK Ruby不能独立使用。它作为一个很好的Ruby编程工具,许多语言爱好者都用它。我们不强迫开发者采用Ruby on Rails风格,也不迫使他们用RSpec……只是纯粹的语言,和开发者的创新。从另一个角度来看,这样一个“干净”的IDE,是厂商开发产品的一个很好 的平台,支持框架和他们选择的技术,并且他们已经免费拥有了顶级的语言支持。
回到你的问题上,我们现在的工作就是让DLTK Ruby更好地“理解”语言,更妥当地处理Ruby代码。
“试试看代码补全功能”,Andrey指给我看。将来的计划是改进语言支持,来“更好地理解Ruby,提供比如代码分析、重构和快速修正功能”。
DLTK暂时没有打算支持更多的语言,但他们“在为一些公司提供咨询,开发他们自己的语言的IDE”。Andrey还说,“基于DLTK的PHP开发工具(PDT)2.0即将发行”。还有一些基于DLTK的IDE正在开发,包括ANTLR、Lua、D、Perl和Scheme。各种DLTK开发包在Dynamic Languages Toolkit网站可以下载。
这篇新闻是我们一系列动态语言IDE介绍的一部分。其余的部分可以在InfoQ的“动态语言IDE”标签中找到。要是你对Ruby IDE的介绍感到意犹未尽,你或许对InfoQ的Netbeans支持Ruby的文章感兴趣:上、下。