JVM和JavaScript的无头单源库

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

该lib将处理与很多数字的对象列表,并且必须计算统计数据和过滤/操纵列表。 没有火箭科学,可以为每个环境弥补依赖关系。 没有十进制算术的问题。 (=>这些库可以在TypeScript和Java中开发,但是没有人愿意维护2个语义上相同的数据源。)

我不害怕学习一种新的语言,但整合应该是平滑的(即用标准的Java接口和Javatypes创建一个.jar文件,而没有数百KB的JavaScript / TypeScript文件的.js文件)。

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

它会和Kotlin一起工作吗?

你们有没有人成功地完成了平等的任务? 什么是警告?

那么现在Scala / Scala.js的基础是非常正常的 – 许多库在不改变的情况下交叉编译。 Scala.js编译器是高度优化的,只包含实际调用的代码,所以输出是合理的。 (除非你需要庞大的外部依赖,SJS编译器不能做太多的工作。)

如果你需要在两方面进行不同的处理,管理依赖性差异将是一些额外的工作。 对于Scala / Scala.js来说,这并不是非常不寻常的,但是确实需要这个项目的结构。 CrossProject的文档进入细节。

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