エンタープライズ レベルのアプリケーションの開発に Scala を使用していますか?
編集: 同意します。エンタープライズという言葉は明確に定義されていません。この質問をすることで、遊ぶためだけでなく実際のプロジェクトで Scala を使用しているかどうかを尋ねるつもりでした。作成者以外にも使用されることを意図した個人的なプロジェクトに Scala を使用することは、「実際のプロジェクト」のカテゴリに分類されます。
エンタープライズ レベルのアプリケーションの開発に Scala を使用していますか?
編集: 同意します。エンタープライズという言葉は明確に定義されていません。この質問をすることで、遊ぶためだけでなく実際のプロジェクトで Scala を使用しているかどうかを尋ねるつもりでした。作成者以外にも使用されることを意図した個人的なプロジェクトに Scala を使用することは、「実際のプロジェクト」のカテゴリに分類されます。
質問の中で使用されている「エンタープライズ」という言葉は、明らかに要件がないことです。ある人の「エンタープライズ」アプリは、別の人のものではありません。Scala / LiftはSAPによって使用されていますが、その「エンタープライズ」で十分ですか?
一日の終わりには、Javaプラットフォームが提供しなければならないすべての「エンタープライズ」のものにアクセスできます。
申し訳ありませんが、少しぎくしゃくして外れますが、この種の質問はかなり貧弱で、明確な答えはありません。さらに言えば、誰かが「エンタープライズ」と見なす可能性のある多くのアプリを作成した可能性がありますが、そうではないため、そのように記載することはありません。
編集
また、TwitterはScalaが大好きです:http://www.slideshare.net/al3x/twitter-3s-scala そして彼らの経験をカバーするインタビュー:http ://www.artima.com/scalazine/articles/twitter_on_scala.html
実際のプロジェクトのScala?そのとおり。
まず、すべてのJavaがまだ利用可能であるため、アプリケーションは既存の共通ライブラリを使用できます。これらのライブラリは過去10年間Javaで構築されており、社内の他のシステムにアクセスするために重要です。
第二に、エンタープライズアプリケーションで最も重要なことは適応性です。硬直しすぎると、ほとんどのエンタープライズアプリが機能しなくなり、最終的には機能しなくなります。この剛性につながる2つの問題があり、Scalaは両方を回避するのに役立ちます。1つの問題は、コードの量が非常に多いことです。JavaはCやC++よりもうまく機能しますが、アプリケーションを実装するには、Scalaよりもはるかに多くのコード行が必要です。
Javaでは、コードサイズの問題に対処するには、フレームワーク、ライブラリ、カスタマイズ可能なファクトリなど、より高度な構造が必要です。そのため、「lib」ディレクトリに20〜50個のJARファイルを持つJava EEアプリ(通常はSpringベース)をデプロイします。その構造自体はアプリを完成させるために必要ですが、概念の複雑さの点で独自の問題を引き起こす可能性があります。
Scalaは概念の複雑さの過負荷の影響を受けませんが、Scalaの一般的なプログラミングスタイルは、DSLを構築するためのフレームワーク用のライブラリではなく、より小さく、より具体的なプログラムに向かう傾向があります。
もちろん、DSLを構築するためのフレームワーク用のライブラリが実際に必要な場合は、Javaにコールバックできると便利です。
それはあなたの質問に対する答えかもしれません (または答えないかもしれません) が、Twitter がすべてのバックエンド処理に Scala を使用していることを知りました (RoR はインターフェースにとどまります)。
これは、 Twitterで開催されたベイエリアのScala愛好家の会議からの素晴らしいスライドセットで、言語のスタイルガイドラインの概要を示しています。TwitterがScalaでいくつかの重要なバックエンドサービスを開発していることは、今では十分に確立されています。
金融における大規模なティックデータのクレンジング、計算、および配布操作にscalaを使用しています。アプリケーションは非常に堅牢でスケーラブルです。一部の c++ セクションを除いて、完全に scala で記述されています。
理由:
非常に速い開発時間
ボリアプレートがないため、実際の問題について簡単に推論できます
単純に「コードが少ない」ため、問題解決が速くなります
機能パラダイムの柔軟性の向上
上記のすべての改善に対して実質的なパフォーマンス コストは発生しません
2.8 まではツールが不安定でした (ただし、emacs/ant のアプローチはそれでもしっかりしていました)。
Eclipse プラグインの改善により、環境は十分に堅牢になりました。
Sony Imageworksは、いくつかの中間層アプリケーションに Scala を使用しており、Scala で記述されたデータベース移行パッケージをオープンソース化しています。
LinkedInはSomeScalaを使用しています
従来の Java コード (少しずつ Scala に移植されています) は別として、 Wordnikではすべてのバックエンド コードに 100% Scala を使用しています。私が「エンタープライズ」として特徴付けるいくつかの非常に大規模なプロジェクトでの REST API を介したデータベース層。しかし、私たちはエンタープライズ企業ではないので、もし誰かが私たちがそうであると提案したら、おそらく気分を害するでしょう ;) 乾杯!
私たちは、金融のデリバティブ価格設定プロジェクトに Scala と Java を使用しています。ただし、私たちはLIFTのファンではありません:)
よろしくお願いします