2016-01-11 9 views
9

誰かがsparkのためにJava上でscalaを使用している理由を理解できますか?私は研究していますが、確かな答えを見つけることができませんでした.JVM上で動作し、スケーラの機能とOOP言語を知っているので、どちらもうまく動作します。Spark用のscalaとjava?

ありがとう

+1

ちょうど彼らがより良いScalaのが好きではないので、なぜ? –

+4

Scalaはコンパイラに多くの作業をさせるので、少ない作業が必要です。 Sparkをどちらからでも完全に使用することができます。 Scalaはうまく動作する言語ですので、どうしてですか? (言語を特によく知らない巨大なグループの一員として働くにはそれほどうれしい言語ではありません;そのような状況でJa​​vaの冗長性と相対的な柔軟性の欠如は利点があります。なぜなら、Javaで独特で誤解を招くようなコードを書くことは難しい。)Scalaの抽象度が若干高いと思うことがよくあります。これにより、より困難な問題に取り組むために集中力を解放し、より正確なコードを書くことができます。 –

+1

Scala:書いて、離れて歩いて行き、邪魔にならず歩いていくのがいい。 – erickson

答えて

14

SparkはScalaで書かれています。 Sparkもまた、Java 8が利用可能になる前に出てきたので、関数型プログラミングはより煩雑になりました。また、ScalaはJVMで実行中にPythonに近いものです。データ科学者はSparkの元のターゲットユーザーでした。データ科学者は伝統的にPythonのバックグラウンドをもっと持っているので、Scalaはすぐに使えるようになります。

ここでは、最初に書いた人からの直接引用が、彼らが行ったreddit AMA 。質問されました:

Q:

それはScalaでスパークを作成することでしたどの程度重要? Javaで記述するのは現実的/現実的だったのでしょうか、あるいはScalaにとってSpalaにとって基本的でしたか?マテイサアラから

A:

私たちが始めたとき、私は本当に(人々が機能をインラインで書く、など)統合言語インターフェースをサポートしているPLを望んでいた、私は思ったので、これを持っているリサーチシステム(特にMicrosoft社のDryadLINQ)を見てから、これらのアプリケーションをプログラミングしたいと考えていました。しかし、Hadoopファイルシステムやそのデータフォーマットと簡単にやりとりするために、JVMを使いたいと思っていました。 Scalaはこの種の機能構文を提供し、静的に型指定された(パフォーマンスをいくらか支配できるようにしていた)あまり普及していない唯一のJVM言語でした。今日は、Java 8とJavaでAPIの最初のバージョンを作るために、引数があるかもしれないが、我々はまた、などの型推論、パターンマッチング、俳優のライブラリのように、スパークでのScalaの他の側面から恩恵を受け

編集

人々包みHERESにリンクがマテイが言っていたものの詳細に興味を持っていた: https://www.reddit.com/r/IAmA/comments/31bkue/im_matei_zaharia_creator_of_spark_and_cto_at/

関連する問題