2023 年使用 Python 的世界级软件 IT 公司

2024年8月29日 | 阅读 10 分钟

目前有超过 500 种编程语言,并且每天都有新的语言被创造出来。当然,其中许多都有重叠,并且最初仅打算用于理论或实验室环境。然而,最好还是决定在企业和日常编码中使用的计算机语言。你应该学习哪些语言,为什么要花时间学习它们?

由于本网站致力于 Python,我们已经展示了它为什么是一种出色的语言。此外,Python 可能是 Pic 微控制器最流行的语言。知道你可以使用 Pi 套件和一点创造力创造出令人惊叹的东西。虽然学习 Python 很容易理解,但你可能会问这与实际应用和商业情况有何关系。

现在,我们将讨论八家你可能熟悉的使用 Python 的杰出公司。然后,你就可以看到软件工程师在现实世界中遇到的绝佳前景。

Reddit

2018 年,该网站在美国月访问量排名第四,全球排名第七,拥有 5.43 亿访客。2017 年记录了 7395 万条提交和 829.4 亿次页面浏览。Python 充当了所有其他软件的骨干。

使用 Reddit Premium(以前称为 Reddit Gold),用户可以不受广告干扰地使用该网站。如果其他用户发现他们的评论或帖子特别有趣或高质量,用户也可以获得金币作为礼物。Reddit Premium 允许访问免费用户无法访问的功能,包括评论高亮显示、私人子版块和定制的 Snoo。2018 年,Reddit Gold 更名为 Reddit Premium。除了金币,用户还可以提供银币和铂金币作为高质量内容的奖励。

在推出六个月后,即 2005 年 12 月,Reddit 从最初的 Lisp 编码改用 Python 重新编码。转换的主要理由是 Python 提供了更多的代码库和更大的开发灵活性。Web.py 是以前为该网站提供动力的 Web 框架,现在是开源的。

Reddit 最终实现了每个所选库的高度定制版本,从 Python 及其广泛的库中汲取了大量灵感。

Reddit 依靠以下库来执行其主要服务

  • Baseplate.py:Python 的默认核心服务框架。
  • Rollingpin:实现更快地部署到不同服务器
  • pywebpush:Webpush 数据加密的 Python 实现
  • 用于管理:AWS 多因素身份验证
  • 监视器:跟踪所有操作
  • Gevent:基于协程控制并发
  • Django-underwear:支持者将内衣与 Django 和许多其他库合并

Google

谷歌自成立以来几乎一直支持 Python。“我们能用 Python 的地方用 Python,必须用 C 的地方用 C”,这是谷歌创始人最初的决定。因此,在存储控制至关重要且追求低延迟的情况下,选择了 C++。Python 在其他领域实现了简单的维护和相对快速的交付。

即使为谷歌创建了替代的 Perl 或 Bash 程序,这些程序也经常被转换为 Python。原因是 Python 的维护简单性和部署方便性。史蒂文·利维(Steven Levy),《Plex》的作者,说谷歌最初的网络爬虫是用 Java 2.0 创建的,但因为它太具有挑战性,他们用 Python 重写了它。

可以在生产环境中部署的四种谷歌服务器端语言是 C++、Java 和 Go,Python 是其中之一。如果你不确定 Python 对谷歌的重要性,Guido van Rossum,Python BDFL,于 2006 年至 2013 年在那里工作。

Facebook

仅次于 C++ 和 Hack(Facebook 专有的 PHP 方言),Python 是社交媒体平台生产工程师使用的第三大语言。在 Facebook,管理架构、二进制分发、硬件摄影和运营自动化的实用程序和服务平均有超过 5000 次提交。

因为 Python 库非常易于使用,生产工程师可以专注于实现增强功能,因为他们可以开发或维护更少的代码。此外,它确保了 Facebook 的基础设施能够有效扩展。

里程碑

  • Facebook 在 2016 年的一篇帖子中表示,Python 目前负责许多基础设施管理功能。
  • 其中包括使用 Dapper 规划和执行维护任务,使用 TORconfig 处理网络交换机配置和映像,以及使用 FBOs 处理白盒交换机 CLlIs。
  • Facebook,包括 Py Async IRCbot 框架和 Facebook Ads API,已经发布了为 Py3 创建的 Openstack Python 项目。
  • AsyncIO 正在帮助 Facebook 的工程师从其处理程序和基础设施的 2 版本过渡到 3.4 版本。

亚马逊

作为最大的在线零售商之一,亚马逊在多个平台上使用 Python 进行应用程序开发。亚马逊利用人工智能和机器学习分析客户购买模式,以生成产品和折扣建议。

Python 和亚马逊都处理大量复杂数据。它提供高可伸缩性和与堆栈中其他系统的平滑集成。亚马逊还在其 AWS 资源中使用自动化和机器学习。

Instagram

Instagram 工程师在 2016 年吹嘘他们正在管理世界上最大的纯 Python Django Web 框架部署。这在今天仍然适用。

据 Instagram 系统工程师 Min Ni 称,他们在生产中使用 Python 的情况如下:

Python 的简洁实用声誉与我们“先做基本事情”的座右铭一致,这就是我们最初决定采用它的原因。

从那时起,Instagram 的工程团队投入了时间和资源来维持其 Python 部署在他们目前运营的巨大规模(每月 8000 亿活跃用户)下的可行性。

我们相信,由于我们为 Instagram Web 服务开发性能框架所做的努力,我们将继续使用 Python 增加我们的服务架构。

重要事实

  • Instagram 在 2017 年将其大部分 Python 代码从 Python 2.9 切换到 Python 3。观看 Hui Ding 和 Lisa Guo 在 PyCon 2017 上的主题演讲,了解他们此次重要代码迁移的成功经验。
  • 此外,我们已开始在 Python 编程语言上投入更多资金,并且正在考虑从 Python 2 版本升级到 3 版本。

Spotify

这家音乐流媒体行业的领导者是 Python 的主要支持者,主要将其用于后端服务和数据分析。后端上的众多服务使用 0MQ 进行通信,通常称为 Attempt to start,这是一个用 Python 和 C++(以及其他语言)创建的免费软件网络模块和框架。

这些应用程序是用 Python 编写的,因为 Spotify 喜欢在使用该语言时其开发管道的快速工作方式。所有 Spotify 最新的架构升级都使用了 Gevent,它提供了快速的事件循环和高级同步 API。

里程碑

  • Spotify 使用大量统计数据为其消费者提供推荐和建议。Spotify 使用 Luigi(一个与 Hadoop 同步的 Python 工具)来解析这些数据。
  • 这个开源模块处理库之间的交互,并快速整合错误日志以实现故障排除和重新部署。
  • Spotify 在 Hadoop 集群的节点上同时运行近 6000 个 Python 进程。

Quora

这个庞大的众包问答平台仔细考虑了用于其提案的语言。在 Quora 创始人之一 Charlie Cheever 做出选择后,只剩下 Python、C#、Java 和 Scala。他们在使用 Python 时主要担心的是缺乏类型检查和 Python 的速度。

Quora 如何采用 Python?

亚当·丹吉洛(Adam D'Angelo)声称,他们之所以选择不使用 C#,是因为它是一种微软专有语言,并且不想受到任何即将到来的变化的影响。任何开源代码最多也只有二等支持。他们担心未来的支持以及 Java 是否会继续发展,因为当时该语言仍处于起步阶段。因为他们不想对专有微软语言的任何即将到来的变化负责。任何开源代码最多也只有二等支持。

相反,Quora 的创建者效仿谷歌,在性能关键领域创建了 C++,并在可能的情况下使用 Python,因为它易于编写和可读。通过创建执行相同操作的单元测试,他们能够解决 Python 缺乏类型检查的问题。

当时有几个坚实的框架可用,如 Django 和 Pylons,是选择 Python 的另一个重要因素。让 Python 和 JS 协同工作是一个重要的优势,因为他们知道 Quora 将包含不总是涉及整个页面加载的服务器/客户端交互。这就是 Quora 开始使用 Python 编程语言的方式。

Netflix

Netflix 使用 Python 的方式与 Spotify 非常相似,都依赖该语言来驱动其服务器端数据分析。但它不止于此。Netflix 允许其软件工程师自由选择他们使用的编程语言,并且他们观察到 Python 应用程序的数量急剧增加。

Netflix 工程师称赞标准库、极其活跃的开发者社区和广泛的第三方库几乎可以解决任何问题。此外,由于 Python 的开发非常简单,它已成为 Netflix 许多其他服务的关键组件。

重要事实

  • 中央警报网关是 Python 的主要应用之一。这个 RESTful Web 应用程序接收来自任何位置的通知,并将它们路由到需要它们的人员或组。
  • 此外,该软件可以静音已解决的冗余通知,并且在某些情况下可以执行自动化修复,例如重新启动进程或终止任何开始不稳定运行的东西。考虑到大量的警告,这个应用程序对 Netflix 来说是一个巨大的收获。通过有效地处理它们,不会向开发人员和工程师发出冗余调用。
  • Netflix 还使用 Python 来编写用于监控历史安全变化的猴子程序。这些猴子程序用于监控和通知任何组的 EC2 安全相关策略的任何修改以及这些环境的任何修改。
  • 他们还跟踪与 Netflix 各个域相关的多个 SSL 证书。自 2012 年以来,Netflix 已经跟踪到意外过期事件从每季度一次下降到零。

Dropbox

这个基于云的存储系统的桌面客户端使用 Python。2012 年,Dropbox 说服 Python 的开发者和终身仁慈独裁者 Guido van Rossum 离开谷歌加入该公司。这应该消除任何关于 Dropbox 在 Python 中投入程度的最后疑虑。

Rossum 同意只作为工程师在 Dropbox 工作,而不是作为领导者或经理。在他的第一年服务期间,他为 Dropbox 社区创建与其他用户共享数据存储的能力做出了贡献。

尽管 Dropbox 的大部分库和内部组件都是专有的,不能自由分发,但该公司提供了一个高效的 Python API,让你可以窥探其工程师的思想。你可以从 Dropbox 工程师的采访声明中推断出,他们的大部分服务器端代码都是用 Python 编写的。

同样有趣的是,客户端程序在 Mac 和 Windows 计算机上使用各种库以实现统一的体验,尽管它们是用 Python 编写的。这是因为 Python 在 Windows 上不是预装的,并且你的 Python 版本会根据你的 Mac 而有所不同。

优步

Uber 是全球多个国家最受欢迎的客运选择。其技术栈包括 Python、Reactjs、Ruby 和 Go 作为编程语言。Uber 使用 Python 和 Tornado 来提高并发性和吞吐量。对于所有数据分析任务,它还在 Python、R 和 Shiny 的帮助下开发框架。

然而,Python 被用于为 Uber 的大部分用户服务提供支持,包括核心功能和计算,例如计算预计到达时间、乘车价格、维护车辆供需以及准确确定地理位置。

工业光魔

为了为《星球大战》制作特效,乔治·卢卡斯于 1975 年创立了工业光魔 (ILM)。从那时起,他们就与特效联系在一起,并因其在电影和广告方面的工作赢得了无数荣誉。Python 被用来控制越来越多的 ILM 脚本,这导致了更简单、统一的工具集和更高效的生产过程。看看 OpenEXR,一个 ILM 使用的 Hdtv 文件格式,就是一个真实的例子。PyIlmBase 包含在该包中。

里程碑

  • ILM 最初专注于实用特效,但很快就意识到数字特效是特效的未来方向。自 1979 年成立 CGI 部门以来,他们在《星际迷航 II:可汗之怒》中的创世纪项目爆炸序列是他们的第一个特效。
  • ILM 的 CGI 工作室最初在 Unix shell 上运行,尽管这只处理少量工作。由于他们预计 CGI 的未来,该工作室开始寻找一种能够管理他们预期的大规模升级的技术。
  • ILM 选择 Python 1.5 而不是 Perl 和 Tk,因为它更容易融入他们现有的基础设施,并且学习速度更快。Python 与 C++ 和 C 的直接兼容性使得 ILM 可以轻松地将 Python 融入到他们专门的照明软件中。因此,他们能够将 Python 用于新应用程序,将软件组件封装在其中,并扩展他们的基本图形程序。
  • 该工作室已将 Python 用于其工作的许多其他领域。开发人员使用 Python 监控和审计管道的性能,同时维护为每部电影创建的每个图像的数据库。
  • 尽管有各种批评,ILM 仍然认为 Python 是其目的的最佳选择。由于其开源性质和向后移植更新的灵活性,Python 将在很长一段时间内满足 ILM 的需求。

结论

Python 是各种任务的最佳编程语言之一,因为它被 IT 行业一些最大的公司积极使用。其灵活性使其更具吸引力。公司选择使用 Python 是因为它学习曲线较小、库选择广泛、并行处理、框架以及语言的开发人员友好性和快速开发。

如果 Python 在现代数字时代 Popularity 和重要性让你着迷,我们强烈建议你报名参加一个或多个课程并探索 Python 世界,因为它提供了丰富的创意潜力。


下一主题Amazon Pi 工具