Meta软件工程经理EricGarcia在7月27日发布的一篇博文中介绍了Meta服务器端使用的编程语言有哪些,以及内部对于编程语言的采用是如何考虑的 。“在Meta内部,我们会在各种各样的平台和使用案例上用到很多不同的编程语言
Meta 软件工程经理 Eric Garcia 在 7 月 27 日发布的一篇博文中介绍了 Meta 服务器端使用的编程语言有哪些,以及内部对于编程语言的采用是如何考虑的 。
“在 Meta 内部,我们会在各种各样的平台和使用案例上用到很多不同的编程语言 。支持一种新的语言并不是一个轻易就能做出的决定 。”Eric 说道,“每当我们评估一种语言时,我们都要做大量的工作 。一旦我们做出要采用某项语言的决定,就会坚持下去,因此我们需要从一开始就深思熟虑,为我们的工程师提供最好的工具 。”
那么,一旦 Meta 决定支持、采用某个编程语言,这意味着什么?
- 如果一种语言被支持,开发人员就可以在代码编辑、调试、构建和部署,以及核心库和互操作性方面获得良好的体验 。并且开发人员不会被要求放弃这些受支持的语言,可以一直在这上面深耕 。在大多数情况下,Meta 会建议新项目和服务选用受支持的语言 。
- 对 Meta 来说,全力支持一门语言是一项重大投资,所以对于那些依赖社区支持的“长尾”语言,Meta 的建议是避免在新的应用中使用它们 。除非团队已经在该语言上有了非常大的投资 。否则,采用这些语言的团队就不承担起维护的负担 。
- 对性能敏感的后端服务,鼓励使用 C++ 以及 Rust 。
- 对于 CLI 工具,推荐 Rust 。这是今年才有的一个新建议 。
- 对于业务逻辑和相对无状态的应用程序,Hack 生态系统在 Meta 内部拥有最高水平的自动化和最大力度支持,也是内部推荐的语言 。
- 【meta是以什么为核心编制而成 meta的使用】对于数据科学、机器学习应用和 Instagram,Python 仍然是首选语言 。对
- 于特定用例,Meta 会支持其他语言,包括 Java、Erlang、Haskell 和 Go 。不过这些语言目前在特定用例之外尚没有得到 Meta 的广泛支持 。
Eric 强调,他们一般不轻易在这份名单中增加新的语言,因为在 Meta 内部,要规模支持一种编程语言需要大量的工程投资,而且这个成本是很广泛的 -- 不仅仅是由其用户承担 。他举了几个例子:
- 对核心库的支持 。独立的服务很少,因此拥有的语言越少,核心库的负担就越小 。
- 安全和隐私 。分散的堆栈加大了在服务中建立安全和隐私功能的复杂性 。
- 运营风险 。如果某些服务遇到严重问题,则需要立即援助 。Meta 在诊断和解决生产问题方面已经积累了大量的专业知识,其事件响应依赖于通过阅读、理解和调试服务以便在重大事件中提供帮助 。避免碎片化可以降低运营风险 。
推荐阅读
- 汉字演变的过程顺序是什么样的 汉字演变的过程顺序正确的是
- 我在等没等到的回头是什么歌
- 北京除了故宫还有哪些名胜古迹 长城故宫都是我国的名胜古迹
- 初等教育发展对我的影响 初等教育的发展受到社会因素的阶段性影响是怎样的趋势
- 脖子腋下为什么会长小肉粒 脖子和腋下长小肉粒是什么
- 塞维利亚是西班牙的首都吗
- 10kb的照片长宽是多少
- 香菜是喜阴还是喜阳
- 盈这个字第一画的名称是什么
- 羡慕的反义词是什么