Java 有通用语言吗?

Java 有通用语言吗?,java,ios,windows,macos,apache-flex,Java,Ios,Windows,Macos,Apache Flex,我们正在设计一款可以在Windows、OSX、iOS和Androids上运行的应用程序。这将是非常好的,至少有一个单一的语言,而不是必须使用苹果版本的C,C或C++的Windows,java和Android的大多数代码。 我们曾将Flex(及其所有问题)视为一种避免在每个版本中使用不同语言的方法,但Adobe已经认输了,从长远来看,这不会起到作用。Java曾经承诺是通用的,但看起来苹果不再支持它作为分布式操作系统的一部分,据我所知,微软从未支持过它。我们不希望我们的用户不得不下载和安装一些东西,

我们正在设计一款可以在Windows、OSX、iOS和Androids上运行的应用程序。这将是非常好的,至少有一个单一的语言,而不是必须使用苹果版本的C,C或C++的Windows,java和Android的大多数代码。 我们曾将Flex(及其所有问题)视为一种避免在每个版本中使用不同语言的方法,但Adobe已经认输了,从长远来看,这不会起到作用。Java曾经承诺是通用的,但看起来苹果不再支持它作为分布式操作系统的一部分,据我所知,微软从未支持过它。我们不希望我们的用户不得不下载和安装一些东西,这样他们就可以使用我们的应用程序


有解决办法吗?还是我们一直在用多种语言构建应用程序?

您可以在服务器上托管一个web应用程序,并使用应用程序浏览器与应用程序交互

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


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

HTML+css+JavaScript

在标准web服务器上运行应用程序。以上所有浏览器都支持标准兼容的web浏览器,以上所有浏览器都支持JavaScript和AJAX。唯一真正不同的是屏幕大小,这可以通过为每个目标浏览器使用自定义的.css文件轻松解决。

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

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

  • Windows上的“普通”.NET
  • 关于OSX
  • 安卓上
  • 对于iOS
(如果你曾经想为WindowsPhone7编写一个应用程序,你在那里也会很好。)


当然,UI部分必须在不同平台之间进行重大更改,我怀疑它是否特别无缝,但至少值得考虑。

我不是很确定,但我听说python是一种通用语言。我在mac和windows上都试过,但对其他plactforms不太确定。我想答案取决于你要构建什么样的应用程序

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

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

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


不,没有解决办法。我们使用不同的语言,因为它们运行在不同的平台上。通用语言(如HTML)有很多限制,因为要实现通用性,必须消除所有差异。它是所有平台的交集,非常小。

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

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

我不想说这是最好的选择,但我觉得这值得一提


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

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

正如许多人之前所说,首先是Web应用程序。它与最大公约数相同——非常小

Second用c/c++构建应用程序的核心,并为接口使用适合您需要的框架。这些真的,真的很棒。您甚至可以分别为每个平台开发接口,如Java for Android、Objective C for iOS等

不要忘记,永远不要让相同的代码在所有平台上运行。总是会有一些部分带有
#define MAC
#define ANDROID
。即使是最简单的应用程序,也不可能运行相同的代码

除非是一个

void main(void){}
即使是一个web应用程序也会有这样的代码

if(browser()==Safari) {}
else {}

大多数平台上都有通用语言的编译器。更大的问题是跨平台框架。需要注意的是,它不是什么语言,而是编译器编译成什么。从逻辑上讲,问题应该是,是否有一个通用的编译器,可以将{put language here}编译成任何东西。除了iOS以外的所有东西的java都是一个简单的解决方案,尽管每个平台的GUI都不同。我投票赞成这个答案,但是考虑通过浏览器嗅探来定位设备功能以服务CSSWE需要有一个下载的实际应用程序。我们可能会按照您的建议在大部分实际功能方面进行操作,但我们仍然需要一个看起来不像另一个供人们下载的浏览器的应用程序。您可以将您的应用程序嵌入“Jetty”web服务器。好的,这正是我所想的。我猜在Windows上安装Java运行时会遇到很大的阻力。据我所知,Lion for Mac的一切都是Java,但我认为iOS没有。当然,在Android上这将是一个扣篮。顺便说一句,我没有想到罗素说了什么。。。但实际上,我在几周前遇到了一个名为mosync()的SDK。他们说,你可以编写HTML5/CSS3/JavaScript和C++代码,并将它们编译成本地应用程序(每个平台生成一个不同的文件扩展名,如安卓ID.APK,Windows .exe等)。你可以试试。。。我没用