27

Clojureを発見した後、私はここ数日をそれに没頭して過ごしました。

どのプロジェクトタイプがClojureよりもJavaに、またはその逆に、そしてそれらの組み合わせに適していますか?

Clojureの前に試みたことのないプログラムの例は何ですか?

4

4 に答える 4

14

Clojure は並行プログラミングに適しています。ソフトウェア トランザクション メモリや可変参照など、スレッドを処理するための優れたツールを提供します。

Western Mass Developer's Group のデモとして、Rich Hickey は、各アリが独自のスレッドであり、すべての変数が不変であるアリのコロニー シミュレーションを作成しました。スレッド数が非常に多い場合でも、うまく機能しました。これは、Rich が素晴らしいプログラマーであるというだけでなく、コードを書いている間にロックを心配する必要がなかったからでもあります。アリのコロニーに関する彼のプレゼンテーションは、こちらでご覧いただけます。

于 2008-10-08T13:39:05.443 に答える
6

並行プログラミングを試すつもりなら、Java からすぐに使えるものよりも clojure の方がはるかに優れていると思います。このプレゼンテーションを見て、その理由を確認してください。

http://blip.tv/file/812787

Clojure を使った最初の 20 日間をブログに記録しました

http://loufranco.com/blog/files/category-20-days-of-clojure.html

SICP の講義から始めて、並列素数ふるいを作成しました。マクロも遊んでみました。

于 2008-10-08T13:40:47.340 に答える
4

Clojure を介して Java を使用する、またはその逆、または組み合わせて使用​​するのに適しているプロジェクトの種類は何ですか?

GUI 構築ツール (Netbeans の Matisse など) が必要なプロジェクトでは、Java がまだ必要な場合があります。Java で行われることはすべて、必要に応じてプロキシと gen-class を使用するか、必要に応じて Java にアクセスするだけで (.、doto、new など)、Clojure で非常に簡単に実行できます。これにより、Clojure プロジェクトで Java ライブラリやレガシー Java コードを簡単に使用できるようになります。

Clojure の前に試みたことのないプログラムはどれですか?

Clojure に出会う前は、JDBC を必要とし、サーブレット コンテナーで実行されるプロジェクトを考えていました。また、分析する必要のあるデータに対してどのメソッドが機能するかが明確ではなかったため、多くの反復開発を行うことを予想していました。Java が必要とするコンパイル - デバッグ - デプロイ - 検証のサイクルを行う時間や忍耐がなかったので、後回しにしました。私は今、Clojure でアプリケーションを作成しました。その場で簡単に変更を加えることができ、結果をすぐに調べることができることに非常に満足しています。ロックフリー プログラミングの喜びと、クラス階層を開発 (およびリファクタリング) する必要から解放されることは言うまでもありません。

- clojure@googlegroups.comメーリングリスト経由の「MikeM」

于 2008-10-10T07:08:11.970 に答える
2

Clojure よりも Java に向いているプロジェクト タイプ、Clojure から Java に向いているプロジェクト タイプ、および Java を組み合わせたプロジェクト タイプは何ですか?

Java と Clojure によって消費されるフレームワークを開発したい場合は、Clojure で記述するよりも Java で主な抽象化 (インターフェイスと基本クラス) を記述する方が望ましいことがわかりました (Clojuregen-classはやや退屈で、むしろ使用proxy)。

プログラムによる代替手段を提供せずにJavaアノテーションを多用するHibernateまたはその他のフレームワークのユーザーである場合、アノテーション付きPOJOをClojureのデータ構造でエミュレートするのは簡単ではないため、問題が発生する可能性があります。

それを除けば、Clojure が Java よりも適切でないユースケースを経験したことはありません。もちろん、静的型付けの喪失に対処する必要があります。これは、最初は多少当惑しますが、なくなる傾向があります。

于 2009-10-14T10:38:46.023 に答える