【问题标题】:Headless single-source library for JVM and JavaScript用于 JVM 和 JavaScript 的无头单源库
【发布时间】:2017-04-12 21:38:44
【问题描述】:

我需要编写一个可以编译为 Java 类(更具体地说:Android)和 JavaScript 或 TypeScript(现代浏览器和 Node.js)的库)。

该库将处理具有大量数字的对象列表,并且必须计算统计信息并过滤/操作列表。没有火箭科学,可以为每个环境桥接依赖关系。十进制算术没有问题。 (=> 库可以用 TypeScript 和 Java 开发,但没有人愿意维护 2 个语义相同的源。)

我不害怕学习一门新语言,但集成应该是顺畅的(即创建一个具有标准 Java 接口和 Java 类型的 .jar 和一个用于 JavaScript/TypeScript 的 .js 文件,而不需要数百千字节的运行时间)。

我可以为此选择 Scala/Scala.js 吗?

它可以与 Kotlin 一起使用吗?

你们中有人成功地完成了同样的任务吗?有什么注意事项?

【问题讨论】:

    标签: javascript android scala kotlin scala.js


    【解决方案1】:

    嗯,现在 Scala/Scala.js 的基础很正常——许多库可以交叉编译而没有任何变化。 Scala.js 编译器经过高度优化,仅包含实际调用的代码,因此输出相当精简。 (除非您需要庞大的外部依赖项,而 SJS 编译器对此无能为力。)

    如果您需要在两侧以不同的方式处理依赖项差异,则管理依赖项差异将是一些额外的工作。这对于 Scala/Scala.js 来说并不少见,但确实需要为此构建项目。 documentation of CrossProject 详细介绍。

    但总的来说——是的,在这一点上这一切都相当普遍......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      相关资源
      最近更新 更多