有通用语言吗?

时间:2011-12-08 05:13:21

标签: java ios windows macos flex

我们正在设计一款可在Windows,OSX,iOS和Androids上运行的应用。至少让大部分代码都用一种语言,而不是必须使用Objective C用于Apple版本,C#或C ++用于Windows,以及Java用于Android。

我们正在考虑将Flex(及其所有问题)作为一种避免为每个版本使用不同语言的方法,但是Adobe已经抛弃了,从长远来看,这是不可能的。 Java曾经承诺是通用的,但看起来Apple不再支持它作为分布式操作系统的一部分,据我所知,微软从未支持它。我们不希望我们的用户必须下载和安装某些内容,以便他们可以使用我们的应用程序。

有解决方案吗?或者我们是否坚持用多种语言构建应用程序?

9 个答案:

答案 0 :(得分:16)

HTML + css + JavaScript!

在标准网络服务器上运行您的应用。以上所有都具有符合标准的Web浏览器,所有这些都支持JavaScript和AJAX。唯一真正变化的是屏幕大小,这可以通过为每个目标浏览器使用自定义.css文件轻松处理。

答案 1 :(得分:8)

您可以在服务器上托管Web应用程序,并使用应用程序浏览器与应用程序进行交互。

虽然不是本机应用程序,但所有设备都可以使用它。

缺点是需要服务器连接,但这可能不是问题。

答案 2 :(得分:6)

“全球”语言最有可能使用虚拟机,因此您无法逃避“用户必须下载并安装某些内容才能使用该应用程序”......我认为Java是您最好的选择如果你不想处理编译成本机代码的语言问题。

答案 3 :(得分:4)

可以在所有这些平台上使用C#:

(如果您曾经想为Windows Phone 7编写应用程序,那么您也可以。)

当然,UI部分必须在不同平台之间发生显着变化,我怀疑它是否会特别无缝,但至少值得考虑。

答案 4 :(得分:2)

我不太确定,但我听说过python是一种通用语言。我用mac和windows试过这个,不确定其他的plactforms

答案 5 :(得分:2)

我相信C ++代码可以在所有这些平台上运行:Windows完全支持它; Android有NDK;你可以在iOS上使用Objective-C ++(我也假设OSX!)。

我不会声称这是最好的选择,但我认为值得一提。

最终,很大程度上取决于您正在开发的应用程序的性质。如果它是一个大型应用程序,我强烈建议与在该领域有经验的人进行一些详细的咨询:由于不同平台的变幻莫测,这是一个经验非常重要的领域。

答案 6 :(得分:2)

根据您的应用要求,有多种选择:

首先,Web应用程序,正如之前所说的那样。它与最大公约数相同 - 非常小

第二使用c / c ++构建应用程序的核心,并为界面使用符合您需求的框架。这些suggestions真的很棒。您甚至可以为每个平台单独开发界面,包括Android for Java,Objective C for iOS等等。

不要忘记,永远不会,您将能够在所有平台上运行相同的代码。 #define MAC#define ANDROID总会有部分内容。即使对于最简单的应用程序,也无法运行相同的代码。

除非是

void main(void){}

即使是网络应用也会有像

这样的代码
if(browser()==Safari) {}
else {}

答案 7 :(得分:1)

我认为答案取决于您要构建的应用程序类型。

如果它像twitter一样,那么一个好的网络界面就是答案。每个客户端只需要使用平台自己的语言和库来处理GUI工作。

如果是游戏,则不与服务器通信。我更喜欢C和像Lua这样的脚本来构建应用程序的核心。

“有解决方案吗?还是我们坚持用多种语言构建应用程序?”

不,没有解决方案。我们使用不同的语言因为它们在不同的平台上运行通用语言,例如HTML,有很多限制,因为要普及,你必须削减所有的差异。它是所有平台的交集,非常小。

答案 8 :(得分:1)

使用HTML和Javascript可能是最好的方法。在这些平台上运行的另一个选项是Java FX 2.0。