写点什么

动态语言 IDE:Aptana Pydev 和 DLTK Python

  • 2008-12-25
  • 本文字数:1608 字

    阅读完需:约 5 分钟

我们很荣幸地宣布,倍受欢迎的 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 需要更多的信息(对于重构来说),所以它的代码其实已经有了一个分支(而且上面还有更多的工作来提供那些信息)。还有,从 速度的方面来说,通过一些分析,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 中,因此重构功能还能从中得到改善。但我们不知道什么时候才能完成,因为我们都有很多其他事情在忙。

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

2008-12-25 11:231858
用户头像

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

关注

评论

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

聚焦银行APP用户体验,易观千帆GX指数即将独家首发

易观分析

易观

Vue基础学习(五)

Studying_swz

Vue 11月月更

Java Web(五)Web

浅辄

tomcat javaWeb 11月月更

SAP UI5 数据绑定中的工厂函数

汪子熙

SAP Fiori SAP UI5 ui5 11月月更

麒麟信安携手 openEuler 支撑国家电网首批数字换流站试点项目安全高效运行

openEuler

Vivado安装和使用

芯动大师

Verilog FPGA系统 vivado 11月月更

一款超好用的Json编辑工具

Jackpop

1.6k Star!可以优雅的使用Git了。。。

Jackpop

运维进阶训练营 -W03H

b1a2e1u1u

运维

Python进阶(二十六)多线程实现同步的四种方式

No Silver Bullet

Python 多线程 11月月更

深入Redis数据结构和底层原理

闫同学

redis 缓存 11月月更

汽车产业“芯事”何解?

易观分析

汽车芯片

opensd开源啦 !这套自动化部署OpenStack工具你值得拥有

openEuler

开源 操作系统 openEuler OpenStack

涨姿势了,这 4 个场景可用 CSS 完全取代 JS ~

掘金安东尼

前端 11月月更

CSS的学习笔记(五)

lxmoe

CSS 前端 学习笔记 11月月更

Zebec Chain有望成为公链赛道新兴生力军,地平线计划持续进击

西柚子

探知数字化研发1-前言篇

薛飞

数字化 软件研发

【愚公系列】2022年11月 微信小程序-app.json配置属性之networkTimeout

愚公搬代码

11月月更

2022-11-11:设计一个最大栈数据结构,既支持栈操作,又支持查找栈中最大元素。 实现 MaxStack 类: MaxStack() 初始化栈对象 void push(int x) 将元素 x 压

福大大架构师每日一题

Java 算法 福大大

Python进阶(二十五)Python读写文件

No Silver Bullet

Python 文件读写 11月月更

类继承

Maybe_fl

定了,2022双11 技术进化开启新未来

阿里技术

双11

计算机网络:随机访问介质访问控制之令牌传递协议

timerring

令牌桶 11月月更

【LeetCode】分割数组Java题解

Albert

算法 LeetCode 11月月更

Zebec Chain有望成为公链赛道新兴生力军,地平线计划持续进击

小哈区块

Vue基础学习(四)

Studying_swz

Vue 11月月更

Java实现List中集合的元素进行排序

共饮一杯无

Java List 11月月更

算法题学习---链表中环的入口结点

桑榆

算法题 11月月更

Go-MySQL-Driver,让Go语言拥抱MySQL

闫同学

Go MySQL 11月月更

初探Apollo远程服务配置中心

闫同学

阿波罗 11月月更 apllo 远程配置中心

部署和体验Helm(2.16.1版本)

程序员欣宸

Kubernetes Helm 11月月更

动态语言IDE:Aptana Pydev和DLTK Python_Java_Mirko Stocker_InfoQ精选文章