it-swarm.cn

Google的编程语言用法

我听说Google使用Python,Java和C++。但是我不知道如何使用每种编程语言。我的意思是什么是Python,Java和C++用于Google。为什么在一种语言就够了的情况下,他们却最多使用三种编程语言?

29
Joshua Partogi

正确答案“ 因为不同的语言具有不同的优势”已经被阐明。但是,让我提供更多有关原因的详细信息:

C++

C++的主要优点是速度最快。没必要,因为Java和Python速度很慢,但是因为在C++中,您具有更多控制权关于如何 =事情得到执行。

例如,如果您编写的Web服务前端需要少于30ms的延迟,则可以调整C++代码以实现该性能。在Java)这样的托管语言中,要使GC完美协作会有些困难。

C++用于很多“ Google魔术”,例如BigTable,MapReduce和Search Goo。

Java

对于大多数标准应用程序,Java是一种非常好的语言。它具有出色的工具,大量现有的库,并且没有花费很多时间进行调试。

Java被用于许多较大的网站,这些网站将很难以较低级别的语言(例如C或C++)进行维护。例如,我的理解是GMail是用Java编写的。

另外,请注意,您可以使用Google的Web工具包将Java代码编译为JavaScript。这样,您看到的真棒网页或小部件可能会以Java类。

Python

Python是一种出色的通用语言,但没有Java那样提供细粒度的控制。 (例如,对于事物而言,有各种各样疯狂的JVM参数-python提供类似的配置吗?)

但是,使用Python)非常适合简单的网站和应用程序,否则它们将成为可怕的Shell脚本。例如,如果您想编写一个简单的测试用例以从某些来源收集数据,请对其进行处理,并将它们上传到App Engine Python是一个不错的选择。(但是,如果您需要在1000台计算机上分配该处理,也许可以使用其他语言...)

JavaScript

显然,Google使用了大量JavaScript。但是,在Google上编写的JavaScript的类型与您在野外看到的不同。 Google开发了优化的JavaScript编译器,使您可以在注释中构造注释,以换取更好的优化和静态检查。请参阅 Google关闭

语言无关紧要(interop)

Google不使用仅一种语言的另一个原因是它不需要。几乎每种现代编程语言都具有调用外部库的功能,这些库可以用其他语言编写。 (请参阅 swig 。)

另外,由于App Engine运行JVM,因此您可以运行任何编译为Java字节码的语言。)(在Google,我们主要坚持此处提到的语言,但这并不是硬性要求。 )如果您要在App Engine上使用Closure,Groovy或Scala=,如果您包含了正确的JAR文件,那么一切都应该可以使用。

开源

此外,Google尽可能使用并为许多开源做出贡献。这些项目通常是用上述一种语言编写的,并要求在Google中“使用”。

最重要的是两件事:

  • 每种编程语言都有自己的优势。不根据情况利用这些优势将是可耻的。
  • 互操作性工具箱和兼容的运行时的可用意味着在同一个运行时环境中使用多种语言会更轻松。
97
Chris Smith
1 language is enough

也许一种语言足以完成许多不同的任务,但是不同的语言具有不同的优势,劣势和能​​力。

由于google最有可能针对大量不同的情况进行编程,因此这是一门马术课程,是完成工作的最佳工具。

17
StuperUser

这三种语言用于不同的目的。

Python可能用于编写自动化脚本。
C++,用于实现复杂算法。(索引器,爬网程序,Map-Reduce,大表)
用于Web服务,Web应用程序等的Java。

这些只是我的假设。

9
Sorantis

Python用于其支持网站,您可以看到 此页面 是由python脚本生成的,它们使用Java库对于Web应用程序,因此GWT和Java应用程序引擎中的支持

我认为他们在Google Earth或一般桌面应用程序中使用C++

3
Mahmoud Hossam

只有您所做的每个项目都是特定种类的,“一种语言就足够”才是正确的。对于某些项目,甚至C++ Java和Python)都不是最好的工具。此外,只懂一种语言是可怜的程序员的一大特色。

2
Eldritch Conundrum

他们也编写本机Mac和iPhone应用程序,它们都在Objective-C中。他们这样做的原因很简单:API在Objective-C中。

0
user4051