TranslateProject/translated/talk/20150615 PHP at 20--From pet project to powerhouse.md
2015-06-19 13:49:40 +08:00

10 KiB
Raw Blame History

PHP 20岁了从兴趣工程到强大的组织

信任: Steve Jurvetson via Flickr

曾经的‘丑小鸭工程’已经转变为一个网络世界的强大组织,感谢网络世界的灵活,实用与充满生气的社区

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

实际上当Lerdorf发布个人主页工具 -- 后来以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后来的支配地位的关键作用。

到了第二版 -- aka 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 PHP闻名1997年二月份的时候举行了第一次聚会。这是一个充满生气,饱含激情的开发者社区形成的开端,聚合成一种吸引力 -- 在网络上很少的工具就可以帮助他们解决问题。PHP这种普遍存在的特性使得她成为网络开发一个很自然的选择。在分享主导的世界里她开始盛行而且低入的门槛对于许多早期的网络开发者来说是十分有吸引力的。

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

这种公社的势头有待校正证明了接下来几年里PHP成长的关键所在且随着网络开发产业的爆发PHP也获得发展。PHP开始占领更多更大的网站。越来越多的用户群在世界范围内形成。邮件列表在线论坛IRC大会交易日记如php[架构]德国PHP杂志国际PHP杂志 -- PHP社区的活力在完成网络工作的方式上有极其重要的影响共同地开放地倡导代码共享。

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

框架的异军突起

针对Ruby编程语言的Ruby on Rails在MVC模型-视图-控制架构模型上获得了不断增长的焦点与关注。Mojavi PHP框架几年前已经使用该模型了但是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代码迁移到更快最佳的可执行的代码。尽管如此Facebook想继续使用PHP由于PHP的易用和快速开发周期。HipHop进化为HHVM一个针对PHP的JITjust-in-time编译基础的执行引擎其包含一个基于PHP的新的语言Hack

Facebook的创新和其他的VM项目创建了在引擎水平上的比较引起了关于Zend引擎未来的讨论。Zend引擎依然占据PHP和一种语言表述的问题的核心。在2004年一个语言表述项目被创建“为提供一个完整的简明的语句定义和PHP语言的语义学”使得对编译器项目来说创建共用的PHP实现成为可能。

下一个PHP的主要版本成为了激烈争论的话题一个著名的pgpng项目下一代作为一个能清理重构优化和提升PHP代码基础的选项被提出来这也展示了对真实世界应用的性能的实质上的提升。由于之前未发布的PHP 6.0版本在决定命名下一个主要版本为“PHP 7”后phpng分支被合并了并制定了计划开发PHP 7Hack提供了很多语言中拥有的功能如scalar和返回键入提示。

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

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

他的SunshinePHP的关键发言中Rasmus Lerdorf回忆到“我曾想过我会在20年之后与我当初做的这个愚蠢的小项目交流吗没有。”


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

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

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

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