![科技时代_图文:PHP之父Rasmus Lerdorf](https://i-blog.csdnimg.cn/blog_migrate/7847cece402bdc7d5368fdfd7d05a877.jpeg)
图为:PHP之父Rasmus Lerdorf。(骆磊 摄)
2007年5月19-20日,首届中国网络工程师侠客行大会暨中国互联网技术精英论坛计划在杭州举办。此次大会以“主题演讲”、“技术论坛”、“技术展示”等形式,致力于推动中国互联网技术的创新与发展,为互联网领域的技术人才提供一个沟通、交流的平台。
图为:PHP之父Rasmus Lerdorf。(骆磊 摄)
以下为其演讲全文:
Rasmus Lerdorf:我讲的事情是激情与PHP我觉得这是一个比较有趣的议题,我是一个技术人员,我系一个工程师,我会给大家看一些代码,可能有一些非常技术的元素不。我希望我的演讲对你来说会非常有趣,因此我们可以更多地了解和研究这个问题。
我们再看看这个幻灯片。对我来讲互联网是从93年开始的,我看到这是我第一次看到浏览器,很多人讲这也是人们第一次解除了网络的时候,我刚才在 一家小的公司工作,我也是在做一些开发工作。后来我开始做了一些事情,比方说我写了一些网页的程序,这就是网络在93年看起来的样子这个页面是非常简单 的。
我又开始了咨询和写程序的工作。大家在页页面上看到的其实是PHP的第一代的代码,虽然和现在的看起来不一样,但是它们的理念是一样的。这是一个非常简单的工作。
因此我对这个语法是非常熟悉的,然后我重新写了这个系统,非常流行了,之后我发现这个方式非常非常流行,我们有很多不同的新技术和说法,但是一开始我做得并不是很好,也不是很对。
这是95年的,你可以看到它已经PHP非常像了,但是没有内置的标签。
因为网络从95年开始发展得非常非常快,这方面工作的人其实并不是认识程序员,他们只不过是看过了一些页面,稍微知道了一些事情,他们的老板就 要求他们去建立HTML和CGI的一个页面,或者是数据库,所以这些人工作起来可能是日夜不休,而他们突然解除了新技术,就不知道怎么样做。那时候我希望 非常好的来接触PHP。
在过去的纪念当中,PHP也不断地发展了。10年过去了,PHP变成了这个样子,我也不明确这些改变是不是好,但是你可以看到很多东西都不一样 了。对我来讲非常有趣的事,在95年的时候,我可以把我的代码作很大的改变,我可以把这个代码发给PHP的开发者。但是今天我不能这样做了。因为现在已经 有很多的人在做PHP了,这是不太可能的,你一作改变就告诉别人。
然后,还有一个非常有趣的经历,我一开始,并不是因为什么开发源代码,在开放源代码中有四类人,第一是精英,因为他们需要这个合作、这个工具, 同时我也会认为我把这个代码给别人解决问题的话,就可以成为一个同伴小组,我的老板认为我是一个天才,因为我会写代码,而且很快。因为我早上醒来的时候, 我会突然有一个灵感。因为我把我的代码分享给了很多的人,而且他们会分钱给我。其实我有很多的同伴和同事是在和我一起工作的。我们有时候会在一起工作,我 们会解决同一个问题,但是别人不太知道这一点。
第二类人,就是想要表达自我的人。画家会画是希望别人看到他的画。程序员也是希望别人来承认他们,让他的同伴和同事知道他在做什么。这也是一种 自我表达的方式。其实这并不是我为什么选择PHP,其实我不喜欢写代码和写程序,它们非常的无聊和枯燥。但是我选择PHP无是希望我能够得出非常简单的代 码。如果说我有问题的话,我不需要花很多的时间来写。而很多的人非常喜欢这个写代码的程序。他们只在乎编码的工作,他们只在乎带把输出使非常漂亮的样子。 就好象乘飞机一样,虽然我经常坐飞机,但是我非常讨厌飞机。空气那么差。但是比方说我对我要去的目的地是非常有兴趣的,这样我才觉得我作飞机是有价值的。 因为我对去的目的地非常有兴趣。编程也是如此,我不喜欢这个过程,但是最后解决了这个问题我非常高兴。
第三类人,他们有很多的激情,我们有很多的人喜欢玩很多的游戏,很多孩子没有太多的社交活动,但是我认为每一个人都需要和其他人的互动,而且我们有一种激素叫催产激素,特别是在妇女,如果在生产的时候,或者是妇女有
性高潮的时候,那么你在别人交谈的时候也会有这种催产激素,但是你在工作的时候,也会有激素的产生。这些孩子在玩游戏的时候,他们知道在线上也可以和别人互动,在这样的时候,他们也会产生很多的催产激素。那么这类人就是和很多同样的人在做,会产生很多催产激素。
第四类人就是很奇怪的人,他们认为通过他们的贡献这个世界会变得非常好,我不是这个的人,这是一个非常酷的事情,非常好的事情,但这不是我。我 觉得如果你有这个梦想,把你的梦想付出实施,让这个世界变得更好地这是非常好的事情,但是这不是我选择PHP的目的,不是我的的初衷。
好的,我在过去的几年当中学到了一件事情,特别是关于PHP的项目,你在放弃权力的时候,必须知道每个人是怎么看待自己的。在很早的时候,我总 是全局地掌控PHP的这个项目,不管是谁写的代码,我都会重新写一遍,变成我想要的样子。而且我不和别人商谈,因为我是老板。但是我这样做了,这些做贡献 的人就没有意思了,因为这样他们就没有自己的创新和自己理念。有些人是不希望以这个方式来作贡献的,而我是希望很多的人加入这个项目,因此我就发现,我必 须全局掌控,我就下放了一定的权力。虽然我是一个领导者和一个贡献者,但是我和其他的人是一样的。如果有人想作改变,那么我们可以讨论。而且我对这个项目 没有绝对控制的权力,因此每个人在个项目里都是平等的。我们必须进行平等的讨论。我们再作决定。这样每个人都是主人翁和归属感,这都是他们的项目,这样他 们有了非常好的感觉。
你必须要想一下,比方说你作为一个用户或者一个工程师,你要想一下你考虑一下亚马逊、雅虎这些网站,如果这些网站没有用户的话,那么这些网站就 什么都不是了。网站一开始是和报纸一样的,提供信息,有人来看。这是单向的交流,但是现代的网络来说,它比之前要更简单来维护了,因此你只需要有很多的理 念和环境,很好的气氛,这样每个人在你网站上的点击都可以帮助你把网站变得更好。受关注程度越来越高,所以每次用户的互动可以使网站变得更好。说道雅虎问 答的网站,也变得越来越好了。
对我来讲,这就是Web2.0的优势。如果你把网站变得更优秀,每个人都喜欢来用你的网站。那么之前你必须满足这一点。这是必须的。
我们再回到这张幻片。对开发源代码的项目来讲,你必须要建立一些东西,来吸引你的用户,人们会上传很多的照片,比方说,在其他地方的兄弟姐妹都可以看到他们的照片。
比方说,你在浏览的时候,你是不可能回避激情的这个问题的,因此我要回到刚才的页面上,很多的人想要验证世界,和证明自己给世界看。满足它们讲的目的。
你在建立一个网站所需要做的事情,首先你必须吸引客户的眼光,你的网站要运行得非常好。我们在过去发现,有一些很好的理念,可以吸引很多的用 户,但是你的网站建立起来,但是崩溃了,当用户点击你的网站却看不到什么东西的时候,这是一个很不好的问题。这是让一个网站死亡最快的办法,也是让一个用 户离开你的最快的办法。我们看到非常多的商业网站,他们的理念和点子非常好,但是他们执行得不好,因此他们就败给了竞争对手。因此网站的性能是非常重要 的。这是几个问题当中的一个。我给大家讲一下,我们怎么处理性能的问题,首先要评测。
你要知道这个网站到底有多快,在这个例子里面,我是想要来测试一下它到底有多快,如果我们要来建立或者启动这格应用的话,我们到底是可以应付多 大的流量等等,同时我要知道,它的响应时间是多快。我这里有一些例子,我们可以看到测试运行了很多次,反应的时候却非常慢。那你要怎么办呢?已经有这么多 代码了,你也建立网站了,怎么办呢?我们就要处理2000个请求的话,我们需要很多的服务器,但是我们的预算可能是不够的,哪怕是你有预算可以买服务器的 话,还是有很多的服务器是非常慢的,因此响应时间会非常慢。这是技术和表现之间的区别。这个工具来看一下运行的代码,并且告诉我这个运代码已经到哪一段 了,每个代码用了多少时间,这个工具是非常重要的,它可以提供一个图形化的界面来告诉你。今天下午我会给大家讲一些更详细的问题。
另外我们也用一些别的工具。只要你是X86系列的,都可以用这些的工具。如果你要用不同的语言的话,你可能就需要用不同的DEBEG的工具,我 经常看到在优化自己的代码的时候并不真正知道代码的瓶颈在哪里。这个时候我建议一定要用DEBEG工具,它可以告诉你到底什么地方出问题了。
我们今天下午会详细讲。在对它进行了检测之后,我在底部的评测就告诉我,我们并不是一秒钟三次,而是81次。那么我们的响应时间也降低到了50毫秒。因此起到了一个非常大的提升。其实我们说在每秒钟的处理请求,不是特别重要。因为你的整体性能提高了。
但是如果处理时间短的话就是安全问题,我们要保护个人信息,我们不能泄漏用户的信息。如果安全性不高的话,网站会很快死掉而且有的人来攻击你的 网站,攻击的老用户,你的用户也会流失掉。而且你也得不到新用户,因为他们不回来你的网站。所以你必须非常担心安全性的问题。在这边有比较常见的问题,我 们有一个跨域的脚本问题,如果这个数据可以返回用户这边的话,可以由人利用它来窃取这些信息。如果他们能够窃取这个信息的话,他们可能引诱用户区访问一个 错误的页面,然后提供了用户非常隐秘的信息。这里有一些常见的情况,比方说有人看到了404页面,就是这个页面到找到了,想到的信息找不到了。
同时你在搜索页面里可能也会嵌入一些
JAVA的语言。同时我们还有不同的软件和服务器有问题。如果你不断地打补丁就可以避免这些问题。你没有建立一个很好的字段。但是问题是,如果说,有人可以在页面里面建立一些字段,就可以欺骗IE。还有其他的一些问题。比方说有一些IE的插件和远程的欺骗等等。所以我们对网络的平台不是很安全、不是很稳定。它其实随时会倒塌和崩溃。我们在使用这些技术的时候,如果说底层平台完全崩溃了,就什么事都干不了了。
我们必须尝试和做的事,在我们的页面里尽量争取。给大家看一下到底是怎么样的情况,要真正地描述一下真正碰到的问题是非常困难的。有一件事是可 以做的,有一个坏蛋可以放到这样一个页面,大家可以看到,他们放了很多的一些页面,看上去所有的坏蛋是可以找出来了他知道了你浏览了这些网站,然后他可以 进入你所有最近浏览的页面,知道你去过了一个银行,或者是阿里巴巴、雅虎,然后他知道了你是阿里巴巴的用户,他可以偷窥到这些信息。他以前也在雅虎工作。 如果他能够在网站上找到这些东西的话,他可以看到用户以前浏览的东西是什么。然后把这些网站放在那边看上是正常的,就像是你在浏览一样,像正常的网站页面 是一样的。但是你浏览了之后,把他那个猫眼放在你后面,偷窥到了你的信息。
在防火墙的后边可以偷取你的资源和信息。把很多的要求放到了你的页面上面。你在这个门户后面是很多人都这样的。看到了这个宽带上面及他们的密码 都是不改变的。很多人来接触到我的网关上面。比方说这个小孩能够完全地掌控所有的浏览器,然后在网关上发命令,现在你并没有改你的密码,他会把很多的设 置。也就是说有一些在防火墙的服务商就在防火墙一样的,通常情况下,很多的人都会说,有一个黑客进入了这个网关。把这些所有的机器放在防火墙的后面,所以 发生了这样的事情,就把所有的信息共享与互联网了。这点的话,是非常严重的问题。有很多的问题都会出现,作为一个用户会受到黑客的袭击,因为发生了以上的 问题。所以如果一个用户他们跟防火墙后面的内容根互联网接连了,黑客可以通过袭击防火墙后面的东西。作为防火墙就毫无意义了,这是一个非常严重的大问题。
那么PHP所做的事情就是我在五年前为雅虎写了一个程序,现在也是PHP公共共享的一个软件了。大家可以看到,这个网站,已经写好了。我们是放 一个数据的防火墙,每样都是就被屏蔽了,这就是把所有收录的信息过滤掉,什么东西都没有了,所有奇怪的东西都不可能来运行了。你看到有一些洞,我说我要去 得到这些信息,通过这些过滤器和过滤网这是我们所做东西的理念,对所有运用软件的写是非常简单的。比如雅虎的PHP我可以看到所有的漏洞在哪里,我们有很 多的变数,我们会看到在数据的防火墙后面,有很多的黑洞和漏洞。比方说,我们回到用户,看看到底发生了什么情况,如果你没有这个数据的方向,所有的东西, 任何一个信息,你可以得到他们以前痕迹轨道。来看看他们的历史。
现在我们已经讲到了为什么我们的用户他们要他谈到这个问题。他的驱动力是什么?我们讲过了两个问题,我们的安全,怎么样使他的页边运行得更快、 更安全,最后我们我想IPS非常重要的一些理念, 因为这个网站实在是太好了。它建立了一个非常好的社区,他几乎已经成为了我们图片应用一个标准,比方说你建立一个网站的应用软件,不管是博客等等。如果这 不是你的主营业务的话,你不用再做所有的基础基建了。 他们有非常简单API。就像…的图片到处可以做到一样,每个人都可以使用你的网站,不是直接的访问,都是通过API来看到你的图片。所以这件事情就不断地 一直持续下去。
给大家一些简单的例子,也就是说为什么API是非常好和非常的酷的。比如说你的现在的图片刚刚上传,在上面我们就看到只有一行字,或者是二行 字。比方说你下载了XML,我知道有这样有一个图片,是我们刚刚差不多30秒钟之前拍的,然后我上传了。不过总是要冒险的,来放这样的一个幻灯片。因为人 们不知道会上传怎么样的照片。但是我发现他们真的是很酷。因为这个…只要一行PHP的编码就可以应用这个软件,所以说是有非常有趣的编码。
第二个例子也是我非常喜欢的,大概是一年前,FLIKER加上了一个地理的编码,做了一个数学的概念,就是说一个正方形或者是长方形,来定一个 中心的地方我现在举的例子比如说是北京,然后一个正方形的。我说我要这些图片。我要四天前所拍的所有的这些图片。那么在这样一个长方形的尺寸当中,所以我 不需要去搜索北京的图片 ,我要在一个特定的地理位置当中,在任何一个地方都可以,在北京可以,在世界任何的角落都可以。那么我们看看是什么样的图片。对我来说是真的非常神奇,尤 其是我们有这么一个照相机,这个照相机可以自动地进行地理编码。你拍一张照片,它会自动存储下来。那么人们做到了地理编码的图片。我想这个功能是非常强大 的。在雅虎我们有一个打球赛、排球赛不管任何时候,人们在很小的一个地方,在雅虎 上拍的一个排球赛,这么一个排球赛的话,我在任何时候都可以得到这个图片。大家想象一下我们可以在地球上的任何一个地方拍照片。这是非常有趣但是也很恐 怖,要看你怎么去运用它了这么一个功能。
最后一点,当然等一下我会给大家一些时间问问题。
当你建立这些现代网站的运用时,你不要一些人用户付钱的事,这样你的规模不会成倍地增加,人们会觉得为什么我们来加入你呢?从历史上来说,这样 的做法也是不可能做到的。要让我们的用户跟你来进行连接,通过你的网站可以进行人们之间的互动。比方…我们有很多的图片,来进行讨论这样图片,看看任何一 个成功的现代化的网站有很多的用户来进行贡献,他们输入了很多的信息,来进行对某一个主题的讨论。这是非常重要的。
我为雅虎工作,我是雅虎的一员。我有很多的门户来解决一个问题。不管是API也好,我们要提供一个很简捷的用户界面,你要知道你的表现是怎样的。你每秒钟处理了多少请求,而且你要不断地检测这些性能,你要非常地明确你在你的网站上有任何的小错误来导致了你网站的崩溃。
如果你的网站性能突然变慢的话,这也是不好的,这和崩溃没有区别。
最后你一定要让你的网站很好地工作。在人的层面上,你必须促发人很多的激素。我的演讲到这里差不多结束了。在这里有很多的地址可以去下载。我们有几分钟可以来进行问题的讨论。
主持人:谢谢你的演讲,非常的精彩,现在提问环节,请有问题的观众举手示意我。
提问:首先我有一个看法,我非常喜欢您讲到的,你说的下放权力,我的问题是是不是可以直接用IE浏览呢?
你觉得对PHP来说有什么事情是你最想做还是没有做到的?
Rasmus Lerdorf:我刚刚加入PHP的时候,它对我来讲只是一个工具,我并没有很多的想法,也没有想到十几年后我还在做这个事情,它对我来讲只是一个工具, 如果那个时候我能够看到过去这几年走的历程的话,我很多事情是可以做得不一样的。当然还有一些事情,因为目前的网络已经变成了,我们知道在PHP里,功能 有很多不同的函数的名称,还有大写、小写、不管怎么样,这样是不太好,不一致的,最开始的时候,我们发现所有的人都是把所有的字大写或小写的。我认为之前 是不太好的,因此我们想要来符合目前写字的习惯。但是我觉得这个决定不是很好。这是另外一件事情。如果可以改变的话我也要改变。
另外安全模式对我来讲并不是非常的安全,虽然有一定的帮助,但是我觉得这个名词并不是很恰当。另外我对一致性和连贯性函数上花我很多的工夫。你 可以看出来PHP代码是很多人写的,因为它的代码风格不一样、IP不一样。但是如果你不是很了解每一种API的话,后面的事情的话,你只是看PHP的话, 你会觉得很乱。但其实我要跟你讲你看到的只是一个表面的情况,你必须了解一下底层的东西。这对我来讲并不是什么问题,我不是觉得PHP漂亮才选它的。因为 它非常的简单和实用。我对可以实现目标的东西我就可以接受。但是我还是希望不同的代码之间有一个连贯性。很多的目前PHP代码不一致,这是我目前需要处理 得问题,如果我能够看到的话,我可以做到。但是这是一个小问题,不会影响到最后的结果。
提问:Rasmus Lerdorf,您好,不是阿里巴巴的员工,你可不可以向我们介绍一下PHP项目的步骤?
Rasmus Lerdorf:你是指下一个版本吗?不是我是指未来的蓝图。
提问:未来的蓝图。
Rasmus Lerdorf:PHP下一代是第六版了。有一个很大的特性,有一点改动,但是我们必须知道你这个函数有很大的提升。对人们来讲并不是很自然,他们可能会 认为,这些函数的字段会有提升。你使用任何一种字段和任何一种字符,我们都会在PHP来很好地处理。这是很难的一件事情。对PHP来讲这不是一个很大的改 变。目前我们还有很大的期望,因为这是一个很大的困难,目前我们还没有完成这样的工作。当然了,我们也把这个工作放到了…也进行了一些调试,但是这个工作 还没有完成,所以我不能说完成了。我们目前的期望是非常短的,一年来讲,我们对字段、字符段的处理可以进一步提升。这对网络来讲是一个非常大的问题。 PHP第五代的发展是跟随网络发展而发展的。
你能告诉我2015年是什么样子的吗?我不能说。