论坛首页 编程语言技术论坛

【听大师说话4】PHP创始人 Rasmus Lerdorf 访谈1

浏览 2454 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-07-21  
PHP


原载于:
http://blog.csdn.net/koalant/archive/2008/07/21/2685749.aspx


刚刚听译完 1/3 ,凑合看吧, 还有点意思.后面的部分可能更精彩一些, 关于 php6 支持 utf16 , php 的性能扩展问题, 安全性问题等等. 感觉 Rasmus Lerdorf 这个人说话比较实在.

听译文如下:
-----------------------------------------------------------------------

Leo Laporte:今天我们这里有一位非常重要的嘉宾, 事实上对他的到来,我真是太兴奋了, 我采用他的代码比任何人都多。
Chris DiBona :的确是这样的
Leo Laporte:Rasmus Lerdorf , php 的作者
Chris DiBona :php 的作者兼创始人
Leo Laporte:这是一门编程语言,并且在许多方面都是因特网动力的源泉。
Chris DiBona :是啊, 那么咱们开始吧。
Leo Laporte:php 的起源对于一个编程语言来说有点不同寻常,我说的对吧? 它最初叫做 Personal Home Page
Rasmus Lerdorf : 是啊, 它开始于十一二年前,它就是一些放在个人的主页上的工具,帮助人们管理自己网站的工具,
让他们知道谁访问了他们的网站,有一些日志的工具,还有一些标签,可以放在主页的底部,主页被访问了多少次,最后一个访问者是谁,他的IP是多少,域名是什么,等等。
Leo Laporte:那么说,它不是一门语言
Rasmus Lerdorf :是的,它不是,它就是一些工具,虽然在底层它有一个框架来建立这些工具,我最初的想法是:作为工具应该很有趣,它们是作为一些工具来发布的。当人们开始使用这些工具的时候, 他们开始向我询问,是否可以拥有其他的工具。我实际上只有五到七个工具,他们要更多的工具。 我又写了一些,并告诉他们底层实现这些工具并不复杂, 你可以自己写,但是少数人接受了我的建议,但是大多数人让我给他们写。 我开始意识到写这些组件放到主页上事实上很有趣,为别人写一些组件也很有趣的。我还有一个工具,称为 Form Interpreter(FI ), 我也把它引入了。 并开玩笑起了个名字 , 既然有 TCP/IP, 那我有 PHP/FI
Leo Laporte: 哈哈
Rasmus Lerdorf : 到第二版php 的时候,我把注意力从那些工具组件转向更关注于实现组件的后台技术。 那些工具还在那里,工具的确很有趣,不过它们渐渐淡出了舞台,仅仅作为一些小例子来演示。
Chris DiBona : 当时你哪里呢?(创建php的时候)
Rasmus Lerdorf : 我在多伦多做咨询工作
Chris DiBona : 是吗
Rasmus Lerdorf : 我当时在给一个巴西的公司 nutec 工作, NUTEC , 这是一个巴西的公司,位于巴西南部,做一些 Unix 开发, 他们需要一个说英语懂得北美市场的人,所以它派我去帮助他们成立美国分公司,我最后成了产品经理,销售人员,而不光是做技术这方面本应该是我做的事情 。后来 web 逐渐露头了。这是 93 , 94 年的事情, 看来 web 要变得越来越大了。
Leo Laporte: 在 93 ,94 年的时候,我们还在使用 Mosaic, Netscape 才刚刚出来 , 真是互联网的早期啊。
Rasmus Lerdorf : 的确是很早
Leo Laporte: 你写了这个解释器就是为了这些小构件吗?
Rasmus Lerdorf :是的,最初是为了这些工具,我称之为工具,你可以把这些放在主页上。 有人说第一版的php是用 perl 写的, 这不太正确。我的确做了一些这方面的探索,问题是 perl 后台是通过 cgi 方式运行的, cgi 的基本上是产生(fork)第二个服务器进程来处理。
Leo Laporte: 效率非常低
Rasmus Lerdorf :实在是太慢了, 追溯到 93,94 年, perl 是比 shell 语言小一些,但是如果每个访问请求都产生一个新的进程的话,还是会完全占据服务器的进程。 存放我程序的 ISP 很不喜欢我的程序占据整个服务器进程。所以我必须找到一个更轻量级的方法来执行我的工具。基于 perl 的版本很快就消失了,我甚至在发布 Php 前都没有发布任何 perl 单独版本的php。我自己写了一些代码,它不能称为语言,只是从 html 的 中提取一些 tag,并将它们和 c 代码关联 。
Leo Laporte: 它是给 apache 写的模块吗
Rasmus Lerdorf : 不,它最初是给 NCSA Web server 写的一些补丁, apache 服务器也正是起源于 NCSA 服务器的。
Leo Laporte:也就是说你给 NCSA 写了补丁。 也许这就是 PHP 成功的秘密,它嵌入 html, 当执行它的时候,解释器会说, 哦,这是 php ,让我们调 c 来执行它。
Rasmus Lerdorf : 是的。 通过一些钩子代码, 没有 if else 条件判断 ,它不是语言, 仅仅是一些标签,解释器看见这些标签,很快地交由 C 代码来执行
Leo Laporte: PHP 的确很重要, 你可以看到 twit.tv 就是建立在drupal 之上的, drupal 也是用 Php 写的, 模板引擎也是用 Php 写的。 你可以不用它, 可以用 perl 模板, 但是用 php 更合理一些。
Rasmus Lerdorf : 其实现在很多东西你可以用任何语言来实现
Leo Laporte: 是的
Rasmus Lerdorf : 它不再那么独一无二了。 当 Apache 出来之前, 有一个 module 称为 include 的
Chris DiBona : server side include
Rasmus Lerdorf : 对 , server side include 也要追溯到 NCSA, 它们最先有的这个概念。 当 apache 出来后,它们提供了 API , 人们可以和 apache 的人站在一个起跑线上, 参看 API 并扩展它为 mod_php , 从这时起, php 开始加速了发展
Leo Laporte: 现在的 php 是如何工作的
Rasmus Lerdorf : 老样子, 没有变化。 你可以以几种方式工作 .
Chris DiBona : $符号是怎么来的?
Rasmus Lerdorf : $符号最初是为了方便实现,状态机实现起来容易一些,变量名和函数名区分开, 而且人们比较熟悉它, Perl 很强大, 94 ,95年的时候每个人都在使用 perl ,它现在仍在被使用。 我并不打算做一个新的,奇怪和革命性的编程语言, 而是基于人们已经知道的东西来建立
Leo Laporte: 这很实用
Rasmus Lerdorf : 是的,非常实用, 要搞清楚人们期望什么,像我这样的人,有一些使用 C的背景, perl 的背景, 用过 awk, sed 和 或许还懂得一些Shell 编程。 他们希望如何调用, 他们希望的语言是什么样子, 这是 php 的起源 。
Leo Laporte: 我不想这么说, 但是对于我来说,php 对网站开发来说是非常强大的语言,虽然有一些强有力的竞争者,但是 php 很强大。
Rasmus Lerdorf : 这很难说
Leo Laporte: 我全靠它了
Rasmus Lerdorf : 流行总是伴随着批评的
Leo Laporte: 呵呵
Rasmus Lerdorf : 这通常很有趣,它确实很强大,虽然现在的批评不断,很难平息。人们不断地在他们的博客上批评 Php , 而他们的博客又是用 Php 写的
Leo Laporte: 呵呵, wordpress 是用 Php 写的, drupal 也是用 Php 写的, 很多东西都是用 php 写的。
Chris DiBona : PHP这个名字代表什么?
Rasmus Lerdorf : PHP是 , 恩 。 Hypertext Preprocessor , 这名字很蠢, 就是 Php。 Zee v 与 Andi 是97年中加入进来的, 他们当时使用 php/fi, 在用到深度嵌套中碰到一些问题, 他们都是计算机专业的, 知道如何写解析器 , 不像我是通过 hack 状态机这种方式来实现的 , 我想他们在看到我的程序的时候,一定对它竟然能工作感到惊奇吧
Chris DiBona : 呵呵,竟然可以工作
Rasmus Lerdorf : 他们当时是自愿做这些工作的, 当时我有点太累了,感觉自己像是在给半个因特网写程序, 人们不是给我发补丁来修补程序,而是。。。
Leo Laporte: 这是我的程序, 把 bug 给改了吧。
Rasmus Lerdorf : 是的 , 改了 Bug, 给我写个程序做这个,我跟他们说做实现这个很容易,只要这么做, 他们说: 好吧,这是最麻烦的, 那剩下那些bug呢
Chris DiBona :赶紧把 bug 修复了吧
Rasmus Lerdorf : 我当时的确很郁闷, 简直要把我掏空了。 当时感觉要么我就快要死了,否则我得把它移交到一个更大的 team 来做
Leo Laporte: 等等, 在我们继续谈论前,我觉得这是一个很有趣的事情, 我觉得这在开源社区并非罕见的情况,这种事情常常发生, 人们在说:“我管理不了这个社区了,我不干了,简直让我发疯了”, chris 你肯定经历过很多这种情形, 这对于开源社区是不是个问题
Chris DiBona : 是的,实际上我跟Rasmus探讨过这个问题, 每隔五个月,就有人公开在社区挑起这种事端, “这是开源的终结, 有人离开开源社区了”。 你知道的, 其实有人进入,有人离开这是很正常的。
Leo Laporte:事实上这事最近发生在 Zend 框架社区了
Chris DiBona :是啊,让我们来谈谈吧,Rasmus 
Rasmus Lerdorf : Zend 框架是一个分离的项目,实话说,我也不是很清楚 ,你得问问他们,我也不清楚原因。
Chris DiBona : 从某一方面来说,实际上这也没有什么,我不愿意这么说,对大多数社区而言,某些人悄悄地离开了
Leo Laporte: 对于我们用户而言,我们有时候的确不太满意我们所得到的东西
Rasmus Lerdorf :直到 php 3 ,实际上只有我一个人在做,当某人给我发了一个对 php 的补丁,我一定会重新写一遍,因为这是我的产品
Leo Laporte: 看来你不擅长移交工作
Rasmus Lerdorf :我也不清楚开源的理论,当时也没什么开源的东西,我自己也是后来才想清楚了这些。没过多久,我在多伦多大学找了份工作, 建立一个对话访问系统。我想那大概是 97 年吧,哦是 96年,偶尔我还能收到一些关于 php 的补丁,有些 bug 我从来没碰到过,  我碰到一些困难, 有一个在日本的家伙给我发了一些补丁,非常酷,有一些在日本的朋友帮我做了咨询方面的工作,但是并不是经常性的。  一年之后我想通了 , 我的确需要鼓励这种贡献,人们提交了 patch, 我不能接管然后自己再重写, 我应该接收它, 放弃控制。给他人以权力随心所欲的做自己想做的事情。对于大多数开源的开发者来说,这很难,即便在现在,开源项目是他们孩子, 他们应该控制它,但是对于发展来说, 你应该放手, 让其他贡献者做他们要做的事情 , 你不能做太多限制。
Leo Laporte: 看来,我们作为用户来说应该更激进一些,呵呵
Rasmus Lerdorf : 这没关系, 你应该意识到这点,这些人大部分也都是在家里做开源开发的,百分之九十的开源开发者不管他们是做什么。他们把孩子哄上床,为开源项目献出两个小时,然后他们打开自己的邮件程序,发现一大堆愤怒的信息,都是"这里有 Bug, 另外这里还有 Bug, 这个 bug 使得我们上百万的电子商务操作无法进行" , 他们只能说:“好吧,我已经在晚上贡献了2个小时, 这确实不是我应该太过在乎的事情(你的上百万电子商务程序)"。 所以说,人们应该对这些开源的开发者给予一些尊重。
Leo Laporte: 开源是如此繁荣,我想说你们这些人才是开源社区的原动力,我们所能做的就是给予你们以应得的尊重
Chris DiBona : 恩, 我发现 Rasmus 的车子有点脏了,呵呵
Leo Laporte: 呵呵,我愿意为他擦洗车子,我欠他的太多了,我在服务器上运行了那么的 php 程序 ,从日志跟踪程序到 drupal .
Rasmus Lerdorf : 你不欠我什么,不欠我任何东西,我们 php 项目现在有 1100个开发人员
Chris DiBona : 看来你现在已经把移交工作做的很好了


(未完待续)
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics