开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

动态语言 IDE:Aptana Ruby 和 DLTK Ruby

  • 2008-12-24
  • 本文字数:2126 字

    阅读完需:约 7 分钟

大多数人都愿意用 IDE 来写 Java 和 C#代码,因为有代码补全、智能格式化,甚至自动重构。在动态语言的世界,情况则不大一样。

原因之一是缺少类似静态语言使用的那种工具,这是由于为动态语言开发这类工具十分困难。不过好在这些动态语言的程序通常短小而简洁(例如和 Java 相比)。

不过,有时候使用集成开发环境还是很方便的,它可以接管开发者所有的日常任务,从使用源码管理工具、管理项目文件,到编译、调试和部署项目。在这一系列新闻中,我们采访了一些动态语言 IDE 的开发者,来介绍一下这些 IDE 的现状和他们的看法。

我们假定所有的 IDE 都具有一些基础的功能,比如高亮等,因此我们主要关注复杂一些的功能,比如重构(refactoring)。自动重构功能是一个成熟 IDE 的标志,因为这需要对代码做深入详尽的分析。而且这也是一般的多语言编辑器无法提供的功能,除非使用第三方工具。

Aptana Ruby

基于 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 的更多内容。

DLTK Ruby

这个动态语言工具很特别,他们想要把基于 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 的文章感兴趣:

查看英文原文: Dynamic Language IDEs: Aptana Ruby and DLTK Ruby

2008-12-24 00:031666
用户头像

发布了 33 篇内容, 共 54304 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

Volatile 初探和 Java 内存模型

悟空聊架构

SpringCloud 28天写作 passjava 悟空聊架构 12月日更

第二模块学习总结

Anlumina

#架构实战营

equals方法通用约定

李子捌

Java 28天写作 12月日更

homework02

王欣欣

「架构实战营」

Dubbo框架学习笔记六

风翱

dubbo 12月日更

语音信号处理 4:语音的声学特征

轻口味

AI 28天写作 12月日更

CSS之选择器(十一):focus-within

Augus

CSS 12月日更

如何配置 Nessus 漏洞扫描策略?

Ethereal

网络安全 漏洞扫描 网络技术联盟站 Nessus

A 5G Odyssey :2021北京漫游

脑极体

PoE、PoE+、PoE++ 三款交换机如何选择?一文带你了解!

Ethereal

交换机 运维技术 PoE 弱电工程

架构复杂度分析

tony

「架构实战营」

【架构实战营】模块二:命题作业

wgl

「架构实战营」

架构实战营模块二作业

Poplar

架构实战营

模块二作业——微信朋友圈高性能复杂度分析

木几丶

「架构实战营」

「架构实战营」模块二《如何抓住架构设计的关键点》作业

DaiChen

作业 模块二 「架构实战营」

读《思辨与立场》-06 思维的要素 -02

wood

28天写作 批判性思维 思辨与立场

18《重学JAVA》--JAVA异常(二)

杨鹏Geek

Java25周年 28天写作 12月日更

设计模式:责任链模式学习笔记

Changing Lin

12月日更

分析下微信朋友圈的高性能复杂度

Anlumina

#架构实战营

49 K8S之Envoy代理程序

穿过生命散发芬芳

k8s 28天写作 12月日更

架构实战模块2作业

holdzhu

「架构实战营」

模块九作业

bob

「架构实战营」

微信朋友圈高性能复杂度

阿门阿前一颗葡萄树๑

架构实战营 #架构实战营 「架构实战营」

Java程序中如何正确的释放资源

李子捌

Java 28天写作 12月日更

架构实战训练营 - 模块 3- 作业

温安适

「架构实战营」

大系统中的线下团队

张老蔫

28天写作

在线JSON转BigQuery工具

入门小站

工具

大神级插件ScriptRunner案例分享

跟YY哥学Jira

Jira automation ScriptRunner

模块2

Geek_59dec2

架构实战营

SRE在安全方面可以做点啥

勇往直前的胖子

原型模式

卢卡多多

28天写作 12月日更 原型模式

动态语言IDE:Aptana Ruby和DLTK Ruby_Ruby_Mirko Stocker_InfoQ精选文章