您的位置:首页>>媒体评论

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,本站编译。




关注ITBear科技资讯公众号(itbear365 ),每天推送你感兴趣的科技内容。

特别提醒:本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。


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

本文评论
美图牵手小米之后,手机业务将轻资产化运作
2018年11月19日,美图公司与小米集团宣布达成战略合作伙伴关系,联合推出更加强大的美图手机及智能...
日期:11-20
智能手机市场增长停滞,下半场拼什么?
经历了十多个年头的快速增长后,如今智能手机市场的增速发生了变化,先是2017年的增长放缓,到了201...
日期:11-15
5G或不会很快到来
(原标题:美国运营商:5G手机可能不会很快亮相)
  最近有报告指出,第一款 5G iPhone 可能会...
日期:11-15
外媒:被库克批评后 扎克伯格要求Facebook高管都用安卓手机
11月15日消息,据国外媒体报道,Facebook首席执行官扎克伯格(Mark Zuckerberg)已下令其高管团队只能...
日期:11-15
中国半导体崛起的野心与坎坷
近期半导体行业有两个大新闻。
  一个是美国制裁了中国三大存储器项目之一的福建晋华,一个...
日期:11-14
折叠屏手机太新是噱头?这件事比全面屏做的时间还要长
把大屏幕像书本一样折叠起来揣进裤兜,这件事已经不再只存在于科幻作品中。
日期:11-14
谈阿里云与天猫双11这十年
2009年,发生了两件看似不起眼的事。
  初春刚过,阿里云在北京一栋没有暖气的写字楼写下了...
日期:11-13
今年苹果新品迄今最贵  未来将成“可买得到的奢侈品”
在9月和10月两场最主要的发布会之后,今年苹果的新产品发布基本上已经告一段落。我们看到了2018年全...
日期:11-13
回顾手机发展史发现  电池是拖后腿存在
手机功能是越来越多了,人们也对手机的需求越来越大,手机续航一直以来都是大家关注的问题,毕竟谁...
日期:11-12
智能机的十年进化路
(原标题:从电话到智能机 这十年发生了什么?)
  2007 年,当乔布斯在舞台上发布第一代 iPhon...
日期:11-07
外媒:苹果的 MacBook 产品线有点乱
外媒 engadget 报道称,苹果目前的 MacBook 产品线有些混乱,用户在购买时可能会无从下手。
日期:11-05
智能手机电池之衰
市面上多数手机厂商都表示自家手机正常使用一天无压力,一天一充即可。但结果真如他们所说吗?
日期:11-05
从台前到幕后 浅谈滑盖全面屏专利之争
如果说17年的手机还是被各种异形全面屏这种“伪 全面屏”占领,那么“真 全面屏&rdq...
日期:11-04
智能手机或许非诺基亚最佳战场,功能手机才是出路?
情怀是对过去最好的肯定。
  情怀是一种高尚的心境、情趣和胸怀,随着时代的发展,情怀的定...
日期:11-04
魅族 Note 8 上手谈:仍属良品  但千元机的时代已逝
今年 5 月魅族内部经历了又一次架构调整,魅族、魅蓝两个品牌合并,于是这部原本应该取名魅蓝的机子...
日期:11-02