Clojureは何に役立ちますか?[閉まっている]


100

Clojureを使用している実際のアプリケーションは何ですか?

私はグルー関連のものにはGroovyを、大きなシステムにはJavaを、構文解析とグルーにはPython / Perlスクリプトを使用しています。私は自分がJavaからClojureを呼び出すのを見ることができましたが、それ自体をどこで使用するのかわかりません。アドホックタスクにはほとんどすべてのスクリプト言語を使用する方が簡単だと思います。

私はどうしてもGroovyのエキスパートやファンではありませんが、サポートフレームワーク、ツール、言語構成(クロージャー、関数型プログラミング)が充実していることに驚かされます。Scalaについても同じことが言えます。

他のシステムに組み込まれている言語としての未来なのでしょうか。


23
サンドイッチを作る以外のすべて。
ウィーティー2010年

12
@wheaties:試しました(sandwich me BLT)か?
FrustratedWithFormsDesigner 2010年

3
「大きなシステム」にもClojureを使用しないのはなぜですか?ISTMは、Javaよりも冗長ではないため、Clojureでシステムをそれほど大きくする必要はありません。:-)
Ken

2
答えを見る-人々はいくつかのクールなものにそれを使用していると思います。長期的な開発のためにいくつの企業がそれを選ぶのでしょうか?
Fortyrunner 2010年

1
久しぶりだと思いますが、関数型言語でプログラミングするのは大変です。鋭い心は高価なので、ビジネスの観点からは、ClojureのLTDの可能性についてはわかりません。それが今日(5年後)よりもはるかに浸透するまでは、です。
Sean Allred、2015

回答:


93

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が完璧だと言っているのではありません。しかし、そこにあるもののほとんどよりも優れた基盤の上に構築されているように思えます。


あなたはデビッド・ノーレンですか?"Clojurescript:Lisp's Revenge"で講演した人。すごい話でした!
Amogh Talpallikar 2014年

1
//、「ソフトウェアを正しく編成するためのより良い言語構成を提供する」とはどういう意味ですか?EG dev.clojure.org/display/community/Library+Coding+Standards
Nathan Basanese 2015年

2
最新のハードウェアの起動時間の@maSnunは約1秒以下です。これはシェルスクリプトでは問題ありません。
dnolen

1
@dnolen返信に時間を割いていただきありがとうございます。私は新しいclojure愛好家で、lein uberjarで作成したjarファイルを実行しようとすると、20秒ほどかかります。私はOS X、コアi5と16GB RAMを搭載したMacbookを使用しています。特別な最適化を使用していますか?
masnun 2015

5
@maSnun uberjarsはシェルスクリプト用ではなく、アプリケーションのデプロイ用です。アプリケーションの最適化は、JVMの一般的な質問であり、Clojureに固有のものではありません。Clojureを使用すると、他のスクリプト言語と同じくらい簡単にハッシュバンシェルスクリプトを記述できます。
dnolen 2015


18

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


13

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

Clojureは、並行処理タスクに特に適しています。それは、並行性のための素晴らしい言語になるようにゼロから構築されました、そしてそれはSTMシステムは素晴らしいです。いくつかのハードコア同時実行に関連することを行う必要がある場合は、Clojureがそのタスクに特に適している可能性があります。

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

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

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


それでも、自分がCLI Clojureスクリプトを書いていることに気付きました。というのも、その言語は書き心地が良く、私の場合は起動時間を気にしなかったからです。
nha

7

Clojureは、Groovyまたはjavaを使用する場所ならどこでも使用できます。なぜそんなことをしたいのですか?lispが好きな人もいます。それらはGroovyよりもclojureを選ぶでしょう。lispが嫌いな人もいます。それらはGroovyを選ぶでしょう。


2
選りすぐりの母校だけではなく、clojureには他の言語にはない機能がたくさんあります)どういうわけか誰も何も言及していません。会議での講演をほとんど覚えていないため、ここで適切な答えを書くことができません
holms
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.