写点什么

动态语言 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:031586
用户头像

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

关注

评论

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

经营型项目经理是不是伪需求?

PMO实践

项目管理 敏捷 PMO 项目经理

Spring中获取bean的八种方式,你get了几种?

小小怪下士

Java spring bean

华为云区块链三大核心技术国际标准立项通过

华为云开发者联盟

区块链 华为云

横向对比主流BI软件优势,企业要按需选择

巷子

ISV 的亚马逊云科技 marketplace ( 中国区) 之旅

亚马逊云科技 (Amazon Web Services)

亚马逊云科技 Tech 专栏 Marketplace

云原生系列 【轻松入门容器基础操作】

叶秋学长

云原生 沙箱实验 11月月更

【从零开始学爬虫】采集猫眼电影热门资讯数据

前嗅大数据

爬虫 数据采集 爬虫软件 爬虫教程 数据采集教程

为什么 NGINX 的 reload 不是热加载?

API7.ai 技术团队

Apache nginx 开源 api 网关 APISIX

【看球和学Go】错误和异常、CGO、fallthrough

王中阳Go

Go golang 面试题 Go web 11月月更

BSN-DDC基础网络DDC SDK详细设计(六):交易查询、区块查询、签名事件

BSN研习社

BSN

从react源码看hooks的原理

flyzz177

React

火山引擎 DataTester 应用故事:一个A/B测试,将产品DAU提升了数十万

字节跳动数据平台

大数据 AB testing实战

【11.18-11.25】写作社区优秀技术博文回顾

InfoQ写作社区官方

热门活动

流程编排、如此简单-通用流程编排组件JDEasyFlow介绍

京东科技开发者

数据库 架构 服务端 流程引擎 流程编排

聊一聊装饰者模式

Java 设计模式

从 Uber 数据泄露事件我们可以学到什么?

SEAL安全

数据安全 企业安全 PAM

基于 RocketMQ 的 Dubbo-go 通信新范式

Apache RocketMQ

RocketMQ RPC dubbo-go dubbogo

转化10亿GMV:螺丝钉也能变小马达

博文视点Broadview

一个PMO从0-1建设的工作思路 | 对你绝对有用!

PMO实践

项目管理 PMO

好好的系统,为什么要分库分表?

程序员小富

Java 数据库 面试 分库分表

python常用内置函数用法精要(二)

乔乔

11月月更

信创产业多点开花,AntDB数据库积极参与行业标准研制,协同价值链伙伴共促新发展

亚信AntDB数据库

AntDB aisware antdb AntDB数据库

瓴羊Quick BI,强劲数据引擎助力企业数据分析

夏日星河

从源码角度看React-Hydrate原理

flyzz177

React

Fiori Elements 框架里 Smart Table 控件的工作原理介绍

汪子熙

SAP Fiori SAP UI5 ui5 11月月更

BSN开放联盟链“武汉链”新版浏览器wuscan.io正式上线发布

BSN研习社

BSN 武汉链

只需5步注册成为亚马逊云科技 Marketplace (海外区)专家

亚马逊云科技 (Amazon Web Services)

亚马逊云科技 Tech 专栏 Marketplace

链上挖矿分红智能合约DAPP系统开发部署模式定制

开发微hkkf5566

从recat源码角度看setState流程

flyzz177

React

C++中的代码重用

Maybe_fl

HDC2022的无障碍参会体验,手语服务是如何做到的?

HarmonyOS SDK

HMS Core

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