今天讲一段情史,是关于世界上最好的编程语言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了.....
好吧,祝愿世界上最好的编程语言越来越好!
推荐学习:《PHP视频教程》
以上是曝一段十多年前的“情史”:PHP和Facebook的感情经历的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了PHP中的crypt()和password_hash()之间的差异,以进行密码哈希,重点介绍其实施,安全性和对现代Web应用程序的适用性。

文章讨论了通过输入验证,输出编码以及使用OWASP ESAPI和HTML净化器之类的工具来防止PHP中的跨站点脚本(XSS)。

自动加载PHP会在需要时自动加载类文件,从而通过减少内存使用和增强代码组织来提高性能。最佳实践包括使用PSR-4和有效组织代码。

本文讨论了在PHP中管理文件上传大小的管理,重点是2MB的默认限制以及如何通过修改PHP.INI设置来增加它。

本文讨论了PHP 7.1中引入的PHP中的无效类型,允许变量或参数为指定类型或NULL。它突出显示了诸如提高可读性,类型安全性和明确意图的好处,并解释了如何声明

本文讨论了unset()和unlink()功能在编程中的差异,重点关注其目的和用例。 unset()从内存中删除变量,而unlink()从文件系统中删除文件。两者都对效率至关重要


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版

记事本++7.3.1
好用且免费的代码编辑器