• Arthur

8家使用Python的世界一流软件公司

更新日期:5月 2




Python代写|CS代写|留学生程序代写



当前有超过500种编程语言,每天都有更多的语言在编写。诚然,这些重叠中的大多数和大量绝不打算在理论或实验室环境之外使用。但是对于日常编码和业务中使用的编程语言,您必须做出选择。您应该学习哪种语言,为什么还要花时间学习呢?


您可能已经知道Python可能是Raspberry Pi首选的语言(因为大多数语言都预装了它)。知道了这一点,您知道使用Pi工具包可以做些什么奇妙的事情。虽然很容易看到如何修改Python,但您可能想知道这如何转换为实际的业务和实际应用程序。


我们现在要做的是告诉您大约八家使用Python的顶级公司。这样,您就可以了解Python开发人员在现实世界中有哪些巨大的机会。


工业光魔

工业光魔(ILM)是由乔治·卢卡斯(George Lucas)于1975年创立的特殊效果强国,旨在为《星球大战》制作FX 。从那时起,他们已成为FX的代名词,因其在电影和广告中的工作而获得了多个奖项。

在早期,ILM专注于实际效果,但很快意识到,计算机生成的效果通常是FX的未来。他们的CGI部门成立于1979年,其第一个影响力是《星际迷航II:汗的愤怒》中创世纪计划的爆炸序列。

最初,ILM的CGI工作室使用的是Unix shell,但这仅处理了相对较少的工作。因为工作室预见了CGI的未来,所以他们开始寻找一种可以处理他们将来看到的大规模升级的系统。

ILM选择使用Python 1.4而不是Perl和Tcl,选择使用Python,因为它可以更快地集成到其现有基础架构中。由于Python与C和C ++的轻松互操作性,因此ILM很容易将Python导入其专有的照明软件中。这样一来,他们可以将Python放在更多的地方,用它包装软件组件并扩展其标准图形应用程序。

该工作室在其工作的其他多个方面都使用了Python。开发人员使用Python跟踪和审核流水线功能,维护为每部电影制作的每个图像的数据库。随着越来越多的ILM程序受Python控制,它创建了一个更简单的统一工具集,从而可以更有效地进行生产。举一个真实的例子,ILM使用HD文件格式OpenEXR。作为该软件包的一部分,包含了PyIlmBase(尽管它确实具有Boost依赖项)。

尽管进行了许多评论,但ILM仍然发现Python是满足其需求的最佳解决方案。开源代码与反向移植更改的能力的结合确保了Python将长期满足ILM的需求。


谷歌

Google从一开始就一直是Python的支持者。最初,Google的创始人做出了“ Python在我们可以的地方,C ++在我们必须的地方” 的决定。这意味着必须在必须进行内存控制且需要低延迟的地方使用C ++。在其他方面,启用了Python可简化维护并加快交付速度。

即使使用Perl或Bash为Google编写了其他脚本,这些脚本也经常被重新编码为Python。原因是因为易于部署以及维护Python多么简单。实际上,根据“ In Plex”一书的作者史蒂文·列维Steven Levy)的说法,谷歌的第一个网络爬行蜘蛛最初是用Java 1.0编写的,因此很难将其重写为Python。

现在,Python是正式的Google服务器端语言之一,另外三种是C ++,Java和Go,可以将其部署到生产环境中。如果您不太确定Python对Google的重要性,那么Python自己的BDFL Guido van Rossum于2005年至2012年在Google工作。

最重要的是,Peter Norvig说:

“ Python从一开始就一直是Google的重要组成部分,并且随着系统的发展和发展而一直存在。如今,数十名Google工程师正在使用Python,我们正在寻找更多使用这种语言的人。”


脸书

Facebook生产工程师非常热衷于Python,使其成为社交媒体巨头中第三流行的语言(仅次于C ++及其专有的PHP方言Hack)。平均而言,Facebook上有超过5,000项对实用程序和服务的承诺,用于管理基础架构,二进制分发,硬件映像和操作自动化。

易于使用的Python库意味着生产工程师不必编写或维护过多的代码,而使他们可以专注于不断改进。它还确保了Facebook的基础架构能够有效扩展。

根据Facebook 2016年的一篇文章,Python当前负责基础架构管理中的多种服务。其中包括使用TORconfig来处理网络交换机的设置和映像,使用FBOSS来处理白盒交换机的CLI,以及使用Dapper来安排和执行维护工作。

Facebook已经发布了许多为Py3编写的开源Python项目,包括Facebook Ads APIPython Async IRCbot框架。Facebook当前正在将其基础结构和处理程序从2升级到3.4,AsyncIO正在帮助其工程师。


Instagram

2016年,Instagram工程团队吹嘘他们正在运行世界上最大的Django Web框架部署,该框架完全用Python编写。今天这可能仍然适用。Instagram的软件工程师Min Ni谈到了他们在Python中的生产使用情况:

“我们最初选择使用Python是因为它在简单性和实用性方面享有盛誉,这与我们“先做简单的事情”的理念非常吻合。”

从那以后,Instagram的工程团队投入了时间和资源,以确保其Python部署在以下规模的大规模规模(每月活跃用户约8亿)中可行。

“通过我们为建立Instagram网络服务效率框架所做的工作,我们有信心将继续使用Python扩展服务基础架构。我们还开始对Python语言本身进行更多投资,并开始探索将我们的Python从版本2升级到版本3。”

在2017年,Instagram将其大部分Python代码库从Python 2.7迁移到了Python 3。您可以观看Lisa Guo和Hui Ding进行的PyCon 2017主题演讲,并了解他们在大规模代码迁移中的经验:


Spotify

这家音乐流媒体巨头是Python巨大支持者,该语言主要用于数据分析和后端服务。在后端,有大量服务都通过0MQ或ZeroMQ进行通信,ZeroMQ是一种用Python和C ++(以及其他语言)编写的开源网络库和框架。

之所以用Python编写服务,是因为Spotify喜欢用Python编写和编码时开发管道的速度。Spotify架构的最新更新都使用了gevent,它提供了带有高级同步API的快速事件循环。

为了向用户提供建议和建议,Spotify依赖大量分析。为了解释这些,Spotify利用了Luigi(一个与Hadoop同步的Python模块)。这个开源模块处理库如何一起工作,并快速合并错误日志以允许进行故障排除和重新部署。

总共,Spotify使用了超过6000个单独的Python进程,这些进程在Hadoop集群的节点上协同工作。


Quora

这个庞大的众包问答平台对他们想用什么语言来实现他们的想法进行了长时间的思考。Quora的创始人之一Charlie Cheever的选择范围仅限于Python,C#,Java和Scala。他们使用Python进行程序时最大的问题是缺乏类型检查及其相对缓慢。

根据Adam D'Angelo的说法,他们决定不使用C#,因为它是一种专有的Microsoft语言,并且他们不希望看到将来提出的任何更改。此外,任何开放源代码最多都具有二等支持。

与Python相比,Java编写起来更痛苦,并且在非Java程序中的效果不如Python。当时,Java还处于起步阶段,因此他们担心将来的支持以及该语言是否会继续增长。

取而代之的是,Quora的创始人从Google那里带走了领导者,由于其易于编写和可读性,选择在可能的地方使用Python,并为性能关键的部分实现了C ++。他们通过编写可以完成相同任务的单元测试来解决Python缺乏类型检查的问题。

使用Python的另一个关键考虑因素是当时存在多个良好的框架,包括Django和Pylons。另外,由于他们知道Quora将涉及服务器/客户端交互,而不一定是整个页面加载,因此让Python和JS一起玩得很好是一个巨大的优势。


Netflix

Netflix以与Spotify非常相似的方式使用Python,依靠该语言在服务器端支持其数据分析。但是,它不仅止于此。Netflix允许其软件工程师选择使用哪种语言编写代码,并且注意到Python应用程序的数量激增。

接受调查时,Netflix的工程师引用了标准库,极为活跃的开发社区以及可用于解决几乎任何给定问题的各种第三方库。此外,由于Python非常易于开发,因此它已成为Netflix其他许多服务的关键。

使用Python的主要地方之一是中央警报网关。此RESTful Web应用程序可从任何地方处理警报,然后将其路由到需要查看警报的人员或组。此外,该应用程序还具有抑制已处理的重复警报的功能,并且在某些情况下,可以执行自动化的解决方案,例如重新启动进程或终止看起来有些不稳定的事情。考虑到警报的数量庞大,该应用程序对于Netflix是一个巨大的胜利。智能处理它们意味着开发人员和工程师不会被多余的电话淹没。

Netflix在Python中使用的另一个领域是用于跟踪安全性更改和历史记录的猴子应用程序。这些猴子用于跟踪和警告任何组中与EC2安全相关的策略的任何更改,从而跟踪这些环境中的任何更改。它们还用于确保跟踪附加到Netflix多个域的数十个SSL证书。在跟踪方面,自2012年以来,Netflix的意外过期次数从四分之一下降到了零。



Dropbox

这个基于云的存储系统在其桌面客户端中使用Python。如果您对Dropbox在Python方面的投入有任何疑问,可以考虑一下2012年,他们设法说服了Python的创造者和人生的独裁者Guido van Rossum,将其从Google转移到Dropbox领域。

Rossum加入Dropbox的条件是他将是一名工程师,而不是主管甚至经理。在第一年,他能够帮助实现与Dropbox社区内其他用户共享数据存储的功能。

虽然Dropbox的许多库和内部组件都是专有的而不是开源的,但该公司已发布了一个高效的 Python编码API,可让您了解其工程师的想法。当您阅读有关Dropbox工程师的采访时,也可以在两行之间阅读,其中涉及他们的服务器端代码中有很大一部分是Python。

有趣的是,尽管客户端程序是用Python编码的,但它们却同时利用了Mac和Windows计算机上的各种库来提供统一的体验。这是因为Windows尚未预装Python,并且取决于您的Mac,您的Python版本会有所不同。

Reddit

该网站在2017年期间每月有5.42亿访问者,使其成为美国第四大访问量网站和世界第七大访问量网站。2015年,提交的文档数量为7315万,页面访问量为825.4亿。一切背后,构成软件主干的是Python。

Reddit最初是用Lisp编码的,但在启动后六个月的2005年12月,该站点被重新编码为Python。进行此更改的主要原因是Python具有更广泛的代码库,并且在开发方面更具灵活性。最初运行站点web.py的Web框架现在是一个开源项目。

在2009年的一次采访中,史蒂夫·霍夫曼(Steve Huffman)和亚历克西斯·奥哈尼安(Alexis Ohanian)在Pycon上被问到为什么Reddit仍在使用Python作为其框架。根据霍夫曼的说法,第一个原因与变更的原因相同:

“这里有一个图书馆供您使用。我们一直在学习许多这些技术和许多体系结构。因此,当我不了解连接池时,我可以找到一个库,直到自己对它有所了解并编写自己的库为止。不了解Web框架,因此我们将使用别人的框架,直到我们自己制造……Python确实有这样的拐杖。”

Reddit坚持使用Python的第二个原因是在使用它进行构建的所有公司中都有一个通用线程。根据霍夫曼的说法,这是代码的可读性:

“当我们雇用新员工时……我认为我们还没有雇用过认识Python的员工。我只是说,“您编写的所有内容都必须使用Python。” 只是为了我可以阅读。太棒了,因为我可以从整个房间看他们的屏幕,看看他们的代码是好是坏。因为好的Python代码具有非常明显的结构。 这使我的生活变得更加轻松。[…]它极富表现力,可读性和可写性。这样就可以使生活更加顺畅”

更新:是的,现在有9家世界一流的公司在生产中使用Python。最初,我们不单独计算Instagram,因为该公司归Facebook所有。但是鉴于Instagram团队的规模令人印象深刻,我们认为给他们单独的提示是有意义的。


还有谁?

在这篇文章中,我们研究了在生产中使用Python的八家世界一流的成功软件公司。但是它们并不是唯一的。截至2018年,Python的采用率达到了一个新的高峰,并继续攀升。

我们错过了这个名单中的任何一个吗?在下面发表评论,让我们知道您最喜欢的使用Python的公司!

17 次瀏覽