百科问答小站 logo
百科问答小站 font logo



Facebook 的主要开发语言是什么? 第1页

  

user avatar   qin.chao 网友的相关建议: 
      

最近收到邀请,回答这个问题。

其实Facebook已经是10多年的公司了,技术方面以现在的视角看,略显陈旧,不建议现在的公司去刻意模仿他的技术栈(其开发工具和新的开源项目,还有里面的软件开发思想倒是很好的)。

我来说我一个我自己的版本:

主要的编程语言是php,里面有大量的fb后来开发的扩展库。也有转c和编译的hphp,再到后来的高性能vm。

现在fb开始越来越多地使用前端渲染和处理,大量使用js和后来新推出的react。思路就是将前后端尽量解除耦合,之间只交换数据(调rest api来取数据和扭转数据的状态)。

php的背后则是大量的java和c++的代码,来处理后端一些深层次的逻辑,比如 news feed ranking,antispam,推荐算法,ads ranking,messaging backend等等。他们游离在PHP的背后,是一个一个独立的service,通过thrift来和PHP以及他们互相间通信。

在移动端,刚开始是原生(那时只有原生)。2011年底开始浪,想用html5一统江湖,但是吃了巨大的苦果,于是后来又全部换回native。ios的用objc,android的用java,一部分不常用的功能保持在html页面。

最后自己的思考就是:

技术和创业公司是一轮接一轮向前发展的,长江后浪推前浪。现在的Facebook团队要是刚开始创业的话,按照peter thiel的说法,他们不会再做social network。那么我的补充就是,他们也不会使用当时的技术栈,而是用当前更为轻便的方案,比如: python+django,或者ruby on rails,或者是node.js etc,而后端服务亦或是驾于amazon web service之上,甚至是Google app engine或者parse上。




  

相关话题

  为什么国内创造不出很棒的编程语言? 
  一般编程的时候,使用汇编能比使用高级语言(比如C,C++,java等)有更高的运行效率吗?高能高出多少呢? 
  如何正确通过 C++ Primer 学习 C++? 
  如何看待 Facebook 发布财报后盘后暴跌超过 20%? 
  如果一门编程语言中不允许对象(或结构体)循环引用,那么用它实现什么功能会比较困难? 
  C++ 和 Java 同样是静态语言,为什么 Java 的代码提示可以做的十分强大? 
  毫无编程基础的小白准备学习C语言,用VC6还是VS2015? 
  自然语言中有哪些有趣的“语法糖”? 
  为什么主流的编程语言没有一个是中国人开发的? 
  将文件编译成某种代码,打印到A4纸上,这种想法是否可行? 

前一个讨论
从 Facebook、Google 等公司的美国总部跳槽到中国 BAT 公司是什么考虑和体验?
下一个讨论
程序员应该如何优雅地关闭电脑?





© 2024-12-18 - tinynew.org. All Rights Reserved.
© 2024-12-18 - tinynew.org. 保留所有权利