TranslateProject/published/201506/20150615 PHP at 20--From pet project to powerhouse.md
2015-07-01 00:16:33 +08:00

11 KiB
Raw Blame History

PHP 20岁了从玩具到巨头

曾经的‘丑小鸭工程’已经转变为一个互联网巨头,感谢灵活、务实和充满活力的开发者社区。

当Rasmus Lerdorf发布“一个用C写的小型紧凑的CGI可执行程序集合”时, 他没有想到他的创造会对网络发展产生多大的影响。今年在Miami举行的SunshinePHP大会上Lerdorf做了开场演讲他自嘲到“在1995年的时候我以为我已经在 Web 上解除了C API的束缚。显然事情并非那样我们全成了C程序员了。”

题图来自: Steve Jurvetson via Flickr

实际上当Lerdorf发布个人主页工具Personal Home Page Tools即 PHP 名字的来源的1.0版本时那时的网络还是如此的年轻。直到那年的十一月份HTML 2.0还没有公布而且HTTP/1.0也是次年的五月份才出现。那时NCSA HTTPd是使用最广泛的网络服务器而网景的Navigator则是最流行的网络浏览器八月份的时候IE1.0才刚刚出现。换句话说PHP的开端刚好撞上了浏览器战争的前夜。

早些时候我们谈论了一大堆关于PHP对网络发展的影响。回到那时候当说到用于网络应用的服务器端处理我们的选择是有限的。PHP满足了我们对于一种工具的需求这就是可以使得我们在网络上做一些动态的事情。它的实用的灵活性只受限于我们的想像力PHP从那时起便与网络共同成长。现在PHP占据了网络语言的超过80%的份额,已经是成熟的脚本语言,特别适合解决网络问题。她独一无二的血统讲述了一个故事,实用高于理论,解决问题高于纯正。

把我们钩住的网络魔力

PHP一开始并不是一门编程语言从她的设计就很明显不是 -- 或者她本来就缺乏相关特性正如那些贬低者指出的那样。最初她是作为一种API帮助网络开发者能够接入底层的C语言封装库。第一个版本是一组小的CGI可执行程序提供表单处理功能可以访问查询参数和mSQL数据库。而且她可以如此容易地处理一个网络应用的数据库证明了其在激发我们对于PHP的兴趣和PHP后来的支配地位的关键作用。

到了第二版 -- 即 PHP/FI -- 数据库的支持已经扩展到包括PostgreSQL、MySQL、Oracle、Sybase等等。她通过封装他们的C语言库来支持各种数据库将他们作为PHP库的一部分。PHP/FI也封装了GD库可以创建并管理GIF图像。她可以作为一个Apache模块运行或者编译进FastCGI支持并且她引入的 PHP 编程语言支持变量、数组、语言结构和函数。对于那个时候大多数在网络这块工作的人来说PHP是我们一直在寻求的那款“胶水”。

当PHP吸纳越来越多的编程语言功能演变为第三版和之后的版本时她从来没有失去这种黏合的特性。通过仓库如PECLPHP Extension Community LibraryPHP可以把各种库都连在一起将他们的函数引入到PHP层面。这种将组件结合在一起的能力成为PHP之美的一个重要方面使之不会受限于其源代码上。

网络,一个码农们的社区

PHP在网络发展上的持续影响并不局限于能用这种语言干什么。PHP如何完成工作谁参与进来 -- 这些都是PHP传奇中很重要的部分。

早在1997年PHP的用户群体开始形成。其中最早的是美国中西部PHP用户组后来叫做 Chiago PHP1997年二月份的时候举行了第一次聚会。这是一个充满生气、饱含激情的开发者社区形成的开端,聚合成一种吸引力 -- 在网络上的一个小工具就可以帮助他们解决问题。PHP这种普遍存在的特性使得她成为网络开发一个很自然的选择。在分享主导的世界里她开始盛行而且低入的门槛对于许多早期的网络开发者来说是十分有吸引力的。

伴随着社区的成长为开发者带来了一堆工具和资源。这一年是2000年出现了PHP的一个转折点它见证了第一次PHP开发者大会聚集了编程语言的核心开发者他们在Tel Aviv见面讨论即将到来的4.0版本的发布。PHP扩展和应用仓库PEAR也于2000年发起它提供了高质量的用户代码包依据标准和最佳操作。第一届PHP大会PHP Kongress不久之后在德国举行。PHPDeveloper.org也随后上线直到今天这都是PHP社区里最权威的新闻资源。

这个社区的势头表明了接下来几年里PHP成长的关键所在。随着网络开发产业的爆发PHP也获得发展。PHP开始为更多、更大的网站提供动力。越来越多的用户群在世界各地开花。邮件列表、在线论坛、IRC、大会以及如php[architect]、德国PHP杂志、国际PHP杂志等商业杂志 -- PHP社区的活力在完成网络工作的方式上有极其重要的影响共同地开放地倡导代码共享。

然后在10年前PHP 5发布后不久在网络发展史上一个有趣地事情发生了它导致了PHP社区如何构建库和应用的转变Ruby on Rails发布了。

框架的异军突起

用于Ruby编程语言的Ruby on Rails框架在MVC模型-视图-控制架构模型上获得了不断增长的焦点与关注。Mojavi PHP框架几年前已经使用MVC模型了但是Ruby on Rails的高明之处在于巩固了MVC。框架引爆了PHP社区并且框架已经改变了开发者构建PHP应用程序的方式。

许多重要的项目和发展已经发端这归功于PHP社区框架的生长。PHP框架互用性组织成立于2009年致力于在框架间建立编码标准命名约定与最佳操作。编纂这些标准和操作帮助为开发者在使用成员项目的代码时提供了越来越多的互用性软件。互用性意味着每个框架可以拆分为组块和独立的库也可以作为整体的框架在一起使用。互用性带来了另一个重要的里程碑Composer项目于2011年诞生了。

从Node.js的NPM和Ruby的Bundler获得灵感Composer开辟了PHP应用开发的新纪元创造了一次PHP“文艺复兴”。它激发了包互用性、标准命名约定、编码标准的采用、覆盖测试的提升。它是任何现代PHP应用中的一个基本工具。

加速和创新的需要

如今PHP社区有一个生机勃勃应用和库的生态系统有一些被广泛安装的PHP应用包括WordPressDrupalJoomla和MediaWiki。从小型的夫妻店站点到whitehouse.gov和Wikipeida这些应用支撑了各种不同规模的业务的网站。在Alexa前十的站点中有6个使用PHP在一天内为数十亿的页面访问提供服务。因此PHP应用已成为需要加速的首选并且许多创新也加入到PHP的核心来提升性能。

在2010年Facebook公开了其用作PHP源对源的编译器的HipHop可以翻译PHP代码为C++代码并且编译为一个单独的可执行二进制应用。Facebook的规模和成长需要从标准互用的PHP代码迁移到更快、最佳的可执行的代码。尽管如此由于PHP的易用和快速开发周期Facebook还想继续使用PHP。HipHop后来进化为HHVM这是一个针对PHP的JITjust-in-time编译基础的执行引擎其包含一个基于PHP的新的语言Hack

Facebook的创新以及其他的VM项目是在引擎水平上的比较其引起了关于Zend引擎未来的讨论。Zend引擎依然是PHP的内核和语言规范。在2014年它创建了一个语言规范项目“提供一个完整的简明的语句定义和PHP语言的语义学”使得对编译器项目来说创建互用的PHP实现成为可能。

下一个PHP的主要版本成为了激烈争论的话题他们提出了一个叫做phpng下一代的项目来清理重构优化和改进PHP代码基础这也展示了对实际应用的性能的实质提升。由于之前有一个未发布的PHP 6.0版本因此在决定命名下一个主要版本叫做“PHP 7”后就合并了phpng分支并制定了开发PHP 7的计划以增加很多语言中拥有的功能如scalar和返回类型提示。

随着今天第一版PHP 7 alpha发布,基准检测程序显示她在许多方面与HHVM的一样好或者拥有更好的性能PHP正与现代网络开发需求保持一致的步伐。同样地PHP-FIG继续创新和推动框架与库的协作 -- 最近由于PSR-7的采纳这将会改变PHP项目处理HTTP的方式。用户组、会议、公众和如PHPMentoring.org这样的布道者继续在PHP开发者社区提倡最好的操作、编码标准和测试。

PHP从各个方面见证了网络的成熟而且PHP自己也成熟了。曾经一个简单的低级C语言库的API封装PHP以她自己的方式已经成为一个羽翼丰满的编程语言。她的开发者社区是一个充满生气、乐于助人、在实用方面引以为傲并且欢迎新人的地方。PHP已经经受了20年的考验而且目前在语言与社区里的活跃性会保证她在接下来的几年里将会是一个密切相关的、积极有用的的语言。

在Rasmus Lerdorf的SunshinePHP的演讲中他回忆到“我会想到我会在20年之后讨论当初做的这个愚蠢的小项目吗没有。”

这里向Lerdorf和PHP社区的其他人致敬感谢他们把这个“愚蠢的小项目”变成了一个如今网络上持久、强大的组件。


via: http://www.infoworld.com/article/2933858/php/php-at-20-from-pet-project-to-powerhouse.html

作者:Ben Ramsey 译者:wi-cuckoo 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出