使用Adobe Air / Java编写Web应用程序而不是平台特定语言的优缺点?

我需要为windows和mac编写一个Web应用程序(也可以脱机工作)(也许也可以是linux)。

我想知道我是否应该使用像air / flash / java这样的东西,优点是我只需要编写一次应用程序。

但是,我想知道这样做是否有任何缺点,而不是用c#专门用于windows,然后用Objective-C / cocoa /为mac编写。 如果我在Air / Java中这样做,应用程序的function是否会受到限制? 使用特定于平台的语言编写它有什么好处吗?

如果可能的话,很高兴知道这两种方法的优点/缺点是什么,因为它可以帮助我(并希望其他人)根据需要决定创建这样一个应用程序的最佳方法。

任何帮助将非常感激! 谢谢。

首先要意识到的是,在每个目标平台上编写看起来和行为原生的跨平台应用程序是一项艰巨的任务。

使用跨平台工具包(AIR / java):

  • 减少工作量,理论上应该更快地建立
  • 通用语言和工具包,只需要学习一件事
  • 添加新的支持平台应该很容易(ish),构建安装程序,调试提供任何本机平台集成等
  • 存在仅实现最小公分母特征的趋势。 这方面的一个例子是java File api。 它只支持文件的基本概念,其中Windows,OSX和Linux都有添加
  • 可能仍需要特定于平台的集成代码(可能是本机代码)才能获得可接受的集成级别。

使用本机工具包:

  • 要学习很多东西,在Windows MFC(或.Net winforms)和Cococa之间移动将会非常激动人心
  • 您不仅可以使用不同的语言,还可以使用不同的工具
  • 使用本机工具包可以实现的任何内容都没有限制或错误上限
  • 让你的应用看起来像它在平台上(对于Mac来说很重要)几乎是开箱即用的

个人推荐:使用您最熟悉的语言工具包,具体取决于您的应用程序的厚度(您在网上提到它的部分),一旦您成功申请,您可以用另一种语言重写它。

很大程度上取决于您将要编写的应用程序类型。 我将Adobe AIR用于许多内部工具。

如果你为AIR写作,你会得到的东西就像一个网页。 这很好,因为人们觉得在家里操作浏览器界面 – 可能在家里比在本机应用程序更多。

但是,是的,你绝对有局限性。

那么你的应用是什么?