Google 大量使用 Python,这只是口味问题还是给他们带来了竞争优势?
最佳答案
我真的无法给出明确的答案,因为到 2004 年我在 Google 接受采访时,Python 已经在 Google 很突出。
确实,我绝对可以否认有一个明显吸引人的解释:并不是说 Google 使用 Python 是因为它雇佣了这么多杰出的 Pythonista ——而是,大多数“杰出的 Pythonista”谷歌员工加入了 Google,至少部分是因为我们知道关于 Python 在那里的突出地位(可能的异常(exception)包括 Peter Norvig 和 Jeremy Hylton,但从历史上看,Google 对 Python 的选择甚至早于他们)。
这绝对是我第一次感兴趣的原因(我的出版商让我知道 Google 正在购买大量我的书 - 起初,我认为这是一个出售我的自由咨询服务的好机会。 .;-),我后来是如何说服 Guido 加入我们的,而且我相信,这也是 Greg Stein、Wesley Chun、Fredrik Lundh、Thomas Wouters、Collin Winters、Jeffrey Yasskin 等 Pythonistas 的部分动机。 .
我相信,这一切都开始了,因为最早的 Google 员工(Sergey、Larry、Craig 等)做出了一个很好的工程决策:“我们可以使用 Python,必须使用 C++”——他们使用 (a C++ 的子集用于软件堆栈中非常低的延迟和/或对内存的严格控制至关重要的部分,以及 Python,允许更快速地交付和维护程序,用于其他部分。在 90 年代后期,后者角色的选择基本上是在 Python 和 Perl 之间:其他脚本语言要么不成熟(例如,我认为 Ruby 还没有出现),要么有其他问题和限制。 Perl 更成熟(尤其是在其通过 CPAN 提供的可用插件的生态系统方面),但 Python 被认为更具可读性和可维护性,并且与 C++ 库的接口(interface)(通过 SWIG)更容易。
Java 出现的时间较晚,涵盖了一个中间分割市场——当然,最近还开发了 Go(尽管我不相信它还有很多生产工作,因为它仍在发展和成熟)。一些专门的语言,例如 sawzall也可以用于非常具体的任务,当然 Javascript 对于浏览器端的工作非常重要。
其他语言,包括 Greg 在 06 年提到的语言,要么是“偶然的”,要么是用于其他特定任务(例如,用于 iPhone 或 Mac 上的客户的 Objective C)——例如,当 Google 雇用它时首先是系统管理员,这些员工不可避免地会非常精通 Perl 和 Bash,并且经常使用这两种语言中的任何一种来开发一些复杂的内部系统;用 Python 重新编码(为了更容易部署和可维护性)经常发生。其他的(例如 C#)可能由于收购而暂时处于混合状态,但同样,用“主要 Google 语言”之一重新编码始终是一个相当高的优先级(在 C# 的情况下,重新编码通常主要使用 Java,因为这两种语言在抽象级别上处理相似的领域)。
https://stackoverflow.com/questions/2560310/