写点什么

专访 Guido van Rossum:迎接 Python 3000

  • 2007-06-11
  • 本文字数:2891 字

    阅读完需:约 9 分钟

Guido van Rossum 是 Python 编程语言的创始人,现在就职于 Google 公司,但在他的大部分时间里他都还在为 Python 语言的发展而努力。自 1989 年 Guido 在 ABC 与语言的基础上创建了 Python 语言,目前这门语言不仅得到其他开发社区的认可,比如 JPython 和 IronPython 的广泛应用,在教育和科学技术领域也起到举足轻重的作用,据 Guido 介绍,Python 甚至可以和价格昂贵的 Matlab 等商业软件相媲美。在 5 月 31 日举行的 Google 开发者日期间,InfoQ 中文站的编辑霍太稳对 Guido van Rossum 就 Python 的相关话题进行了交流。

InfoQ 中文站:你为什么决定加入 Google?目前在 Google 的主要工作是什么?

Guido:首先,我决定加入 Google,是因为我有很多朋友都是 Google 的员工,他们告诉我说 Python 是 Google 的三大主要编程语言之一,在 Google 工作的感觉很棒,于是我就加入进来了。现在我在 Google 的工作主要有两部分。一部分工作是 Python3000 的开发项目,因为我们现在要出 3.0 版本;另一部分工作是为 Google 内部的工程师提供开发工具,比如我开发了一个代码检测(CodeReview)工具,用于工程师之间相互检测编码,收到了很好的效果。

InfoQ 中文站:Python 未来的发展方向是什么?Python3.0 中最值得关注的特点是什么?

Guido:现在我们所做的是尽快开发出新的版本 Python 3000 。Python 3000 的推出应该是在明年夏天北京奥运会的时候。编程语言的发展通常有两种方式,一种是传统的方式,它使得语言越来越复杂。另一种是创新式,Python 3000 将坚持走新的编程语言路线。Python 3000 中,我们将更加简化编程语言,去除所有的图形功能,取而代之以更加简洁和优雅的新特征。Python 3000 中较为明显的一个特征就是增加了对 Unicode 的支持,比如你可以在定义变量、创建函数或定义类名上直接使用中文来进行编写。但是,对于一些核心的关键字,还是会保留使用英文。

InfoQ 中文站:现在 Python 似乎受到了来自 Ruby 的挑战,后者更加面向对象,你如何比较这两种出色的动态语言?Ruby 在元数据编程方面似乎更加方便,Python 是否可能在这方面有所改进?

Guido:你刚才提到,相比 Python,Ruby 是更多地面向对象的编程语言,对此我不敢苟同。其实,Python 也是面向对象的。在 Google 公司,曾经有人提出要用 Ruby 来编程,而且也得到 Google 管理层的支持。于是,他们用 Ruby 来做项目,最后却失败了。失败的原因不在于 Ruby 语言本身是否比 Python 更好或者更差,而在于 Google 内部用不着花费那么多的金钱和精力去支持多种语言。从编程的角度来说,我想 Python 3000 会有所改进,如引进泛型函数(generic functions)、抽象类(abstract class)等。我相信 Python 目前在很多方面都比 Ruby 更成熟,比如说它的运行速度更快、用户数量更多,而且支持第三方的编码软件数量也更大。

InfoQ 中文站:刚才你也说到 Python 的性能比 Ruby 好很多,但是 Python 到现在为止还未出现向 Ruby-on-Rails 这样的 Killer Application。你如何看待 Ruby-on-Rails?Python 社区何时可以出现这样的杀手锏应用?

Guido:对于杀手锏应用,我个人并不十分迷信。如果你太看重杀手锏应用的话,实际上你可能会把焦点放错地方,或者你可能太专注于某一个方面。刚才你谈到 Ruby on Rails 这个框架,实际上是因为 Ruby 它只有这样一个 Web 应用的框架。而 Python 则有好几个应用框架,比如 Django(这是一个非常不错的框架)、TurboGears(有人说它完全可以和 Rails 媲美)、Zope 等。这些 Web 框架与 Ruby on Rails 相比,发展时间更长,也更成熟。另外,我还想特别提到的一点是,Python 也已经进入到科学研究的领域。实际上,在美国、还有欧洲的很多政府和学术界的实验室已经开始使用 Python 来替代一些商业化的工具,同时还专门建立了一个数字库(numeric library)来更好地支持 Python。而且,Python 也广泛地为教育界所采纳。美国的很多初中、高中以及大学(包括麻省理工、剑桥大学等)一二年级的学生,通常将 Python 作为其在编程语言方面的入门级课程。

InfoQ 中文站:现在比较流行的是在虚拟机平台上支持动态语言,像微软有 DLR(Dynamic Language Runtime),Java 也有类似的 Jython,你如何评价.NET 平台下的动态语言支持和 Jython 之间的竞争?我们是否能够看到动态语言之间的兼容性,比如放在一个平台上如 JSR 292?

Guido:我认为微软能够接纳 Python 是一件很好的事情。对于 JVM 上的 Jython,我也是非常支持的。 我很高兴看到,通过改进平台对动态语言的支持等项目,动态语言终于获得了它们应得的认可。.NET 和 Java 世界都在飞快地增长,两者之间的竞争是显而易见的。我不知道下一步将会出现什么情况。但是我想,在很长一段时间内,两者对于全世界的开发者来说都是很重要的。我很高兴,Python 能够成为这两个平台上解决方案的一个重要部分。随着人们对 Python 支持的增加,使用 Python 的人也会越来越多。

对于动态语言之间的兼容性,我想当然是有这种可能的。.NET 平台和 JVM 都支持元语言(meta language),.NET 从一开始就是为支持元语言而创建的,JVM 也可以用于元语言并增强支持。JSR 292 并不一定要使得动态语言的运行速度更快。我想,你在这些平台上能看到的最大用处,不是这么多的动态语言之间的相互兼容,而更多的是动态语言与用静态语言(如 JVM 上的 Java,以及.NET 上的 C#)来写的库之间的兼容,我想这将是一种更为常见的编程方法。所以,你可以看到动态语言之间的一些联系,平台通过一些对象类型、或者基本的数据如 String 或者 Class 等使之具备兼容的可能性。由于每一种语言在接口上能够与另一个平台实现很好的兼容,所以要成功地在动态语言之间实现兼容也是有可能的,但是不能指望它成为这些平台上的杀手锏应用。

InfoQ 中文站:我知道在 Python 2.5 当中增加了一个新的条件负值语法规则,而且 Python 文档里说是 Guido 最后决定采用这种形式,我非常好奇您自己为什么选择这样的形式?

Guido:其实我本人一开始不是非常愿意的,因为我的宗旨是把 Python 做成非常小巧的,人脑能够记住和能够把握的语言,而不是经常查阅用户手册。因为有时候一个功能一个月才能用到一次。其实在很多年之前就有人向我建议,说建议加入这样的语法。后来越来越多的人告诉我说他们经常用到这个语法。其实没有这个语法也是豪无问题的。但最后我妥协了,将这个语法加进来了。

InfoQ 中文站:事实上,Python 在中国的使用者还是比较少,而且限于高水平的开发人员自娱自乐,请问你有没有什么好的建议来推动 Python 在中国的发展?

Guido:关于这一点,我想可以有很多方式来做。比如, CSDN 网站上有人在翻译我的英文 Blog 。出版社也可以考虑出一本中文的 Python 教程或图书,或把一些现有的 Python 书籍翻译成中文。另外,也可以组织一些 Workshop 或者会议,例如在美国、欧洲、阿根廷、韩国等地都会每年举办一次 Python 的大会,有各种用户组合开发者社区的活动。我认识一些人,他们在北京成立了一个 Linux 用户组,我想这对我们 Python 在中国启动用户组是一个很好的开端。

(InfoQ 中文站编辑 Jason Lai 和博文视点出版公司编辑方舟对此文亦有贡献!)

2007-06-11 03:137317

评论

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

运动健康路线导入,助力用户轻松导航

HMS Core

HMS Core

用注解的方式优雅实现Ression分布式锁

做梦都在改BUG

Java 分布式锁 Ression

从 1000+ 参赛项目突围,涛思数据荣获 ITEC 2022 全球创业赛成长组二等奖

TDengine

tdengine 物联网 时序数据库 数字经济 大数据 开源

前端和低代码两者藕断丝连的关系

这我可不懂

前端 低代码 JNPF

百度大健康行业如何打造医美IP爆点?这波“悦己”营销有颜又有料!

Geek_2d6073

最佳实践 | 用腾讯云智能语音打造智能对话机器人

牵着蜗牛去散步

腾讯云 腾讯 语音识别 语音合成 智能对话机器人

数据出境是什么意思?我国数据出境合规要求是什么?

行云管家

数据 数据安全 堡垒机 数据出境

低代码平台搭建CRM 加速重构业务模式

力软低代码开发平台

LED透明屏私人定制势不可挡

Dylan

电子 LED显示屏 屏幕

限时公开,2023 年阿里巴巴 Java 面试权威指南(全彩版)

架构师之道

Java 面试

小程序营销模版——企业和开发者的应用形态

没有用户名丶

小程序容器

弯道超车!阿里高工新产Java面试速成指南,面试骚操作都在里面了

Java你猿哥

Java 面试 面经 Java工程师 春招

2023字节、腾讯、阿里等6家大厂Java开发面试真题+高频面试题总结

小小怪下士

Java java程序员 java面试 Java面试题

凭借左程云(左神)的这份 “程序员代码面试指南”我入职了字节

Java你猿哥

Java 算法 数组 二叉树 面经

手慢无!阿里云神作《Spring Boot进阶原理实战》真的太全了!

做梦都在改BUG

Java 微服务 Spring Boot 框架

AI + Kubernetes 赋能DevSecOps 的思考

HummerCloud

人工智能 Kubernetes DevOps

什么是“语法糖”?Java中有哪些常见糖?

Java你猿哥

Java ssm Java工程师 语法糖

MySQL 语句中 where 条件后为什么写上1=1 , 是什么意思?

Java你猿哥

Java MySQL sql 后端 ssm

WorkPlus IM即时通讯平台,管理者不会拒绝的高效通讯办公工具

WorkPlus

干货分享|袋鼠云数栈离线开发平台在小文件治理上的探索实践之路

袋鼠云数栈

大数据 平台开发

厉害了!阿里内部都用的Spring+MyBatis源码手册,实战理论两不误

Java你猿哥

spring 面试 Spring Boot mybatis 面经

太厉害了!腾讯T4大牛把《数据结构与算法》讲透了,带源码笔记

Java你猿哥

Java 数据结构 算法 数据结构算法 左程云

马鞍山等级测评机构有哪些?有几家?在哪里?

行云管家

等保测评 等级测评 马鞍山

置顶两个月!《程序员如何向架构师转型》神作在Github持续霸榜

做梦都在改BUG

Java 程序员 系统设计 架构师

接通率维持66%以上,为什么火山引擎VeDI能让企业智能外呼不再难?

字节跳动数据平台

营销 用户增长 业务增长 客户数据 企业号 3 月 PK 榜

GitHub上架即下架!《分布式系统人人都是架构师》全彩笔记开源

做梦都在改BUG

Java 分布式 系统架构 架构师

不懂就问:MySQL delete 表数据,磁盘空间为什么没有被释放?

Java你猿哥

Java MySQL 数据库 innodb Java工程师

阿里巴巴为什么不建议直接使用@Async注解?

Java你猿哥

Java ssm java8 Async Java工程师

微服务架构下你不得不知的3种部署策略

做梦都在改BUG

Java 架构 微服务

机器学习算法(九): 基于线性判别模型的LDA手写数字分类识别

汀丶人工智能

人工智能 数据挖掘 机器学习 LDA算法

Bytebase vs Flyway

Bytebase

数据库 版本控制 变更

  • 扫码添加小助手
    领取最新资料包
专访Guido van Rossum:迎接Python 3000_Ruby_霍太稳@极客邦科技_InfoQ精选文章