传奇的诞生,PHP三位创始人简介
PHP到现在为止已经诞生12年了。在这期间它经过不断改善,已经成为Web开发最重要的语言之一。PHP能有今天这样的成就,它的3位创始人(Rasmus Lerdorf、Zeev Suraski和Andi Gutmans)功不可没。
PHP的诞生和Rasmus Lerdorf的经历密不可分。Rasmus Lerdorf于1968年生于格陵兰岛西部迪科斯岛上的Godhavn/Qeqertarsuaq。他是PHP的开山鼻祖。在设计PHP之前,Rasmus Lerdorf曾在上世纪90年代早期维护过新闻卫星通讯系统,并设计了用于验证数据正确性的错误验证协议。然后在1991年获得了2项加拿大的专利。在1991-1993,他做了近3年的Unix程序员,并成功地开发出了一个面向对象接口生成器。在1994年,Rasmus Lerdorf升任产品经理,主持并设计了很多基于Unix的通讯、GUI等系统。在1995年,Rasmus Lerdorf成为了一名IT顾问。在随后几年,他先后在University of Toronto 、Bell Global Solutions以、IBM、Linuxcare Inc和Dot.com Bomb/baby Vacation工作,并设计和开发了大量的软件系统。
Rasmus Lerdorf在2002年正式加盟Yahoo,在Yahoo他一直从事PHP、Apache、Ajax等技术相关的开发工作以及软件构架的研究
图1 Rasmus Lerdorf

图2 Rasmus Lerdorf和他的儿子

多年的软件开发经验使Rasmus Lerdorf拥有了很深的技术功底。在1994年,他设计了PHP的第一个版本PHP1.0,并于1995年将其通过社区发布。在1996年,Rasmus Lerdorf又设计了PHP2,在1998年,由于Zeev Suraski和Andi Gutmans当时正在做毕业设计,需要一个用于开发Web程序的语言,他们也考虑了ASP和JSP,但由于ASP只能运行在Windows平台,而JSP又过于复杂,因此,他们最后选择了PHP,但他们发现,PHP的功能当时还十分有限,因此,他们决定为PHP重新编写底层的解析程序,这就是PHP的第一个被广泛使用的版本:PHP3.0。
Rasmus Lerdorf虽然创造了PHP,但也许他并不打算创业,而是选择了一些公司继续从事他热爱的事业。并作为PHP传道士到世界各地去宣扬PHP。图3是Rasmus Lerdorf正在斯里兰卡首都科伦坡进行一场别开生面的PHP讲座,其中著名科幻小说家Arthur C. Clarke出席了会议。
图3 Rasmus Lerdorf在斯里兰卡

而PHP的另外两位创始人Zeev Suraski和Andi Gutmans就没Rasmus Lerdorf那么安分了。他们在1998年重写了PHP3.0的解析器后,在1999年,他们成立了PHP的商业化公司Zend。再一次演绎了双人创业的神话,记得Google的两位创始人布林和佩奇也是在1999年创办的google,虽然Zend没有Google成功,但Zend的成立却为开源软件的商业化奠定的基础。
图4 Zeev Surask

图5 Andi Gutmans
Zeev Suraski自从1998年以来一直就从事着和PHP相关的工作。在开发完PHP3.0后,Suaraski和Gutmans继续着他们的PHP之梦,开始紧锣密补地开发他们的Zend引擎,也就是后来的的PHP4.0。在设计PHP4.0的同时,他们还为PHP设计了很多的组件,如服务抽象层和多线程支持。
Suraski 和Gutmans 天衣无缝地配合使他们的成就非凡,下面是他们的部分成就:
·Apache软件基金会成员
·获得1999年GNU自由软件奖提名
·获得1998年CNET Web革新奖亚军
·获得1999 LinuxWorld杂志最佳选择奖
·在Web技术杂志上pk ASP获胜,使PHP成为最优秀的Web开发工具之一。
Zend的创立和Google差不多,由于Suraski 和Gutmans都是搞技术出身,而他们并不擅长公司的管理。因此,Zend的另一位联合创始人Doron Gerstel开始进入人们的视线。Doron Gerstel出任了Zend公司的CEO,他拥有丰富的企业管理经验,Doron Gerstel使用这些经验使Zend成功地将PHP商业化,并推出了一系列的产品,如Zend Studio,一个用于Web可视化开发的IDE。
Zeev Suraski是个活跃分子,他正在全力将PHP推往全世界。Suraski为了推动LAMP在中国的应用,于2006年首次访华
图6 Zeev Suraski 在演讲

Zend公司现在已经进入了良性循环,在刚成立时融了800多万美元后,最近又获得了2000万美元的风险投资。在今年10月的Web开发大会上,Zend宣布要使用PHP建立新的Web应用,从而使Web开发更人性化。
图7 Web大会实况

Suraski 和Gutmans进行了多年的合作,他们正在带领着Zend向着预定的目标前进,希望在他们的带领下,PHP能有更美好的明天。
传奇的诞生,PHP三位创始人简介的更多相关文章
- 关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其他位数)
关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其... 方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999 ...
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
最近在看算法,看到这个题,觉得挺经典的,收起. 分析: 1 .把问题归结为图结构的遍历问题.实际上6个数字就是六个结点,把六个结点连接成无向连通图,对于每一个结点求这个图形的遍历路径,所有结点的遍历路 ...
- php实现数字格式化,数字每三位加逗号的功能函数
原地址:http://www.jb51.net/article/73781.htm php实现数字格式化,数字每三位加逗号的功能函数,具体代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 ...
- PHP数字格式化,每三位逗号分隔数字,可以保留小数
在报价的时候为了给浏览者更清晰明确的数字,所以需要用到数字格式化,有两种方法,一种自己写函数,另一种当然是系统自带的,其实我更喜欢系统自带的. 先来系统简单的: string number_forma ...
- C++ Ouput Exactly 2 Digits After Decimal Point 小数点后保留三位数字
在C++编程中,有时候要求我们把数据保留小数点后几位,或是保留多少位有效数字等等,那么就要用到setiosflags和setprecision函数,记得要包含头文件#include <ioman ...
- 学习练习 java 不重复的三位偶数
编写一个Java程序,计算一下1,2,…,9这9个数字可以组成多少个互不相同的.无重复数字的三位偶数. package com.hanqi; //编写一个Java程序,计算一下1,2,…,9 //这9 ...
- js验证连续两位数字递增或递减和连续三位数字相同
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- js给数字加三位一逗号间隔的两种方法(面试题)
方法一: <script type= "text/javascript"> //保留三位小数,toLocaleString() 方法可把一个 Number 对象转换 ...
- 取小数点后三位的方法(js)
使用js取小数点后三位的方法,我觉得这个方法最好 Math.round(num*100)/100 还有其他方法: http://hi.baidu.com/yansueh/item/f026d8d759 ...
随机推荐
- HDU 3790 (最短路 + 花费)
题意: 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的. #include<bits/stdc ...
- python中split()函数讲解
本文讲述的是string.split(s[, sep[, maxsplit]]),针对string类型的split()函数.它主要是切割字符串,结果返回由字符串元素组成的一个列表,具体怎么使用看下面的 ...
- git commit 含有中文的代码,提示Warnning:Your console font probably doesn't support Unicode.......
git 提交代码是会遇到以下问题, git commit 代码时提示: Warning: Your console font probably doesn't support Unicode. If ...
- 转:Ubuntu下ibus-sunpinyin的安装及翻页快捷键设置!
在windows下,好多人都已经习惯了使用搜狗拼音,到ubuntu下,忽然没有极为顺手的输入法,实为郁闷,但是确实还没有for linux版本的搜狗使用,这是搜狗的商业策略,我们无法掌控,但是,如果你 ...
- 【LeetCode】Broken Calculator(坏了的计算器)
这道题是LeetCode里的第991道题. 题目描述: 在显示着数字的坏计算器上,我们可以执行以下两种操作: 双倍(Double):将显示屏上的数字乘 2: 递减(Decrement):将显示屏上的数 ...
- Python之虚拟机操作:利用VIX二次开发,实现自己的pyvix(系列一)成果展示和python实例
在日常工作中,需要使用python脚本去自动化控制VMware虚拟机,现有的pyvix功能较少,而且不适合个人编程习惯,故萌发了开发一个berlin版本pyvix的想法,暂且叫其OpenPyVix.O ...
- Redis的持久化——RDB
前面说到redis的三大特性:缓存.分布式内存数据库.持久化,所以今天将为大家介绍redis的两种数据持久化技术RDB和AOF, 先介绍RDB吧. 一.RDB是什么? 1.RDB全称redis dat ...
- 常州模拟赛d2t3 小X的佛光
平日里最喜欢做的事就是蒸发学水.[题目描述]小 X 所在的城市 X 城是一个含有 N 个节点的无向图,同时,由于 X 国是一个发展中国家,为了节约城市建设的经费,X 国首相在建造 X 城时只建造 N ...
- 【BZOJ3611】大工程(虚树,DFS序,树形DP)
题意:有一棵树,树有边权,有若干次询问,给出一些点,求: 1.这些点互相之间的距离之和 2.点对距离中的最大和最小值 n<=1000000 q<=50000并且保证所有k之和<=2* ...
- javascript事件委托和jQuery事件绑定on、off 和one以及on绑定多个事件(重要)
一. 事件委托什么是事件委托?用现实中的理解就是:有100 个学生同时在某天中午收到快递,但这100 个学生不可能同时站在学校门口等,那么都会委托门卫去收取,然后再逐个交给学生.而在jQuery 中, ...