谷歌、脸书、亚马逊……这10大科技巨头都在使用Python

本文转载自公众号“读芯术”(ID:AI_Discovery)

十年前,由于编程语言种类匮乏,开发人员不必苦恼自己应该选择哪一种编程语言;但是现在,世界上正在使用的编程语言超过500种,随着人们的不断交流,还会有更多的语言出现。对于开发人员而言,基于项目的特点等因素确定应该使用哪一种编程语言成为了首要任务。

谷歌、脸书、亚马逊……这10大科技巨头都在使用Python

Python是一种通用编程语言,可用于开发web应用程序、人工智能、机器学习、操作系统、移动应用程序和视频游戏。

具备多功能性的Python是复杂web开发项目的理想解决方案:通过使用Python,开发人员能够用相对简单和容易的方式开发高级web应用程序。虽然HTML和JavaScript是构建前端或web浏览器的主要语言,但是开发人员可以使用基于Python的web框架(如Django)来简化后端流程。

本文将讨论Google、instagram或Netflix等技术巨头偏好使用Python开发关键基础设施的原因。

谷歌(Google)

在合并了Search、安卓、Youtube、Stadia等公司后,谷歌已经成为世界上比较大的科技公司之一。谷歌使用多种中央语言开发其技术栈,包括Python、Java和Golang。

由于Python的简单性和相对快速的维护,谷歌公司刚刚建立时就使用了Python,并且沿用至今:谷歌的搜索引擎、YouTube、机器学习、人工智能、机器人项目等都是用Python开发的。

尽管Google可能会在其基础设施中使用各种编程语言,但是Python作为其开发的核心语言的优先性地位却不会被动摇。

instagram

由于Python的易访问性和实用性,instagram目前正在使用Python编写的Django Web框架,这与他们“先做简单的事情”的公司理念非常吻合。在过去两年里,instagram的规模翻了一番,全球已有5亿用户,因此他们需要最大限度地提高平台的有效性,以保持其无缝扩展。

instagram承认他们想过改用Facebook的主要语言之一——PHP。但经过一番比较,他们承认,这两者没有显著的差异。考虑到每一个新版本都会变得更快,instagram同意使用Python这一快速发展的语言。

必须指出的是,instagram的开发团队花了十个月完成迁移过程,并将其分为以下几步:首先是修改代码,将不支持Python3的包替换为支持它的组件,其次是单元测试,最后是产品的最终发布。

Facebook

Facebook一直在使用Python,也因此,Python成为了社交媒体开发的第三大常用语言(前两种语言分别是C++以及他们专有的PHP语言HACK)。得益于简单易用的Python库,开发人员不必编写大量代码,而这使他们能够集中精力进行实时改进。此外,它还提供了高效的Facebook基础设施。

据Facebook称,其开发人员使用Python完成许多基础设施管理服务,其中包括使用TORconfig来处理网络交换机的设置和映像,将FBOSS运用于白盒交换器CLIs,以及使用Dapper来调度和执行维护工作。

Facebook已经启动了许多为Py3编写的开源Python项目,其中包括Facebook Ads API和Python Async IRC botframework。

Spotify

另一家将Python应用于后端服务和数据分析的优秀公司是Spotify。此外,Spotify还通过自行开发的消息传递协议将不同的服务连接起来。因此,其八成服务是基于Python的,而其余两成主要基于java,以及C语言或C++语言。

Spotify公司的首要任务是快速发展和增长,而这就是Spotify使用Python创建流媒体服务的原因——它基本上满足了Spotify对于开发速度的需求。

Gevent是一个能够高性能地同步应用程序接口的快速事件工具,而Spotify的新架构更新都是使用它完成的。Spotify使用与Hadoop同步的Python模块Luigi形成海量数据,以便为用户提供建议。

该开源项目管理着数据库协同工作、编译错误日志的方式,以便支持软件的重新发布和故障排除。Spotify通过Hadoop集群节点同时运行了6000多个Python进程。

Quora

Quora再三斟酌他们最终想要使用的语言。其创始人之一Charlie Cheever将选择范围缩小到Python、C#、Java和Scala。他们对Python的主要担忧是类型检查的缺失和相对缓慢的检查速度。最终,Quora的创建者延续了谷歌使用Python的决定,这使它更加易于编写和读取,并提升了C++对性能的增强。

许多如Django和Pylons般相当优秀的框架也是Quora公司考虑使用Python的一个重要因素。此外,Quora的开发团队还考虑到了Quora主要涉及客户机/服务器交互、不需要真正的页面加载,所以这对于Python和JS之间的良好协作是一大优势。

Amazon

Amazon是另一个使用Python语言的优秀公司。值得一提的是,在公司提出的众多技术解决方案中,亚马逊围绕建议(即推荐交易)开发了一些功能:例如,Amazon分析顾客的购物习惯和使用模式,并为他们提供准确的建议。这是通过Python学习引擎实现的,Python学习引擎与Hadoop数据库连接,因此,它们并行处理工作,以便尽可能高效和准确地提出建议。

Amazon团队之所以选择Python,首先是因为它的普及程度和它能够提供的海量大数据。其次,Python具有可扩展性和便携性,为Amazon提供了独特的商业计划。此外,Python实际上经常与其他技术(如Hadoop或Apache)配合使用。

Netflix

Netflix使用Python的方式与Spotify非常相似。Netflix的软件工程师能够自由选择编程语言,而这些工程师已经看到了使用Python编写应用程序的前景。此外,由于Python非常容易构建,它已经成为Netflix其他服务的重要组成部分。

Central AlertGateway是使用Python的重要部分之一。这个RESTful式的网络应用向可能想要查看它们的个人和团队发出警报。此外,该应用程序还可以删除已处理的重复警报,以及提供自动解决方案,如重新启动或结束不稳定的任务。由于警报的数量很多,这个应用程序的编写对Netflix来说是巨大的胜利——智能化的处理可确保开发人员和工程师不会因为冗余呼叫而焦头烂额。

Stripe

众所周知,Stripe是一家研究公司的在线支付可行性的金融科技初创公司。Stripe使用Python为移动应用和网站设计应用程序接口,得益于此,Stripe管理在线业务(例如开发票、管理订阅、预防欺诈)轻而易举。

业内的很多优秀公司(如Salesforce、Lyft、Amazon等)都采用了Stripe研发的在线支付,其价值高达90亿美元,而Python对于该平台的成功至关重要。

由于其在金融工作中的高效,许多金融科技初创公司选择了Python——它天生就适合与数据和计算相关的金融科技产品。此外,这背后的另一个原因是,Python是金融专家最容易学习的语言。

DropBox

Dropbox提供在线存储文件并将其同步到设备上的云存储服务,它在大部分服务和桌面客户端中使用Python。2012年,Python的创建者Guido van Rossum受邀加入Dropbox。在供职于Dropbox的第一年,他帮助Dropbox社区中的其他用户共享数据存储。

该公司还为开发者提供了可以整合到他们的Python应用程序中的Python软件开发工具包,加强了他们的归属感和价值感。Dropbox的开发人员也证实,他们使用Python完成大部分服务器端的编码。

尽管Dropbox的许多库和内部构件都是专有的,不是开源的,但Dropbox已经推出了一个非常强大的Python编码应用程序接口来展示软件工程师的思考方式。

Reddit

Reddit是一个社交新闻平台,人们能够通过Reddit讨论和表决其他人提交的内容。2017年,该网站每月访问量为5.42亿,是全球第四大访问量网站,也是美国第七大比较受欢迎的网站。在2015年,Reddit上共有73.15亿条内容和8.254兆次页面浏览量。而Python是所有这些软件背后的支柱。

Reddit最初是用Lisp编写的,但在2005年12月,也就是Reddit发布6个月后,他们发现Python有海量代码库并且在开发方面效率更高,于是转而使用Python。