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

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

程序员文章站 2022-04-06 09:02:20
...

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

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

刚刚听译完 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 : 是啊, 它开始于十一二年前,它就是一些放在个人的主页上的工具,帮助人们管理自己网站的工具,

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 来执行它。

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 : 看来你现在已经把移交工作做的很好了


(未完待续)