BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

动态语言IDE:Aptana Pydev和DLTK Python

| 作者 Mirko Stocker 关注 0 他的粉丝 ,译者 贾晓楠 关注 0 他的粉丝 发布于 2008年12月26日. 估计阅读时间: 6 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!
Aptana正日益巩固着其在IDE市场的地位。在接管了Matt Kent和Kyle Shank的RadRails之后,他们也成了Fabio Zadrozny的雇主。Fabio Zadrozny是基于Eclipse的Pydev的主要开发者。
我们很荣幸地宣布,倍受欢迎的Python和Jython的IDE——Pydev——现在是Aptana产品家族的成员了。还有,Pydev的创建者Fabio Zadronzy将会作为Aptana团队的一员,继续改进Pydev。
我们采访了Fabio,来谈谈Pydev的现状和未来。我们问他Pydev和其他IDE有什么区别:
我的回答可能有点偏袒,但我觉得它的代码智能化特性,例如代码补全就非常棒。要是你添加Pydev扩展,它的代码分析是一个python程序员 不可或缺的功能(当然它还具有调试、最近加入的互动控制台、定义查找,以及其他编辑器特性等等)。Eclipse系统也对它有所帮助,比如用户可以管理多 个项目,例如用Subversive、Mylyn等。
既然Pydev是一个Aptana产品了,它对于用户会有什么变化吗?有些人对Aptana的其它产品没有兴趣,对他们来说,Pydev还会是一个独立的IDE吗?
我认为,作为Aptana的产品,Pydev会同步提升其质量和支持服务。因为Pydev用户一直在增长,维护起来越来越困难,我一个人难以应对。(尽管有一些贡献者也时常在维护它,但直到现在,还没有人为它的稳定性做开发)。
 
第二个问题的答案是肯定的。它仍会是一个独立的Python专用IDE,不在Aptana Studio中。
Pydev使用它自己的解析器,其派生于Jython,针对新版Python的更新做了完善。现在Jython 2.5有了一个新的基于ANTLR的解析器,你有没有打算把它迁移到Pydev上?
还没有…… Pydev解析器比Jython需要更多的信息(对于重构来说),所以它的代码其实已经有了一个分支(而且上面还有更多的工作来提供那些信息)。还有,从 速度的方面来说,通过一些分析,Pydev解析器仍比Jython解析器要快(即使有更多的信息——解析速度对Pydev来说非常重要)。
Pydev将来打算加入什么功能?
我一般不预先计划什么功能…… 要是时机到了,我就会看看功能请求,选出其中我觉得比较实用的(也是请求较多的)。现在我正在做一些工作,让它支持Eclipse 3.2到3.4(并确保现有功能不受影响)。
Pydev的一个特色就是它的重构功能。我们采访了Robin Stocker和Reto Schüttel,他们这个团队在一个专题项目中实现并扩展了大部分的重构功能。
 
你们提供了哪些重构功能?
我们的项目实现了以下这些重构功能和构建器:
  • Docstring构建
  • 局部变量内联
  • 局部变量抽取
  • 局部变量重命名
  • 方法重命名
  • 属性重命名
  • 类重命名
它的智能化做的如何?我干嘛不直接用查找/替换呢?
你可以用查找/替换,但你需要查看每行搜索结果,并决定要不是重命名。还有,要在多个文件中查找替换可是件烦人的事。
 
举例来说,你想重命名“Puzzle”类的“solve”方法,但又不想影响到局部变量“solver”和“Solver”类的“solve”方法。
 
我们的重命名功能相当的智能,它会理解代码,并决定是否要对某方法重命名。它知道局部变量“solver”和方法“solve”是无关的,还有那个属于“Solver”类的“solve”也不应该被重命名。
为了做这样一个智能判断,我们实现了一个Python的类型推理系统。它是基于DLTK的人在Ruby IDE中所使用算法。
新的重构功能基本上都加入到Pydev中了。将来还有什么计划?
在目前正在做的一个项目里,我们抽取出类型推理引擎,并把它放到一个独立的项目中继续改进,这样可以用于其他目的
 
下一步会把增强的类型推理引擎重建集成到Pydev中,因此重构功能还能从中得到改善。但我们不知道什么时候才能完成,因为我们都有很多其他事情在忙。
关于Pydev的更多信息可以在Pydev网站上看到,还有在Aptana上的新地址

DLTK Python

DLTK也支持Python,但仍处在孵化阶段。其项目负责人Andrey Platov这样解释:

这意味着没有活跃的开发者在做Python,DLTK python不如Ruby那么重要,因此“孵化”这个词就是在说:“嘿,这玩意还在孵化箱里呢,请别把它当作一个马上能用的IDE。”

[…] 要是Python组件能达到Ruby和TCL的水平就好了。但我们没有资源来做这些。我们开始一直把它当作一个概念验证,但现在已经有了足够多不同的语言在DLTK上实现,所以我已经不再怀疑:Python IDE能够无缝地结合到DLTK框架中。

这篇新闻是动态语言IDE系列介绍的一部分。其余的部分见InfoQ的动态语言IDE标签

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

pydev 确实有点卡 by 果 林

pydev 确实有点卡.
使用了Psyco加速效果也不是非常明显, 而且, 代码提示功能非常弱, 调试信息也很弱.
在Eclipse上Python的插件几乎没有. 只是希望Pydev可以越来越好.

Re: pydev 确实有点卡 by Z Flytwokites

pydev实在不怎样,我用到的基本上也只是代码着色功能。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT