目录
▲恋爱
▲结婚
▲蜜月
▲分手
首页 后端开发 php教程 曝一段十多年前的“情史”:PHP和Facebook的感情经历

曝一段十多年前的“情史”:PHP和Facebook的感情经历

Sep 20, 2022 am 11:34 AM
php

今天讲一段情史,是关于世界上最好的编程语言PHP和Facebook的感情经历。

曝一段十多年前的“情史”:PHP和Facebook的感情经历

▲恋爱


PHP能和Facebook谈恋爱,主要归功于创始人扎克伯格。

小扎这个哈佛的学生,很不安分,鬼点子很多,很喜欢整一些快餐式的Web项目。

而PHP的特点就是快速开发、快速上线,被小扎一眼相中,直接抛弃了Java,C#,Python,Perl,用它开发了好多小项目,随便挑几个大家看看:

课程配对(Course Match):

在这个网站上,可以选出他们想上的课程。也可以看到其他选择了这门课程的人,当然也可以通过输入人名查看别人上了什么课。

2.jpg

网站非常简陋,就是纯文本,但是让小扎惊奇的是,很多人喜欢在上面点来点去。

网站部署在他的个人笔记本中,网站很受欢迎,访问量巨大,很快笔记本就瘫痪了。

Facemash:

电影《社交网络》中描述了这一幕,小扎约会失败,回到公寓,一边喝啤酒一边写代码。

他未经许可,入侵哈佛各个学院的服务器,从通讯录上把照片“偷”下来,上传到自己的网站上,两个一组显示,让用户去评比谁更Hot。

凌晨4点,Facemash在哈佛大学像病毒一样迅猛传播,流量之大,IT部门不得不给它断网。

Facemash也引发了大量投诉,扎克伯格被哈佛的管理委员会传唤,差点儿因此被开除。

奥古斯都的罗马

这是一门课,但是扎克伯格忙于编程,根本没上。

快到期末考试时他傻眼了,考试要求奥古斯都统治时期的图片和工艺品进行分析。

于是他决定用编程来解决问题,他把这门课网站上所有图片都扒下来,传到自己网站,让其他同学一起学习,大家可以在上面记笔记,查看别人的笔记。

最后,小扎这门课得了一个“优”。

▲结婚


这些小网站充分体现了小扎的特点:想法很多,并且喜欢快速实现。

PHP虽然会产生脏代码,但这都不重要,关键是快速实现,它成了小扎的最佳工具。

通过Course Match,让小扎认识到人们有强烈的渴望去了解周围的人。

通过Facemash,他知道了人们很喜欢看朋友和熟人的图片,喜欢窥探别人的隐私。

通过《奥古斯都的罗马》小扎意识到:人们乐意共享免费的内容。

一切准备停当,只差一个引爆点。

这时候双胞胎温克莱沃斯兄弟出现了,让他做一个叫做ConnectU的社交产品。

小扎满口答应,但是却不断拖延,最终用PHP推出了自己的社交网站:Thefacebook。

3.jpg

Thefacebook一开始并没有任何内容,它的内容需要用户去填充。

在网站上用户可以上传自己的图片,写下自己的兴趣爱好,选修的课程等等。

用户之间可以通过Poke的方式做简单的互动,更重要的是可以浏览其他人的内容,满足了一个人的“窥探”欲望。

PHP和Facebook结婚了。

▲蜜月


《亮剑》中赵刚说:一个军队的气质和性格是首任军事长官决定的。这个观点用到公司上也是合适的 。

小扎给Facebook创建的风格就是打破常规,快速行动,完成比完美更重要。

外界看Facebook的团队,经常觉得他们就是黑客,一群人在一起不断尝试,疯狂迭代,这种风格和PHP实在太搭配了。

在PHP的帮助下,快速迭代的Facebook迅速冲出哈佛,进入美国所有大学。

然后冲出美国,走向全世界。

2012年,Facebook的用户数量已经达到惊人的10亿。

这里必须提一下,Facebook当然也想进入中国,只是没有成功,小扎也从“对华友好”的人设,迅速成为反华急先锋,公然抹黑中国,还试图用地缘政治手段“杀死”竞争对手TikTok,真是闻所未闻,此处暂时不表,下次再说。

▲分手


Facebook一旦变得财大气粗,就开始嫌弃PHP了。

他经常讽刺PHP“动态一时爽,重构火葬场”。

还拿着各种图片对PHP的性能进行百般羞辱。

4.jpg

说什么用户体验差,需要更多的服务器(也就意味着需要花更多的钱在PHP身上),等等。

还威胁PHP说要重写!

面对指责和威胁,PHP都是一笑而过,因为它知道,Facebook规模庞大,内容复杂,再加上配套的生态系统,想要重写整个系统,怎么可能嘛!

Facebook没办法,又没法休掉PHP,只能想办法去改进PHP的执行引擎Zend,但是也没有得到想要的性能提升。

2010年,Facebook痛定思痛,终于放了一个大招:HipHop,它可以把PHP代码转换成高度优化的C++代码,编译后以本地代码来执行。

5.jpg

经过转换后,执行效率提升了6倍之多,相当了不起的成就。

但是,HipHop想在性能上更近一步很难了,它也无法完整支持PHP的特性,如create_function() 和 eval(),在编译和部署上也难以满足Facebook快速行动的要求。

2011年,Facebook干脆搞了一个PHP的虚拟机HipHop VM(HHVM),HHVM能把PHP转成字节码,然后在运行时动态编译成机器码执行,这和JVM就很像了。

6.jpg

与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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

我后悔之前不知道的 7 个 PHP 函数 我后悔之前不知道的 7 个 PHP 函数 Nov 13, 2024 am 09:42 AM

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

php程序在字符串中计数元音 php程序在字符串中计数元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

您如何在PHP中解析和处理HTML/XML? 您如何在PHP中解析和处理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

解释PHP中的晚期静态绑定(静态::)。 解释PHP中的晚期静态绑定(静态::)。 Apr 03, 2025 am 12:04 AM

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

什么是PHP魔术方法(__ -construct,__destruct,__call,__get,__ set等)并提供用例? 什么是PHP魔术方法(__ -construct,__destruct,__call,__get,__ set等)并提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。

See all articles