JavaからClojureに移行するにはどうすればよいですか?
-
05-07-2019 - |
質問
Clojure を発見した後、ここ数日間、それに没頭して過ごしました。
Clojureを介してJavaに適しているプロジェクトの種類、またはその逆、および組み合わせ
Clojureの前に試したことがないプログラムの例は何ですか?
解決
Clojureは、同時プログラミングに適しています。ソフトウェアトランザクションメモリや可変参照などのスレッドを処理するためのすばらしいツールを提供します。
Western Mass Developer's Groupのデモとして、Rich Hickeyは、各アリが独自のスレッドであり、すべての変数が不変であるアリのコロニーシミュレーションを行いました。スレッドの数が非常に多い場合でも、うまくいきました。これは、Richが素晴らしいプログラマーだからであるだけでなく、コードの作成中にロックについて心配する必要もなかったからです。彼のアリのコロニーに関するプレゼンテーションはこちらをご覧ください。
他のヒント
コンカレントプログラミングを試す場合、clojureはJavaからすぐに使用できるものよりもはるかに優れていると思います。このプレゼンテーションを見て理由を確認してください:
ブログでClojureを使用して最初の20日間を記録しました
http://loufranco.com/blog/files /category-20-days-of-clojure.html
SICP講義から始めて、並列素数ふるいを作成しました。マクロもいじくりました。
Clojure経由でJavaを使用するのに適しているプロジェクトの種類、その逆 その逆、または組み合わせ?
GUI構築ツールを使用するプロジェクト (NetbeansのMatisseなど)は 必要なのは、Javaが まだ必要です。でやったこと JavaはClojureでかなり行うことができます プロキシとgen-classを使用すると、すぐに 必要な、または単にJavaにアクセスする 必要(。、doto、newなど)。この Clojureプロジェクトで簡単に使用できます JavaライブラリまたはレガシーJavaコード。
Clojureの前に試したことがないプログラムはどれですか?
Clojureを見つける前、私は 必要なプロジェクトを検討する JDBC、サーブレットで実行されます コンテナ、そして私は 多くの反復開発 どのメソッドがどうなるかは明確ではありませんでした 分析に必要なデータを処理します。 私はバックバーナーにそれを置きます 時間も忍耐もなかった compile-debug- deploy-validation Javaが必要とするサイクリング。私は今しました Clojureでアプリケーションを作成し、 のしやすさにとても満足しています その場で変更を加えて 結果を調べることができます すぐに。喜びはもちろん ロックフリープログラミングと 開発する必要から解放された(そして リファクタリング)クラス階層。
-" MikeM" clojure@googlegroups.com メーリングリスト経由
Clojureを介してJavaに適しているプロジェクトの種類、またはその逆、および組み合わせ
JavaとClojureで使用するフレームワークを開発する場合、Clojureで記述するよりもJavaで主要な抽象化(インターフェースと基本クラス)を記述する方が望ましいことがわかりました(Clojureの gen-class
はやや退屈で、むしろ proxy
を使用します)。
Hibernateまたはプログラムによる代替手段を提供せずにJavaアノテーションを多用する他のフレームワークのユーザーである場合、アノテーション付きのPOJOをClojureのデータ構造でエミュレートすることは簡単ではないため、いくつかの問題が発生します。
それ以外は、ClojureがJavaよりも適切でないユースケースはありません。もちろん、静的型付けの損失に対処する必要があります。これは、最初は多少戸惑いを感じますが、消える傾向があります。