我们曾考虑使用Flex(尽管存在很多问题),作为避免使用不同语言的方法,但Adobe已经放弃了这个方案,从长远来看,这并不能完成任务。Java曾经承诺成为通用语言,但似乎苹果不再支持它作为分布式操作系统的一部分,据我所知,微软也从未支持过。我们不希望用户必须下载和安装某些东西才能使用我们的应用程序。
是否有解决方案?还是只能使用多种语言构建应用程序?
HTML+CSS+JavaScript!
在标准Web服务器上运行应用程序。以上所有内容都具有符合标准的Web浏览器,所有这些都支持JavaScript和AJAX。唯一真正变化的是屏幕大小,可以通过为每个目标浏览器使用自定义.css文件轻松处理。
您可以在服务器上托管Web应用程序,并使用应用程序浏览器与应用程序交互。
虽然不是本地应用程序,但所有设备都可以使用它。
缺点是需要服务器连接,不过这可能不是问题。
全球性语言最可能使用虚拟机,因此您无法避免“用户必须下载和安装某些东西才能使用应用程序”的问题......如果您不想处理编译成本机代码的语言的问题,那么我认为Java是您最好的选择。
"我不是很确定,但我听说Python是一种通用语言。我已经在Mac和Windows上尝试过了,对于其他平台我不太确定。
根据您的应用需求,有多种选择:
第一种,使用Web应用程序,与最大公约数相同 - 很小。
第二种,在C/C++中构建您的应用程序核心,并使用适合您需求的框架来创建接口。这些建议真的非常好。您甚至可以为每个平台单独开发界面,在Android中使用Java,在iOS中使用Objective C等。
请记住,永远不要指望在所有平台上运行相同的代码。即使是最简单的应用程序也会有一些部分需要使用#define MAC
或#define ANDROID
。完全相同的代码运行是不可能的。
除非是一个
void main(void){}
即使是Web应用程序也会有类似以下的代码:
if(browser()==Safari) {}
else {}
我认为答案取决于你要构建什么样的应用程序。
如果像 Twitter 那样,一个良好的 Web 接口是最好的选择。每个客户端只需要处理 GUI 工作,使用平台自己的语言和库。
如果是游戏,不需要与服务器通信。我更喜欢使用 C 和脚本语言 Lua 来构建应用程序的核心。
“有解决方案吗?或者我们必须使用多种语言来构建应用程序?”
没有解决方案。我们使用不同的编程语言是因为它们运行在不同的平台上。通用语言(如 HTML)有很多限制,因为为了成为通用语言,必须削减所有差异。这是所有平台的交集,非常非常小。
使用HTML和Javascript可能是最好的方法。另一个在这些平台上运行的选项是Java FX 2.0。