2009-05-01 6 views
8

私は移植用のJavaデータベース移行ツール(http://www.liquibase.org)を持っています。JVM/CLRソースと互換性のある言語オプション

少なくとも複雑な側面から見れば、「主キーを追加するとOracleがこのSQLを使用している場合」のような論理がありますが、データベースがMySQLの場合はこのSQLを使用します。 PostgresはこのSQLを使用しています。 "

Javaコードベースをフォークして(手動および/または自動)変換することはできますが、上記のロジックのアップデートやバグ修正が行われるため、両方のバージョンに適用する必要はありません。私がやりたいことは、すべてのロジックを、Javaと.Netの両方のバージョンで単純にコンパイルして使用できる形式にすることです。

私が変換しようとしているコードには、Javaから.Netに大幅に異なる高度なライブラリの使用法(JDBC、System.outなど)が含まれていないため、問題が発生するとは思われません。最悪の場合、それは周りに設計することができます)。

それでは、私が探していますは、次のとおりです。

  • 私は私のアプリの共通部分をコーディングし、ターゲットプラットフォーム
  • の「標準」の言語で使用可能なクラスにコンパイル可能な言語私はKN

システムへ
  • 何ものでそれが離れて怖がらせることを奇妙な潜在的な貢献者を任意のランタイム要件を追加しませんow PythonとRubyは両方ともJVMとCLRの実装を実装しています。彼らはどれくらい私の要求に合っていますか?クロスプラットフォームアプリケーションにこの技術を使用して成功した(または成功していない)人はいますか?私が心配する必要のある問題はありますか?

  • 答えて

    5

    Fantom programming languageをご覧ください。独自のJavaライクな/ C#のような構文を持ちますが、Java VMまたは.NET CLRのいずれかを対象とすることができます。

    ページの"Why Fantom"ページでは、移植性とVM上で実行される動的言語のアプローチの概要を説明します。

    +0

    私はファンが最善の選択肢だと思います。 JavaのJythonはしばらくの間は動作していないように見えますが、CLRのIronRubyはバージョン0.3にすぎません。私はこれが本当にやりたいことか、それともフォークをするのが簡単なのかを知るためにファンをもっと知る必要があります。 –

    +0

    Jythonの最新リリースは11月にリリースされましたが、これはかなり活発に思えますが、このケースではFantomの方が適していると私は同意します。 – Yishai

    1

    IKVM.NETを使用して運があるかもしれません。正確な状態はわかりませんが、.NET FrameworkでJavaコードを実行することを強く求めているなら、試してみる価値があります。これには、Javaベースクラスライブラリの.NET実装が含まれているため、合理的に完了しているようです。

    私が提案する唯一の他の選択肢は、J#言語、完全な.NET言語(ただし、C#またはVB.NETという意味ではファーストクラスではありません)にコードを移植することです。言語は、Javaとの違いが最小限になるように設計されています。

    +0

    私は両方のオプションを考えましたが、IKVMに関する私の懸念は依存関係を追加することであり、J#に関する私の懸念は.net開発者によって嘲られていました... –

    +0

    @Nathan:かなり理解できる...私はあなたが主流の技術の中でそれを望む方法で「理想的」な解決策を見つけるつもりはないと思います。ほとんどのプロジェクト保守担当者は、(おそらくほかの人の助けを借りて)コードベース全体を別の言語に移植して、すべてのポートでコードの変更/修正を並行して行います。私は個人的には、JVM/CLRバージョンに同じコードベースを使用しようとするよりも、より多くの問題にぶつかると思います。別のポートを維持する方がより努力されますが、それは私の心では価値があります。 – Noldorin

    0

    emdedded approachについて考えているなら、あなたはLuaを見るかもしれません。

    関連する問題