2009-12-31 30 views
3

我刚刚发现了一个Google的Chrome广告,最后他们提到它可以在Linux,Mac和PC上运行。所以我开始想知道他们如何能够开发一个可以在多种平台上运行的程序?我有Java和.Net的经验,但只能在Windows机器上使用。 Java在设计上是可移植的,但我不认为Google正在使用Java来处理像Chrome那样的性能问题。为多平台开发应用程序时使用什么语言?

我知道每个版本都会有一些特定于平台的代码,比如用于UI的代码。但是也必须有一些中央代码在每个平台上重复使用。这是写在什么语言?

+0

Chrome的没写上,但Qt的符合这些标准http://qt.nokia.com/products – 2009-12-31 17:31:40

回答

0

任何合理的规范和通俗的语言会做,因为我们的目标是编译它在所有平台上,而不是建立一个二进制文件,将在Windows,MacOSX上,Linux和z/OS的工作。 C和C++是流行的选择,因为它们几乎可以与任何东西一起工作。 Java是一个很好的选择,因为它几乎可以运行所有东西。对于性能要求较低的应用程序,Perl和Python很好。

重要的一点是要区分什么是平台依赖,哪些不是,因为(除了Java或脚本语言的情况),可能需要为每个平台重写特定于平台的内容,并且不一定使用相同的语言。 MacOSX最好在Objective-C中编程,对于其他流行的平台来说也是如此。

2

Chrome是用C++编写的,因此它们将为每个操作系统提供大量的平台特定代码。他们很可能为每个操作系统维护一个单独的分支。

+0

最有可能他们都在同一个分支,只是用不同的编译标志为每个平台。或者至少,这是它在大多数C++项目上的工作方式。保持独立的分支可能是一个巨大的痛苦。 – 2009-12-31 17:12:43

3

Here是关于Chrome的发展一整篇文章。它主要是用C++编写的。

0

这些程序应该是可移植的源代码级别,而不是二进制级别。所以你只需要将它编译为不同的平台,而不是制作一个通用二进制文件所必需的。实际上,大多数语言都支持包括UNIX/Windows/Mac在内的所有现代平台,因此您可以从几乎所有现代的蓝球中进行选择,C/C++被许多人所喜欢。顺便说一句,C++是Chrome的语言。

像Python/Perl这样的脚本语言也是不错的选择。还有一件事,Java可以比你想象的更快 - 参见Eclipse。即使没有JNI技术,对于大多数应用程序(如JDownloader),Java仍然足够好。

+2

如果你认为Eclipse很快,那么你的预期会很低。 – 2009-12-31 16:51:04

+0

它可能不如完全优化的本地程序,但它比JBuilder或Beans等传统的Java GUI更好更快。 事实上,我认为这对于常见的使用来说已经够用了。 – Francis 2010-01-02 03:53:09

0

谷歌必须建立不同的分布为每个操作系统(即编译为每个平台弗朗西斯的回答解释了) - 事实上,Mac OS版本最近才面世 - Windows版本已经有更长的时间。

谷歌应用程序是'瘦应用程序' - 咕噜工作是在他们的服务器上完成的。

的应用程序是在这个意义上,前端放在一起使用HTML,CSS和Javascript便携 - 这是标准的(至少在理论上)在所有浏览器。

谷歌投入了大量的精力投入到建设的Chrome的JavaScript引擎是高性能 - 确保快速运行任何客户端逻辑。

相关问题