我听说Google使用Python,Java和C ++。但是我不知道如何使用每种编程语言。我的意思是Google使用了Python,Java和C ++。当一种语言足够时,为什么他们要使用多达3种编程语言。有人知道吗
我听说Google使用Python,Java和C ++。但是我不知道如何使用每种编程语言。我的意思是Google使用了Python,Java和C ++。当一种语言足够时,为什么他们要使用多达3种编程语言。有人知道吗
Answers:
正确的答案是“ 因为不同的语言具有不同的优势 ”。但是,让我提供更多有关原因的详细信息:
C ++
C ++的主要优点是速度最快。没有必要,因为Java和Python是缓慢的,但由于在C ++中,你有更多的控制权有关如何事情得到执行。
例如,如果您编写的Web服务前端需要少于30ms的延迟,则可以调整C ++代码以实现该性能。在Java之类的托管语言中,要使GC完美协作会有些困难。
C ++用于很多“ Google魔术”,例如BigTable,MapReduce和search goo。
爪哇
对于大多数标准应用程序,Java是一种非常好的语言。它具有出色的工具,大量现有的库,并且无需花费大量时间进行调试。
Java被用于许多较大的网站,这些网站将很难以较低级别的语言(例如C或C ++)进行维护。例如,我的理解是GMail是用Java编写的。
另外,请注意,您可以使用Google的Web工具包将Java代码编译为JavaScript。因此,您看到的超赞网页或窗口小部件可能已经开始作为Java类出现。
蟒蛇
Python是一种出色的通用语言,但没有Java那样提供细粒度的控制。(例如,对于事物,有各种各样疯狂的JVM参数-python提供类似的配置吗?)
但是,Python非常适合简单的网站和应用程序,否则它们将是可怕的shell脚本。例如,如果您想编写一个简单的测试用例以从某些来源收集数据,进行处理,然后将其上传到App Engine Python,将是一个不错的选择。(但是,如果您需要在1000台计算机上分配该处理,也许可以使用其他语言...)
的JavaScript
显然,Google使用了大量JavaScript。但是,在Google上编写的JavaScript的类型与您在野外看到的不同。Google开发了一种优化的JavaScript编译器,可让您在注释中构造注释,以换取更好的优化和静态检查。请参阅Google关闭。
语言无关紧要(互操作)
Google不只使用一种语言的另一个原因是它不需要。几乎每种现代编程语言都具有调用外部库的功能,这些库可以用其他语言编写。(请参阅swig。)
另外,由于App Engine运行JVM,所以您可以运行任何编译为Java字节码的语言。(在Google中,我们主要遵循此处提到的语言,但这不是硬性要求。)如果要在App Engine上使用Closure,Groovy或Scala,并且要包含正确的JAR文件,则所有内容都应该可以使用。
开源
此外,Google尽可能使用并为许多开源做出贡献。这些项目通常是用上述一种语言编写的,并要求在Google中“使用”。
最重要的是两件事:
1 language is enough
也许一种语言足以完成许多不同的任务,但是不同的语言具有不同的优势,劣势和能力。
由于google最有可能针对大量不同的情况进行编程,因此这是一门适合上课的马,这是工作的最佳工具。
使用Python作为其支持网站,您可以看到此页面是由python脚本生成的,它们将Java库用于Web应用程序,因此在App Engine中具有GWT和Java支持
我认为他们将C ++用于Google Earth或一般用于桌面应用程序
他们也编写本机Mac和iPhone应用程序,它们都在Objective-C中。他们这样做的原因很简单:API在Objective-C中。