追本溯源之浅谈PHP的发展史
如今的我们一直在追求着高大上的技术,却常常忽略了那些最初的本源。生活中亦是如此,当我们在一条路上越走越远的时候,却忘了当时为什么出发。
以上貌似和本文内容有些不符。当然,对于我们程序员来说,不断的探索新的技术是我们自身成长所必须的。但是,了解一门技术的前世今生也许更有助于我们对其深入的探索。下面我们就来谈一谈PHP的发展过程。
PHP开始于1994年,最初产生于 Rasmus Lerdorf的一个简单的想法,当时Rasmus用C语言写了一个应用程序,这个程序就是用来追踪和维护自己的个人主页的。并且Rasmus对其又进行了扩展,使其可以应用于web表单还可以和数据库进行交互。就这样PHP的第一个版本就诞生了。Rasmus称其为“Personal Home Page/Forms Interpreter” 简称PHP/FI。
用Rasmus自己的话说:起初并不想开发一门新的编程语言,但是随着PHP/FI的发展,渐渐的就不再受他的控制了。就这样一个开发团队行程了,并且在1997年的11月发布了第二个版本 PHP/FI 2。
再往后,Zeev Suraski 和 Andi Gutmans 两个人的出现,更是使得PHP的发展走向了一个新的里程碑。在1997年,两人重新写了PHP的解释器,形成了PHP的第三个版本 PHP3,也就是在此时正式名字由PHP/FI 改为 PHP( Hypertext Preprocessor 超文本预处理器)。时隔一年,两人在1998年又重新写了PHP的核心代码,用了将近一年的时间,Zend引擎在1999年诞生了。接着在2000年5月,带有第一代zend引擎的PHP4正式发布了。随后其发展进入了一个平缓的阶段,带有第一代Zend 引擎的PHP4在2008年8月达到4.4.9以后就再没有进行后续开发,也没有任何的安全更新。我用的最早的一个PHP4的程序应该是DEDECMS了。这时PHP还是面向过程的编程方式。
在2004年6月份的时候,PHP的发展到达了第二个里程碑。带有Zend Engine II的PHP5正式发布,在这PHP5中开始支持面向对象,而且性能明显增强。直到2008年很多程序都不再支持PHP4版本了,取而代之的是PHP5,直到现在我用的版本也还是PHP5。
接着,下一个人物该出场了,他的出现使PHP从5又上升了一格成为了PHP6。他的名字叫Andrei Zmievski。当时PHP5发布以后,PHP收到了各种各样的反馈,反馈的内容就是在PHP中缺少编码转换的支持。所以在2005年的时候,由Andrei领导在PHP中嵌入了ICU库。并且使文本字符串以unicode-16的方式呈现。这一举动,对于PHP本身以及用户的编码方式都产生了大的改变,所以PHP6应运而生了。虽说,这一改变跨越很大,但是由于开发人员不能很好的理解所做的这些改变,并且向unicode-16编码(这一编码方式在web环境中很少被用到)转换会导致性能的下降,种种原因导致这一工程停滞下来。
而且在2009年发布的PHP5.3还有2010年发布的5.4几乎涵盖了所有从PHP6移植来的功能。因此在2010年这项工程停止了,直到2014年也没有被人们所接受。
在2014-2015年期间,PHP7正式发布了。最初对于PHP7的这个版本是存在一些争议的,因为先前的PHP6并没有正式发布,就夭折了,所以直接到7这个版本并不是很合适。但是在一些学术论文还有书籍中已经引用了PHP6这个名称,所以说最终人们将其定位7。对于PHP7其主要的目标就是通过重构Zend引擎,使PHP的性能更加的优化,同时保留语言的兼容性。由于是对其引擎的重构,因此PHP7的引擎目前已是第三代 Zend Engine 3。
今天PHP7已经正式发布,纵观其从诞生到发展壮大,有成功也有失败,而今天的成功又仅仅源于昨天的一个简单的想法。作为一名程序员,如果自己在现在的一个想法,多少年后也能产生如此大的成就,那岂是一个“自豪”所能表达的。类似的情况也发生在另一个人的身上,linux的奠基者linus。不管怎么说,作为一名PHP程序员,看到PHP今天的成绩自然感到高兴,自己也会在PHP的路上一直走下去,希望PHP的发展越来越好。
下一篇: php 给图片加灰色透明效果_PHP教程
推荐阅读
-
追本溯源之浅谈PHP的发展史
-
PHP实现简单线性回归之数学库的重要性
-
用 Composer构建自己的 PHP 框架之基础准备_php实例
-
PHP文件操作之获取目录下文件与计算相对路径的方法_PHP
-
php微信公众开发之获取周边酒店信息的方法,公众周边_PHP教程
-
Laravel 5框架学习之Eloquent (laravel 的ORM)_php实例
-
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
-
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
-
php绘图之加载外部图片的方法,_PHP教程
-
PHP防注入之程序里的敏感信息_PHP教程