【听译大师说话】python 创始人访谈录 1: 关于 django 和 ruby

来源:互联网 发布:unity3d 图片闪烁效果 编辑:程序博客网 时间:2024/04/28 04:49
【听译大师说话】是我最近打算搞的一个系列。我以前觉得看这些大师访谈并没有什么意思,他们的想法大多在书本和网站都有所介绍,他们本人也接受了很多访谈,估计说的也都是些套话,所以没必要看。最近听了两个访谈,一个是采访 python 创始人 Guido van Rossum 的,另外一个是采访 php 创始人 Rasmus Lerdorf, 让我感触很深,很多以前的一些困惑得以解释。我想这些访谈节目应该让更多的人知道,所以我觉得应该把这个系列搞下去,一是锻炼自己的听力,二是更好的学习技术。 我的英语水平不算太好,好在我也算是一个程序员,相信做此类访谈的翻译要比英语专业的人要更准确一点,而且我听译的内容大多是我喜欢的,也有兴趣做下去。我不是干这个事情的最合适的人,但是很多比我更合适的人却不愿意做它,所以大家只能凑合看了。我尽量做到不翻译错,如果有那些地方说的不对,希望大家指正。

下面是这个【听译大师说话】系列的第一篇的第一节《  python 创始人访谈录 1: 关于 django 和 ruby  》









主持人: Chris DiBona (Google 开源网站负责人) and Leo Laporte (Twit 网站创始人)

被采访人:
Guido van Rossum (python 创始人)


Leo : Python 缺少一些本地的 gui 库吧,只有 tk 什么的, 你觉得这是不是一个问题呢?
Guido: 现在这越来越不成为一个问题了,因为越来越多的人使用 web 来做任何事情。
Leo :web 就是界面了
Guido: 但是的确也不解决什么问题,正如我说的:“ python 的 web 框架比语言中的关键字还多” , 我个人最喜欢的一个,也是我长期的选择框架是 django
Leo :我正打算问你 django 的事情, 最近有人写了一篇文章,我想是在 rails 网站上最先介绍的,它测试了,django , rails 和 perl 的 web 框架,django 的速度是最快的,远远超过其他。
Guido: 这很有趣,我没听说过这个。
C:你怎么测试一个 web 框架啊?
Leo :他们设置一些 web 测试应用程序,建立一系列的事务测试案例来测试事务操作, django 的速度相当的快,相当的快。 跟我们讲讲 django 吧
Guido:我是一个对 django 非常满意的用户,并在项目中使用了一些 django 。我将 django 称为“第二代” python web 框架, 第一代是指 zope 和 twisted, django 是由两个在堪萨斯新闻报社工作的小伙开发的,并非是一个很有名气的地方。
Chris:很奇怪,Zope, plone 也是来自报纸网站的
Leo :他们要流程化他们的工作流,这对他们可是很重要的事情。
Guido:也许是这个原因吧,堪萨斯的这家报社希望建立一个给当地人提供信息的本地网站,该网站必须对读者的响应非常及时,必须很快地发布内容,并不是简单把文章发布到网站上这样谁都可以做的事情,它必须很容易更换整个网站的外观,添加一些新的创意,一些新功能,增加一些新的应用。例如,发布本地体育赛事新闻,提供关于球队链接和照片等各种感兴趣的信息,他们希望这东西能很快运作。我想他们做这个有两年了吧,这两个小伙子和一群编辑在一起工作,编辑为他们提供内容。在工作的同时,他们觉得有必要做一个框架,他们从他们的第一个网站应用中提取了框架。  通过编辑对他们不断提出的对网站修改需求,他们对框架增加更好的灵活性,后来他们决定说“我们开源吧”,他们的想法得到了报社的支持。然后有趣的事情就发生了。我想现在报社还在部分地使用 django 吧,这两个小伙可能也不再在报社工作了,他们开始了 django 开源项目。我觉得最棒的一点是,我跟这两个人谈过好几次,看了他们的演示,了解他们是如何工作的,他们的确做到了开源。他们有很好的许可证协议,就我而言,最重要的是,整个过程,他们运作用户社区的方式,他们的做法,他们寻求在混乱,民主之间的平衡,让许多用户添加功能,提供想法,但是又不失去原有的想法和框架的灵活性,我觉得做的非常的棒,使得 django 成为一个越来越好的产品, 这已经远远超过当时堪萨斯报社所需要的。
Leo :那个测试是在 ruby on rails 的 wiki 网站上的
Guido: 现在能访问吗,我想看看
Chris:ruby on rails 的 wiki 无法访问了吧
Leo :不,就在那里,文章是 framework performance, django 网站关于这篇文章的链接是坏的,他们测试了 symfony, 不是 perl 的框架,是一个 php 的 web 框架,以及 rails, django ,django 相当的快,几十倍的。
Guido: 哇,我知道 django 开发组的确花费了相当的时间使得他们的模板机制运行的相当流畅
Leo :他们当然使用了 modpython 以获得更好的性能。
Chris: modpython 是一个 apache 的 python 模块,使得 python 的运行更加快速
Leo :我要看看 django ,的确令人印象深刻
Guido:当然,我强力推荐它
Leo :我也看过 turbogear , 我经常上的一个网站“doggdot” ( http://doggdot.us/ ) 是用 turbogear 做的
Guido:什么名字?这名字太难听了
Leo :doggdot.us 结合了digg, slashdot, del.icio.us into , 它是用  turbogear 写的,这也是另外一个 python web 框架,看来还有许多其他的 python web 框架吧。
Guido:哦,看来 turbogear 和 django 现在正在竞争 web 开发的市场份额
Leo :我喜欢 ruby on rails , 我喜欢 ruby 的一个原因是,它从很多方面很像 python
Guido: 的确,它看上去很像 python
Leo :当然了,不过它的面向对象是从头做起的,任何东西都是对象(everyting is object )
Guido: 在pyton中任何东西也都是对象(everyting is object ),但是并不是任何东西都是类(everyting is class ),因为这是我喜欢的方式。
Leo :跟我们讲讲这个吧,为什么你喜欢这样
Guido:因为不是任何编程都会自然而然的采用面向对象的方式,比如一个很极端的例子,很不幸,在 java 中写一个 helloworld 程序要六七行的代码,你无法避免声明类 , 因为方法要定义在类中,这就要输入很多。
Leo :在 ruby ,数字也是对象
Guido:在 python , 也是这样的
Leo :是吗?在 ruby 中很容易重载一些函数,使得面向对象的做法很干净,也很简洁
Guido: ruby 和 python 的不同在于, 在 ruby 中,你总是在类中定义函数,如果你不明确指出函数属于哪个类,那么你可能在一个默认的类中定义函数,在 python 中,所有的数据对象都是类,但你可以在类以外定义函数,比如 module (模块),作为函数的名字空间,函数是对象,模块是对象,但是它们并不像类那样工作。 这么实现跟 ruby 只是不同的选择而已
Leo :你这么做肯定有你的理由吧
Guido:最近我听到一些对于 ruby 的抱怨,的确有点让我吃惊,ruby 的执行速度比python 慢很多,我想这的确影响到你刚才提到的一些性能测试的结果
Leo :而且ruby 的线程也不是本地化的,这的确是个大问题
Guido:哦,天哪。


第二篇:【听译大师说话】python 创始人访谈录2: python 的起源,特点和未来


原创粉丝点击