搜索
首页php教程php手册Facebook为什么使用PHP编程语言?

Facebook为什么使用PHP编程语言?

PHP 实现了从设计一个网站到编写一个 Web 应用程序的飞越,而投入却很小,你完全不需要成为专业人士就可以做到。

当日本计算机科学家松本行弘决定创造一种名叫 Ruby (这种技术支撑了 Twitter、Hulu 以及其他许多现代 Web 流行网站) 的程序语言时,他是从 1966 年一部名为 Babel-17 的科幻电影中获得了灵感。这本书主要讲的是一种新发明的语言能够让那些使用它的人升级自己的头脑思维。“Babel-17 是一种极精确的分析语言,几乎可以确保任何情况下的技术优势。”影片中的主人公有这样一句台词。通过发明 Ruby,松本行弘希望实现同样的效果:重编并改进程序员思考的方式。

这目标听起来很宏大,但他的想法是一种主流。软件开发者做为一个工种,普遍认为程序语言对于思维有影响力,大到足够可以改变你解决问题的方式——甚至是你选择解决哪些问题。这也是他们如何扩大公司规模、改进产品、招聘团队的方式:“你用什么编程语言?”

明白这一点能够让圈外人了解软件公司的运作,尤其是在它们变得如此强大又赚钱,制造的产品和服务进入我们生活各个角落的今天。如果你想知道为什么 Facebook 的外观和工作方式是现在这个状态,Facebook 未来能为我们或对我们做什么,你就需要知道一些关于 PHP 的知识,因为这是马克?扎克伯格 (Mark Zuckerberg) 最初打造 Facebook 使用的程序语言。

在 程序员当中,PHP 可能是所有编程语言中最不被“仰视”的一种。有人在博客文章里评价其为“糟糕的设计”,而那些愿意使用 PHP 的人则被看作是业余选手。“有这种传奇的事,那些去 Facebook 工作的顶尖工程师,他们在 Windows XP 上写 PHP 代码,”程序问答网站 Stack Overflow 创始人杰夫 (Jeff Atwood) 说道,“他们可是那种毁三观级的黑客。”在近 10 分钟的谈话中,杰夫用如下的词语描述 PHP:“一个消瘦的怪兽”,“一场大瘟疫”,一个鬼屋里的住客爱上了幽灵。

大部分得到承认的程序语言都有一个总体的设计哲学或 是指导原则,用来组织关键字和语法——也就是交给程序员使用的指令集合——并形成一个逻辑上的整体。PHP 没有。其设计者 Rasmus Lerdorf 主动承认他当初是东拼西凑的。“我不知道该怎么停止,”2003 年他在接受一次采访时说到,“我根本不知道要如何写一个程序语言——我只是一边用一边增加新的逻辑模块。”

程序员最爱用的一个例子是 PHP 函数“mysql_escape_string”,该函数能够将一段混合字符剔除掉之后再提交数据库。(混合字符的例子可以参考一般网站会要求你输入电邮 地址之类,黑客能够嵌入一段代码,从网站获得你的密码。) 当这个函数的一个漏洞被发现时,一个新的版本出现了,叫做“mysql_real_escape_string”,但是原有的版本并没有被替换。这种结果 就好像在飞机驾驶仓上有两个外观接近的按钮并列排放一样:一个用来把起落架放下,另一个用来把起落架安全地放下。这可不是什么友好的操作——这是导致灾难 的原因。

但是尽管对 PHP 的嗤之以鼻随处可见,如今的 Web 网络有许多都是基于 PHP 设计,全网有 39% 的网站使用 PHP。Facebook、Wikipedia 和 WordPress 都是 PHP 项目。这是因为 PHP 虽然有许多缺陷,但是上手很快。PHP 这个名字来自最初的“个人主页”,可以很容易地让用户在静态 HTML 页面中添加诸如日期和用户名之类的动态内容。PHP 实现了从设计一个网站到编写一个 Web 应用程序的飞越,而投入却很小,你完全不需要成为专业人士就可以做到。

而 PHP 这种“即刻运行”的特性对于 Wikipedia 的成功至关重要,维基媒体基金会的总软件工程师奥 瑞 (Ori Livneh) 这样认为。“我一直讨厌 PHP,”他对我说。维基百科过于依赖 PHP,导致了大规模的设计缺陷。(这也是为什么直到 2008 年维基百科才推出移动端版本,直到 2013 年编辑界面才变得友好起来。) 但 PHP 让那些不是——或几乎刚刚是——软件工程师的人能够提交新功能:这也是为什么维基百科词条可以在古埃及文明页面显示象形文字,并且可以处理五线谱的原因。

但是你用 PHP 设计不了 Google,因为 Google 之所以成为 Google 需要把一件事做到最好——搜索结果。设计 Google 的是更加精炼和强大的语言,比如 Java 和 C 。而 Facebook 恰恰相反,更像一系列的小试验:按钮、信息流、信息模块等等只是为了抓住你的注意力。PHP 是为了快速制造新东西而生的。

你可以想象扎克伯格在哈佛宿舍里完成 Facebook 的情景。互联网发展如此之快,用户多变,唯一能够抓住机会的办法就是快。无论他做的是一团泥也好,或者是一盘意粉,甚至是什么都好。他把东西做成了,人们可以用。他当时没有考虑什么优雅代码的问题;他想的是让好友们可以登陆 Thefacebook 去看他们认识姑娘的图片。

如 今 Facebook 已经是价值超 2000 亿美元的公司了,办公室里到处可以见到标语“完成要比完美更重要”;“快速推进,打破常规”。这就是 Facebook 的“黑客”文化,但也恰恰是 PHP 的价值观。快速推进打破常规实际上正是 PHP 的本质,任何使用这种语言的人都会这样思考。可能你会说,正是这种编程语言,打造并维系了 Facebook 的文化。

2010 年末,Facebook 迎来了一场危机。PHP 并不是一种性能优化的设计,但是现在要求提升性能。Facebook 发展速度太快,如果没有重大的调整,看起来可能会出现问题。

整 体更换程序语言并不是一个可选的方案:Facebook 有数百万行 PHP 代码,上千名 PHP 工程师专家,超过 5 亿用户。Facebook 的做法是,由资深工程师组成的一个小团队被分配到一个特别的任务。其中之一就是设计一个编译器,能够将 Facebook 的 PHP 代码转换成运行更快的 C 代码。另外一个任务则是由计算机语言专家完成,他们要让 Facebook 的程序员保持 PHP 风格文化,但是编写更可靠的代码。

于 是 PHP 的一个分支版本 Hack 应运而生,这种语言是带有可选的类型系统的 PHP。也就是说,你既可以用老式的方法快速编写 PHP 代码,或者选择让类型系统检查你的代码正确度。Facebook 希望他们的程序员用自己熟悉的语言继续快速推进,但是不想让他们像之前那样打破东西。(去年扎克伯格宣布了一个新的工程师口号:“快速推进,稳定架 构”。)

当创业公司终于解决了营收问题而“变成熟”之后,他们可以聪明地利用编程语言的威力来操纵企业组织的文化。曾经在 Google 供职 7 年的程序语言设计者罗桑 (Guido van Rossum) 认为,一旦软件公司发展到一定的体积,解决混乱局面的唯一方式,就是使用一种要求程序员在一线做更多工作的语言。“感觉上就好像你被拖慢了一样,因为你要 把每件事说三次。”这也是为什么许多创业公司在更换语言之前希望能等越久越好。你会失去一些最初帮你起步的牛逼黑客,也会失去小团队突击新功能的可能性。 但是一种更精确的语言会帮助公司的其他人了解彼此的代码,获得产品稳定性,这也是公司每天运作所必须的。

软件创业公司能够做到这一点调整, 或许能够帮助解释为什么他们如此强大。计算机不端扩张的触及领域也是如此。这些软件公司同样具有独特的能力,重新构建自我。随着变化和发展,它们能够做的 不仅仅是组织机构调整,因为它们基于代码设计,所以能够实现更加巨大的变化。它们能够重编自身,它们的文化,以及它们思考的方式。



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

Facebook是一个全球知名的社交媒体平台,它为用户提供了一个连接和交流的平台。成立于2004年,由马克·扎克伯格等人创建。它是一个在线社交网络,用户可以在上面与朋友、家人和同事分享信息、照片和视频,并与他们进行互动,它的影响力不仅限于个人用户,还扩展到了企业和新闻领域。

facebook是什么意思facebook是什么意思Jul 25, 2022 am 11:06 AM

facebook的意思是一个美国的互联网公司,也指的是该公司开发的社交网络服务网站;facebook创立于2004年2月4日,是一款世界著名的社交通讯类应用,用户能够使用这款应用与世界各地的人们进行交流。

如何利用深度链接方式后门化Facebook APP如何利用深度链接方式后门化Facebook APPMay 19, 2023 pm 02:49 PM

近期,作者发现了Facebook安卓APP应用的一个深度链接漏洞,利用该漏洞,可以把用户手机上安装的Facebook安卓APP应用转变成后门程序(Backdoor),实现后门化。另外,利用该漏洞还可以重打包FacebookAPP,并将其发送给特定目标受害者安装使用。下面就来看看作者对该漏洞的发现过程,以及如何通过Payload构造,最终将其转化为FacebookAPP实际生产环境中的安全隐患。漏洞发现通常做众测时,我会先认真了解目标系统的应用机制。在我的上一篇博客中,我已经分享了通过解析Face

如何在PHP中使用Git如何在PHP中使用GitMay 18, 2023 pm 04:31 PM

随着Git的普及和使用,很多PHP开发者都已经开始采用Git来管理自己的代码库。那么如何在PHP中使用Git呢?本文将为您详细介绍。1、安装Git首先,在使用Git之前,我们需要安装Git客户端。在Linux中,可以使用以下命令进行安装:sudoapt-getinstallgit在Windows中,可以前往Git官网下载相应的Git客户端进行安装。2、

vue3怎么使用Facebook嵌入式视频播放器APIvue3怎么使用Facebook嵌入式视频播放器APIMay 14, 2023 pm 01:52 PM

正文Facebook嵌入式视频播放器API是JavaScript版FacebookSDK提供的客户端功能。可以在自己网站上播放Facebook视频。开始使用先引入FacebookSDK封装成组件FacebookPlayerimport{onMounted,onBeforeUnmount}from"vue";constprops=defineProps({id:{type:String,default:""},src:{type:String,require

您需要在Windows 10上使用Facebook时允许麦克风通话您需要在Windows 10上使用Facebook时允许麦克风通话Apr 13, 2023 pm 08:25 PM

当尝试在浏览器中使用Facebook Messenger进行视频通话时,有时会抱怨硬件访问错误。弹出错误,说“您需要允许在PC上进行视频通话的麦克风和摄像头访问”。这可能是因为您可能希望在计算机上启用摄像头和麦克风访问,或者因为过时的驱动程序、冲突的设备、站点权限问题等。在本文中,我们有不同的解决方案来解决此错误。让我们开始吧!方法 1:允许桌面应用访问你的相机和麦克风步骤1:使用Windows + I键一起打开Windows设置第 2 步:点击隐私第三步: 在左侧,向下滚动并单击麦克风步骤4:

如何使用正则表达式在 PHP 中将大小写字母互换如何使用正则表达式在 PHP 中将大小写字母互换Jun 22, 2023 pm 03:03 PM

在PHP中,正则表达式是一种强大的工具,可以帮助我们快速地处理文本。其中一个常见的任务是将大小写字母互换。这在某些情况下可能很有用,例如当我们需要将一段文本转换为首字母大写或全文大写或全文小写时。在本文中,我们将介绍如何使用正则表达式在PHP中进行这种转换。一、将大小写字母互换的原理在PHP中,要将一个字符互换大小写,可以使用strtouppe

Bitget交易所官网登陆最新入口Bitget交易所官网登陆最新入口Feb 18, 2025 pm 02:54 PM

Bitget 交易所提供多种登录方式,包括电子邮件、手机号和社交媒体账户。本文详细介绍了每种登录方式的最新入口和步骤,包括访问官方网站、选择登录方式、输入登录凭证和完成登录。用户在登录时应注意使用官方网站并妥善保管登录凭证。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

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

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 英文版

SublimeText3 英文版

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

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具