今天讲一段情史,是关于世界上最好的编程语言PHP和Facebook的感情经历。
恋爱
PHP能和Facebook谈恋爱,主要归功于创始人扎克伯格。
小扎这个哈佛的学生,很不安分,鬼点子很多,很喜欢整一些快餐式的Web项目。
而PHP的特点就是快速开发、快速上线,被小扎一眼相中,直接抛弃了Java,C#,Python,Perl,用它开发了好多小项目,随便挑几个大家看看:
课程配对(Course Match):
在这个网站上,可以选出他们想上的课程。也可以看到其他选择了这门课程的人,当然也可以通过输入人名查看别人上了什么课。
网站非常简陋,就是纯文本,但是让小扎惊奇的是,很多人喜欢在上面点来点去。
网站部署在他的个人笔记本中,网站很受欢迎,访问量巨大,很快笔记本就瘫痪了。
Facemash:
电影《社交网络》中描述了这一幕,小扎约会失败,回到公寓,一边喝啤酒一边写代码。
他未经许可,入侵哈佛各个学院的服务器,从通讯录上把照片“偷”下来,上传到自己的网站上,两个一组显示,让用户去评比谁更Hot。
凌晨4点,Facemash在哈佛大学像病毒一样迅猛传播,流量之大,IT部门不得不给它断网。
Facemash也引发了大量投诉,扎克伯格被哈佛的管理委员会传唤,差点儿因此被开除。
奥古斯都的罗马
这是一门课,但是扎克伯格忙于编程,根本没上。
快到期末考试时他傻眼了,考试要求奥古斯都统治时期的图片和工艺品进行分析。
于是他决定用编程来解决问题,他把这门课网站上所有图片都扒下来,传到自己网站,让其他同学一起学习,大家可以在上面记笔记,查看别人的笔记。
最后,小扎这门课得了一个“优”。
结婚
这些小网站充分体现了小扎的特点:想法很多,并且喜欢快速实现。
PHP虽然会产生脏代码,但这都不重要,关键是快速实现,它成了小扎的最佳工具。
通过Course Match,让小扎认识到人们有强烈的渴望去了解周围的人。
通过Facemash,他知道了人们很喜欢看朋友和熟人的图片,喜欢窥探别人的隐私。
通过《奥古斯都的罗马》小扎意识到:人们乐意共享免费的内容。
一切准备停当,只差一个引爆点。
这时候双胞胎温克莱沃斯兄弟出现了,让他做一个叫做ConnectU的社交产品。
小扎满口答应,但是却不断拖延,最终用PHP推出了自己的社交网站:Thefacebook。
Thefacebook一开始并没有任何内容,它的内容需要用户去填充。
在网站上用户可以上传自己的图片,写下自己的兴趣爱好,选修的课程等等。
用户之间可以通过Poke的方式做简单的互动,更重要的是可以浏览其他人的内容,满足了一个人的“窥探”欲望。
PHP和Facebook结婚了。
蜜月
《亮剑》中赵刚说:一个军队的气质和性格是首任军事长官决定的。这个观点用到公司上也是合适的 。
小扎给Facebook创建的风格就是打破常规,快速行动,完成比完美更重要。
外界看Facebook的团队,经常觉得他们就是黑客,一群人在一起不断尝试,疯狂迭代,这种风格和PHP实在太搭配了。
在PHP的帮助下,快速迭代的Facebook迅速冲出哈佛,进入美国所有大学。
然后冲出美国,走向全世界。
2012年,Facebook的用户数量已经达到惊人的10亿。
这里必须提一下,Facebook当然也想进入中国,只是没有成功,小扎也从“对华友好”的人设,迅速成为反华急先锋,公然抹黑中国,还试图用地缘政治手段“杀死”竞争对手TikTok,真是闻所未闻,此处暂时不表,下次再说。
分手
Facebook一旦变得财大气粗,就开始嫌弃PHP了。
他经常讽刺PHP“动态一时爽,重构火葬场”。
还拿着各种图片对PHP的性能进行百般羞辱。
说什么用户体验差,需要更多的服务器(也就意味着需要花更多的钱在PHP身上),等等。
还威胁PHP说要重写!
面对指责和威胁,PHP都是一笑而过,因为它知道,Facebook规模庞大,内容复杂,再加上配套的生态系统,想要重写整个系统,怎么可能嘛!
Facebook没办法,又没法休掉PHP,只能想办法去改进PHP的执行引擎Zend,但是也没有得到想要的性能提升。
2010年,Facebook痛定思痛,终于放了一个大招:HipHop,它可以把PHP代码转换成高度优化的C++代码,编译后以本地代码来执行。
经过转换后,执行效率提升了6倍之多,相当了不起的成就。
但是,HipHop想在性能上更近一步很难了,它也无法完整支持PHP的特性,如create_function() 和 eval(),在编译和部署上也难以满足Facebook快速行动的要求。
2011年,Facebook干脆搞了一个PHP的虚拟机HipHop VM(HHVM),HHVM能把PHP转成字节码,然后在运行时动态编译成机器码执行,这和JVM就很像了。
与HHVM一起到来的,还有一个新欢:Hack语言。
Hack相当于PHP的一个方言,不过它允许程序员同时使用动态类型和静态类型。
这对于PHP是个超级打击,PHP一哭二闹三上吊,也没什么作用,毕竟性能和类型安全对一个超大型系统是非常重要的。
Facebook的系统逐渐采用Hack这个新欢,PHP没有办法,只有黯然离开。
后续
不过PHP的娘家人表示不服,他们推出了PHP7,性能大幅提升,性能逼近了Facebook的HHVM,在这种情况下,程序员还是选择PHP,毕竟这是开源社区的产品。
纵观PHP和Facebook的这段情史,我们注意到:PHP对于2000年初的创业公司吸引力非常大,因为它总是能快速地把网站开发出来。
在这个时候PHP可以说是魅力四射。
等到网站规模扩大,用户量增多,PHP的缺点就暴露无遗,会被人嫌弃。
嗯,刚收到PHP娘家人的抗议,他们说这篇文章不客观,从PHP7 开始,性能就大幅提升了,都逼近Facebook的HHVM+Hack了,更不用说PHP8了.....
好吧,祝愿世界上最好的编程语言越来越好!