用于JVM和JavaScript的无头单源库

时间:2017-04-12 13:18:12

标签: javascript android scala kotlin scala.js

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

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

我不用担心学习一门新语言,但集成应该是流畅的(即使用标准Java接口和Java类型创建一个.jar,为JavaScript / TypeScript创建一个没有数百KB运行时的.js文件)。 / p>

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

它适用于 Kotlin 吗?

你们有没有人成功地完成了同样的任务?有什么警告?

1 个答案:

答案 0 :(得分:2)

嗯,现在Scala / Scala.js的基础非常正常 - 许多库交叉编译而没有任何变化。 Scala.js编译器经过高度优化,只包含实际调用的代码,因此输出相当精简。 (除非你需要庞大的外部依赖,但SJS编译器无法做太多。)

如果您需要以不同方式处理它们,那么管理依赖性差异将是一些额外的努力。对于Scala / Scala.js来说,这并不是特别不寻常,但确实需要为此构建项目。 documentation of CrossProject了解详情。

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