NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

以技术驱动云上创新增长,阿里云计算峰会上海完美收官

互联网 存储 云服务 科技 计算

使用 Chrome 调试 Vue3 的 TypeScript 源码

编程三昧

源码 Vue Vue 3 9月日更

2021金九银十,啃完这35个Java技术栈,冲刺百万年薪不是梦

Java 架构 面试 程序人生 编程语言

车载高速CAN(HighSpeed CAN)通信基本原理讲解

SOA开发者

浅谈加密基础设施

I

基础设施 信息安全 加密 密码学 加密基础设施

如何撬动企业数字化转型?智能客服是关键支点

ToB行业头条

阿里耗时三月整理的亿级流量百万并发手册,在上传在GitHub上意外获星90K+

Java 架构 面试 程序人生 编程语言

课程升级 | 极速构建知识体系,即学即用 Serverless

阿里巴巴云原生

阿里云 Serverless 云原生 活动 课程

GitHub上120K Stars国内第一的Java多线程PDF到底有什么魅力?

Java 编程 架构 面试 程序人生

JavaScript 的 undefined和null 的区别与判断

wudaxue

突发猛进!数字人民币落地推广会召开

CECBC

Alibaba内部最新Java架构核心宝典 (全彩版小册开源)

Java 架构 面试 程序人生 编程语言

vivo全球商城-营销价格监控方案的探索

vivo互联网技术

后端 服务器 监控系统 营销数字化 亿级架构设计

剖析反序列化原理基本操作

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞分析

2022前端react高频面试题汇总

buchila11

React

Prometheus 2.29.0 新特性

耳东@Erdong

release Prometheus 9月日更

多媒体技术之图像频率的概念

轻口味

android 音视频 9月日更

面对低碳转型 央行的两条思路和五大措施

CECBC

我国智能汽车产业环境与政策导向

SOA开发者

阿里P8连肝三月,终于整理出的完美Java面试宝典,上传到Git上目前star数达到30K+

Java 架构 面试 程序人生 编程语言

音视频同步!RTCP 协议解析及代码实现

声网

音视频 协议 Wireshark 流媒体

国庆临近,字节后端开发3+4面,终于拿到秋招第一个offer

Java 架构 面试 后端 计算机

@InjectMocks 使用

且听且吟

java 虚拟机 GC :G1学习笔记

风翱

GC 9月日更

一文带你掌握工作流引擎flowable所有业务概念

小鲍侃java

后端 引航计划

垂直CRM,能否走到终局?

ToB行业头条

如何加速云原生数据应用?这个开源项目备受关注

阿里巴巴云原生

阿里云 开源 云原生 Fluid

阿里大佬熬了三月,总结出了这套分布式架构手册,在Github上疯传!

Java 架构 面试 程序人生 编程语言

ThingMap一键城市2.0重新出发:快速生成三维城市

ThingJS数字孪生引擎

地图 物联网 可视化 数字孪生

智能汽车的定义是什么?

SOA开发者

Log4j2同步打印日志导致线程阻塞问题剖析

快看工程技术中心

Java 线程 log4j java反射 异常处理

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