【问题标题】:Best language for cross-platform logic engine?跨平台逻辑引擎的最佳语言?
【发布时间】:2012-06-20 04:07:40
【问题描述】:

我需要为应用程序编写逻辑引擎。从本质上讲,这个东西将在一个 XML 文件中输入一堆数据,然后处理这些数据并生成一个 XML 文件作为结果。

诀窍在于,该引擎需要在服务器上运行(可能是 Windows,也可能作为后台服务),并且需要在移动设备(主要是 iOS 和 Android)上运行。

逻辑并不是那么困难或复杂。在移动设备上,这个想法是让研究人员快速而肮脏地访问引擎,以获取非常小的数据集。服务器“版本”将执行完全相同的工作,但在庞大的数据集上执行。

GUI 将从这个逻辑引擎中抽象出来。

我应该指出,“移动版本”应该能够离线工作——这意味着无论我选择在其中实现这个逻辑引擎,它都需要在设备上本地运行。也就是说,它可以在本地存储的文件中在移动设备的本地 Web 浏览器中运行,这完全没问题。例如,我最初为此考虑使用 JavaScript - 除了我认为没有办法让 JavaScript 在服务器端的多线程服务中运行。

是否有一种语言可以做到这一点?平台之间的重新编码最少?

【问题讨论】:

  • 业务逻辑引擎,还是其他类型的逻辑引擎?

标签: cross-platform


【解决方案1】:

您可以使用Rhino 从 Java 服务器/servlet 内部执行 JavaScript。我不确定引擎的并行/线程化程度。您还可以考虑托管Google V8,这可能会具有更高的性能/更具可扩展性。

【讨论】:

    【解决方案2】:

    我不认为你可以用一种语言完成所有这些(你可能可以,但它不会很漂亮)。

    【讨论】:

    • 是的,我有点担心,这就是为什么我问 - 看看我是否忽略了某些东西。由于 JavaScript 是唯一通用的“客户端”语言,我正在考虑在服务器端执行它的选项。甚至在必要时使用(不寒而栗)经典的 Active Server Pages。
    • 哈哈哈......好吧,我希望它不会变成那样,但希望你能用尽可能少的语言完成你的项目:)
    • 从 Java 执行 JavaScript 绝对是可能的。
    【解决方案3】:

    Java(或其他 JVM 语言,如 Scala、Clojure 或 Groovy)是您能做的最接近的:它是允许编译代码在最大范围的平台上不加改变地运行的单一平台。

    但是我不确定 iOS 上的 Java 支持有多好 - 这可能是一个棘手的问题。但这无论如何都会成为一个问题:Apple 似乎并不特别热衷于鼓励他们自己的工具以外的任何东西。

    也许最好的策略是用 Java 编写(这将涵盖您的服务器和 95% 的客户端平台),然后有一个小的客户端部分,您可以快速移植到 iOS 等特殊情况。

    【讨论】:

    • 遗憾的是,iOS 不包含 Safari 之外的真正 JVM。这有点归结为普通的旧 C。
    • 我认为ios上的safari没有jvm
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多