JVM/CLR 源兼容语言选项
-
03-07-2019 - |
题
我有一个开源的Java数据库迁移工具(http://www.liquibase.org)我正在考虑将其移植到.Net。
该工具的大部分(至少从复杂性方面来看)都是围绕这样的逻辑:“如果您要添加主键并且数据库是 Oracle,则使用此 SQL。如果数据库是 MySQL,则使用此 SQL。如果主键已命名并且数据库是 Postgres,则使用此 SQL”。
我可以分叉 Java 代码库并隐藏它(手动和/或自动),但随着对上述逻辑的更新和错误修复,我不想将其应用于两个版本。我想做的是将所有逻辑转移到一种可以由 Java 和 .Net 版本编译和使用的形式。
我想要转换的代码不包含任何高级库的使用(JDBC、System.out 等),这些库的使用从 Java 到 .Net 会有很大差异,所以我认为这不会是一个问题(最坏的情况下可能是围绕)设计。
所以我正在寻找的是:
- 我可以使用一种语言对应用程序的公共部分进行编码,并将其编译成目标平台上“标准”语言可以使用的类
- 不向系统添加任何运行时要求
- 没有什么 所以 奇怪的是它吓跑了潜在的贡献者
我知道 Python 和 Ruby 都有 JVM 和 CLR 的实现。它们有多符合我的要求?有人成功(或不成功)地将这种技术用于跨平台应用程序吗?有什么我需要担心的问题吗?
解决方案
查看 Fantom 编程语言. 。它有自己的类 Java/类 C# 语法,但可以针对 Java VM 或 .NET CLR。
他们的 《为什么是幻影》 页面高度概述了他们的可移植性方法与在虚拟机上运行的动态语言的比较。
不隶属于 StackOverflow