欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

[听译大师说话]python 创始人访谈录 : 关于 django 和 ruby

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

下面是这个【听译大师说话】系列的第一篇的第一节《  python 创始人访谈录 1: 关于 django 和 ruby  》
[img]http://blog.codingnow.com/mengyan/python.jpg" alt="" width="533" height="400[/img]
主持人: 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:哦,天哪。

参考系列其他文章:

[听大师说话4]PHP创始人 Rasmus Lerdorf 访谈1

[听译大师说话]python 创始人访谈录 : 关于 django 和 ruby

[听译大师说话]python 创始人访谈录2: python 的起源 特点和未来