web-dev-qa-db-ja.com

Clojureは何に役立ちますか?

Clojureを使用している人々はどのような実世界のアプリケーションですか?

グルーのものにはGroovyを使用し、大きなシステムにはJava、解析および接着にはPython/Perlスクリプトを使用します。Javaアドホックタスクにはほとんどすべてのスクリプト言語を使用する方が簡単だと思います。

私は、Groovyのエキスパートでも決してファンボーイでもありませんが、より良いサポートフレームワーク、ツール、および多くの言語構造(クロージャー、関数型プログラミング)を持っていることに私は感銘を受けました。同じことがScalaについても言えます。

他のシステムに組み込まれた言語として、その未来はあるのでしょうか?

93
Fortyrunner

私はClojureを以下に使用しました:

  1. Webページのスクレイピング
  2. シェルスクリプト
  3. ウェブサイトの構築
  4. OpenGLをいじる
  5. 非同期Webサーバーの作成
  6. HTMLテンプレート
  7. 並列タスクの実行(複数のURLの取得と並列処理)
  8. リアルタイムオーディオで遊ぶ
  9. シミュレーション

それは実用的で楽しいものです。

しかし、Clojureには理論的な深さも十分にあります。メインストリームが関数型プログラミングの可能性を本当に理解するようになるにつれて、ますます重要になるアイデア。

個人的な意見ですが、Clojureは、私がこれまでに学問的および職業的に使用したすべての言語(C、C++、Objective-C、Java、 JavaScript、Python、Ruby。

Clojureが完璧だと言っているわけではありません。しかし、私はそれがそこにあるもののほとんどよりも良い基盤の上に構築されているように思えます。

82
dnolen

リッチヒッキーの 理論的根拠 で始まるかもしれません。

実世界のアプリについては、これはどうですか 本番使用のロールコール Googleグループからですか?

19
Corbin March

Clojureは処理に広く使用されています 大量のデータ。 データマイニング/商用AI(例:Runa)および大規模予測(別名WeatherBill)に非常に適しています。 Clojureの並行処理のストーリーは、並列処理が唯一の答えであるこれらのデータの多いドメインで本当に役立ちます。

16
Arthur Ulfeldt

まあ、それは答えるのが難しい質問です。何をしたいですか? Clojureがあまり適していないものはあまりありません。つまり、JVMの起動時間( cake または同様のものを使用している場合を除く)のため、1つのコマンドラインスクリプトにはあまり適していませんが、どのJVM言語でも言えることです。

Clojureは、並行処理タスクに特に適しています。並行性のための素晴らしい言語になるように一から構築されており、STMシステムは素晴らしいです。筋金入りの並行処理関連の処理を行う必要がある場合、Clojureはそのタスクに特に適しています。

ただし、Clojureは汎用言語であることを覚えておく必要があります。特定のニッチに適しているだけでなく、他のJVM言語が適している可能性のあるものの多くまたはすべてに役立つ傾向があります。

Clojureは、それ自体が素晴らしい言語であるように設計されており、必ずしもグルー言語ではありません。 Javaコードに直接触れることなく、Clojureでゼロからシステムを構築できます。Niceグルー言語を作成しないということではなく、多くの人がそのように使用しています。

何かを念頭に置いている場合、最善の方法は、オプションの言語に関係なくソリューションがどのようになるかを検討することです。 Groovyで見た目や感じがよければ、Groovyを使用してください。どちらも根本的に異なる言語であり、両方に目的があります。

12
Rayne

GroovyまたはJavaを使用する場所であればどこでもClojureを使用できます。どうしてそんなことをしたいの? LISPが好きな人もいます。それらはGroovyよりもclojureを選択します。 LISPが嫌いな人もいます。それらはGroovyを選択します。

7
Vagif Verdi