[解決済み] Scala vs. Groovy vs. Clojure [終了しました]。
質問
Scala、Groovy、Clojureの大きな違いについて、どなたか説明してください。それぞれがJVM上で動作するようにコンパイルされていることは知っていますが、それらの間の簡単な比較がしたいのです。
どのように解決するのですか?
グルーヴィー は動的型付け言語であり、その構文はJavaに非常に近く、多くの構文改良によりコードの軽量化と定型文の削減を可能にしています。コンパイルだけでなくインタプリタでも実行できるので、プロトタイピングやスクリプトを高速に作成したり、新しい構文を覚えることなく動的言語を学習したりするのに適しています(Javaを知っていると仮定して)。Groovy 2.0では、以下のサポートも増えている。 静的コンパイル . Groovyはクロージャをサポートしており、従来の関数型プログラミングの定義からはまだかなり離れていますが、ある程度関数的なスタイルでのプログラミングをサポートしています。
Clojure は、Lisp の方言で、以下のような高度な機能を備えています。 ソフトウェアトランザクショナルメモリ . もしあなたがLispが好きで、JVMの下でそれに似たものを使いたいのなら、Clojureはあなたのためにあります。Clojureは、おそらく最も 関数型言語 JVM上で動いているもので、最も有名なものであることは間違いありません。また 不変性 他のLisp方言に比べ、関数型言語の愛好家に近い存在です。
スカラ は、Java以上に完全なオブジェクト指向言語であり、最も先進的な 型システム 研究用以外の言語では、JVM上で最も先進的な型システムであることは間違いありません。また、オブジェクト指向を損なうことなく、関数型言語の多くの概念と特徴を兼ね備えているが、関数型言語の特徴が損なわれているため、後者の熱狂的なファンもいる。
Groovyはよく受け入れられ、Grailsという人気のあるWebフレームワークもあります。また、Gradleビルドシステムを動かしており、Mavenに代わるものとして人気が出てきている。このように、Groovyは、他の言語と比較して、特にJythonとJRubyがJVMランドに進出し始めているため、実用性が限られた言語であると個人的には考えています。
Clojureは、いくつかの非常に興味深い機能を差し引いても、JVM上のLisp方言というだけで強い魅力を持っています。もちろん、その人気は制限されるかもしれませんが、私は、長い間、その周りに忠実なコミュニティがあることを期待しています。
ScalaはJavaと直接競合することができ、ほぼすべての面でJavaに軍配を上げることができます。もちろん、現時点では人気では太刀打ちできませんし、企業の強力な後ろ盾がないことが、企業環境での受け入れの妨げになる可能性もあります。また、言語が進化していくという意味では、Javaよりもずっと動的な言語です。言語の観点からは、それは良いことだと思います。何千行ものコードを書く予定のユーザーからすれば、そうではありません。
最後に、私はScalaにとても詳しくて、他の2つは知っている程度です。
関連
-
[解決済み] Spark - Sparkでパーセンタイルを計算する方法は?
-
[解決済み] NoClassDefFoundError: org/apache/hadoop/fs/StreamCapabilities (s3データをsparkで読み込む際に発生します。
-
[解決済み] TimeoutExceptionが発生した場合、どのような原因が考えられるでしょうか。Sparkで作業しているときに[n秒]後にFuturesがタイムアウトしました[重複]。
-
[解決済み] Scalaのcase classとclassの違いは何ですか?
-
[解決済み] Traitの代わりに抽象クラスを使用する利点は何ですか?
-
[解決済み] Scalaでファイル全体を読む?
-
[解決済み】Scalaの記号演算子にはどんな意味があるの?
-
[解決済み】Scalaで`:_*`(コロン・アンダースコア・スター)は何をするのですか?
-
[解決済み] GroovyでMapをループスルーする?
-
[解決済み] Scalaの==と.equalsの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Spark Exponential Moving Averageについて
-
[解決済み】scalacコンパイルで "object apache is not a member of package org "と表示される。
-
[解決済み] Scalaでswitch/case(単純なパターンマッチ)を使うには?
-
[解決済み] 理解する `andThen`
-
[解決済み] scala.Float to java.Float k/v変換でScala MapをJava Mapに変換するにはどうしたらいいですか?
-
[解決済み] MapのmapValuesとtransformの違いについて
-
[解決済み】Scalaの型消去を回避するにはどうしたらいいですか?または、なぜ私のコレクションの型パラメータを取得することができないのですか?
-
[解決済み】ScalaのHigher kinded typeとは何ですか?
-
[解決済み】Scalaで変数をキャストする方法は?
-
[解決済み】Scala 2.8における<:<、<%<、=:=の意味と、それらのドキュメントはどこにあるのか?