您的位置:首页>>媒体评论
搜索: 标题  

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

发布时间:2015-04-05 14:03:04  来源:虎嗅网   编辑:即时新闻  背景:
Facebook为什么使用PHP编程语言?

  当日本计算机科学家松本行弘决定创造一种名叫 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) 认为,一旦软件公司发展到一定的体积,解决混乱局面的唯一方式,就是使用一种要求程序员在一线做更多工作的语言。“感觉上就好像你被拖慢了一样,因为你要把每件事说三次。”这也是为什么许多创业公司在更换语言之前希望能等越久越好。你会失去一些最初帮你起步的牛逼黑客,也会失去小团队突击新功能的可能性。但是一种更精确的语言会帮助公司的其他人了解彼此的代码,获得产品稳定性,这也是公司每天运作所必须的。

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

  虎嗅注:原文来自 MIT Technology Review,本站编译。




返回网站首页 本文来源:虎嗅网

本文评论
美媒:三星语音助手超过谷歌 会说八国语言
最近人工智能和人工智能的深度学习能力倍受关注,对于普通手机用户来说最直观的感受就是通过语音助...
日期:02-08
小程序能否重振O2O生态?
从锣鼓喧天到偃旗息鼓,O2O行业在最近几年经历了由波峰滑落至低谷的过程。创业者缺乏理智的跟进、无...
日期:02-08
IDC:OPPO成为2016年国内手机出货量冠军
国际数据公司(IDC)发布了最新的手机季度跟踪报告。报告显示,2016年OPPO、华为、vivo成为中国智能手...
日期:02-06
IDC:2016中国3家手机品牌占了半边天 苹果呈负增长
近日,IDC发布最新报告显示,2016年Q4中国智能手机市场出货量年增幅约为18.7%,年增长8.7%,OPPO、...
日期:02-06
甩掉低价标签的国产手机该如何走上康庄大道?
此前,华为终端CEO余承东曾表示,2017年将是华为终端的决胜之年,除了提升市场规模之外,盈利能力也...
日期:02-06
越来越萌的AI 真的无害吗?
从无人机到VR/AR,2017年,应该是人工智能机器人助理进入我们生活的一年。现在的市场上,人工智能助...
日期:02-04
库克狂抛苹果股票,是“跑路”前奏还是另有隐情
摘要: 在库克疯狂将限制股套现的背后,其实与苹果的业绩并没有一毛钱关系。更多的还是出自于其职业...
日期:02-04
要上市的Snapchat,能成为下一个Facebook吗?
Snap向纽交所提交的招股书,给2017年的科技公司上市之路开了一个好头。在北美社交市场上,如果说有谁还...
日期:02-04
同是手机应用开发,为何印度要比美国便宜十倍?
近日,印度大型应用开发企业Hyperlink Infosystem的一份调查研究引起了人们关注。研究指出,一款应...
日期:01-27
你认为iPad该用USB-C还是Lightning接口?
苹果公司有望在 2017 年对 iPad 产品线进行重大更新,增加新的屏幕尺寸,丰富软件功能,还有新一代 ...
日期:01-23
人类的推理能力也不及AI了?
你听过瑞文氏标准推理测试(Raven’s Progressive MatriCES)么?上面这张图就是一道标准的瑞文氏...
日期:01-23
福利待遇越来越好的苹果,为何还会出现离职潮?
摘要: 苹果最近两年出现了小范围的离职潮,一方面因其组织扩大了3倍,离职人员数量增加是顺理成章...
日期:01-23
滴滴打车为什么越来越贵?
作为曾经的专车行业从业者,我认为造成现在这种状况的根本原因是滴滴的派单逻辑存在问题,导致其引...
日期:01-22
美媒:微信小程序正改变智能手机,挑战苹果iOS和安卓
美媒称,苹果公司的手机产品iPhone面临的最大的长期威胁不是安卓操作系统、三星公司或是中国的那些...
日期:01-22
为什么最强大脑们都输给了人工智能呢?
谁也没想到,在本周五(1月20日)《最强大脑》展开的第三次人机对决,会把“人类不敌机器”...
日期:01-22
韩媒:华为OPPO及vivo总销量超越苹果直逼三星
1月19日报道 韩媒称,去年,中国智能手机三大厂商销量首次超过美国苹果公...
日期:01-19
雷军的一千亿小目标能实现吗?
日前,雷军在小米的年会上表示,小米最坏的时候已经过去,2017年计划整体收入破千亿元。对于突破,...
日期:01-18
昏招迭出的苹果会成为下一个诺基亚吗?
当三星Note7炸了以后,苹果在高端手机市场最大的劲敌三星自折一臂,何况2016年的三星来势凶猛,挟S7...
日期:01-17
苹果做原创视频内容到底是不是太过勉强呢
国内用户对于这些内容有时候是连围观的机会都没有……
日期:01-17
我们何时才能开上智能汽车?
2016年,无人驾驶概念继续火热,特斯拉通过升级做得自动驾驶已经非常接近无人驾驶的概念,百度的无...
日期:01-16