在为多个平台开发应用程序时使用什么语言?

时间:2009-12-31 16:36:06

标签: cross-platform

我刚刚抓住了Google的一个Chrome商业广告,最后他们提到它可以在Linux,Mac和PC上运行。所以我开始想知道他们如何开发一个可以在多个平台上运行的程序?我有Java和.Net的经验,但仅限于Windows机器。 Java在设计上是可移植的,但我不认为谷歌正在使用Java来实现性能如此受关注的Chrome。

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

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

Python / Perl等脚本语言也是不错的选择。还有一件事,Java比你想象的要快 - 参见Eclipse。即使没有JNI技术,Java仍然适用于大多数应用程序,如JDownloader。

答案 3 :(得分:0)

Google必须为每个操作系统构建不同的发行版(即根据Francis的答案解释为每个平台编译) - 实际上Mac OS版本最近才可用 - Windows版本已经存在了很长时间。

Google Apps是“精简应用程序” - 在他们的服务器上完成了笨拙的工作。

应用程序是可移植的,因为前端使用HTML,CSS和Javascript放在一起 - 这是所有浏览器的标准(至少在理论上)。

Google投入了大量精力来构建Chrome的Javascript引擎以确保其性能 - 确保快速运行任何客户端逻辑。

答案 4 :(得分:0)

任何合理标准化和流行的语言都可以,因为目标是在所有平台上编译它,而不是创建一个可在Windows,MacOSX,Linux和z / OS上运行的二进制文件。 C和C ++是很受欢迎的选择,因为它们几乎可以随时使用。 Java是一个不错的选择,因为它几乎可以运行。对于性能要求低的应用程序,Perl和Python都很好。

重要的是要分离出与平台无关的内容,因为(除了Java或脚本语言),可能有必要为每个平台重写特定于平台的内容,而不是必须使用相同的语言。 MacOSX最好用Objective-C编程,对于其他流行的平台来说都是如此。