2013-03-10 7 views
6

私はこれがSOの話題ではないことを望みます(私はSOとプログラマーの間で躊躇しました)。しかし、これは"プログラミングの専門家に固有の実用的で問題のある問題"です。 FAQに準拠しています。Java 1.5に対するClojureの依存関係のみ?

Clojureのどのバージョン(JVM上のClojure、この質問はClojureScriptに関するものではありません)を実行するために必要なJVMのバージョンは?ここ

ページ:

Clojureのが唯一のJava 1.5以上

が必要です。しかし、これは常にそうなるだろう:http://clojure.org/getting_startedは、と述べていますか?

そして、LeiningenのようなClojureエコシステムはどうですか?

基本的に私はClojureを使って、OS Xシステムなどのシステムで動作するデスクトップアプリケーションを開発することができますか?Java 6以降のJava (例えば、いくつかのOS Xのバージョンでは、JVM 6が光を見ないとAppleは述べていた)。

答えて

5

私はClojure/coreチームにいませんので、私は内部情報を持っていませんが、ここで私はこの状況にどう対処しますか。

Clojureの最新バージョン(この記事の執筆時点では1.5)を使用し、を実行する必要があることをJava 1.5でテストしてください。 Clojure 1.5がJava 1.5と互換性がある場合、そのリリースは不変なので、常にそうです。

私はではなく、です.1.5以降のすべてのClojureバージョンはJava 1.5と互換性があり、Clojureライブラリは確実に想定できません。たとえば、Java 1.7が必要なClojureライブラリをリリースしました(Java 1.7で導入されたjava.util.concurrentクラスを使用しているため)。

すべてのライブラリと選択したバージョンのClojureをJava 1.5に対してテストして動作させると、Leiningenはあなたにmavenのような依存関係の解決を与えるので、保存したい限り、バージョン管理された依存関係のセットを使うことができますアプリが実行中です。この時点での唯一のリスクは、非コアライブラリのバグ修正リリースが、もはやJava 1.5と互換性がない可能性があるということです()。このリスクは、使用する必要のある非コアClojureライブラリの数に比例します。

3

あなたが使用するライブラリを選択している場合、はJava 1.5をターゲットにしています。

  • ClojureはJavaバージョンの要件について非常に控えめです。したがって、バージョン1.5のみに依存します。
  • 多くのライブラリはClojure自体にのみ依存しているため、1.5JVMでかなり楽しく動作します。
  • ライブラリが1.5より大きい必要があります。これらは、特定のJava機能(例:新しい並行性コード)。

:私は1.6以上であることが合理的な最小およびJavaベースのシステムの大半だと思うので、私は個人的に、Javaの1.6をターゲットにすべての私のアプリケーション/ライブラリを書きます。私は1.5に固執している少数のユーザーの潜在的な損失を生きて喜んでいる。また、Clojureの将来のバージョンが1.5を放棄しても、私は長い間Java 1.6のサポートを継続する予定です。

+0

もう一度私を助けてくれてありがとう。私は古いOS Xユーザーを放棄するかもしれませんが、私はそれについてまだ分かりません。何故なら、私は1.5で動かされたこれらの少数のユーザーのためにうまく動作するJavaデスクトップアプリケーションを持っています。そして、私の特定のドメインでそれらをサポートする1​​つのアプリケーションがまだあることが気に入っています。ある意味では、コードベースの一部をClojureに移行することを検討しているため、サポートを停止するのは悲しいことです。だから私はそれを試して、1.5に固執してClojureでできること(そしてできないこと)を見てみましょう。 –

0

注目すべきは、Clojureの1.6で、彼らは1.6へのJavaのバージョンをぶつけてきた。だから、 CLJ-1268: Require Java 1.6 as minimum for Clojure

、 "はノー" 元のポスターの答えです:

Clojure 1.6 Release Notes はこのチケットを含めます「しかし、ClojureはJava 1.5以上しか必要としません」という問題は常に起こりますか?

関連する問題