Scalaの入門
Scalaは、スケーラブルな言語のための短いマルチパラダイムプログラミング言語です
2001年に技術ローザンヌ(EPFL)の連邦研究所は、マーティンOderskyファンネルベースの仕事はスカラを設計し始めました。
ファンネルが提案されている関数型プログラミングとペトリネットに考えたプログラミング言語です。
Odersky前作は、一般的なJavaとのjavac(日Javaコンパイラ)です。 2003年末/ 2004年初めのリリースではScalaのJavaプラットフォーム。 .NETプラットフォームScalaは2004年6月にリリース。 2006年3月にリリースされた第二言語のバージョン、v2.0の、。
2009年9月の時点で、最新リリースはバージョン2.7.6です。 Scalaの2.8期待される機能は、書き換え可能という名前のScalaのライブラリ(Scalaのコレクションライブラリー)、およびメソッド、オブジェクトパッケージ(パッケージオブジェクト)、および継続のデフォルトパラメータが含まれています。
2009年4月には、Twitterのは、彼らはルビーからスカラ座に移行するバックエンドプログラムのほとんどを過ごしたことを発表し、残りは移行しようとしています。 また、Wattzonは公にプラットフォーム全体がすでに準備Scalaのインフラストラクチャに基づいている、と述べています。
Scalaの機能
オブジェクト指向機能
Scalaはそれぞれの値がオブジェクトである、純粋なオブジェクト指向言語です。 クラスと特性によって記述されたオブジェクトのデータ型と行動。
抽象クラスの拡張メカニズム、2つの方法があります。一つの方法は、継承をサブクラス化することで、別のアプローチは、柔軟な混合機構です。 多重継承の問題を回避するには、2つの方法。
関数型プログラミング
Scalaはまた、使用する値として機能することができる機能的な言語です。 Scalaは匿名関数を定義するための軽量な構文を提供し、それは、高階関数をサポートしてネストされた多機能を可能にし、カリー化をサポートしています。 Scalaのケースクラスとその組み込みのパターンマッチングは関数型プログラミング言語一般的に使用される代数的なタイプと同等です。
また、プログラマは正規表現に似たXMLデータを処理するコードを記述し、Scalaのパターン・マッチングを使用することができます。
静的タイプ
Scalaは、コードのセキュリティと整合性を確保するためにチェックコンパイル時を通じて、型システムを持っています。 特定の型システムは次の機能をサポートします。
- ジェネリッククラス
- 共分散と
- 吹き出し
- 型パラメータの上限と下限
- オブジェクトメンバとしてクラスと抽象型
- 複合型
- 明示的に型を指定するときに自分自身を引用
- ビュー
- ポリモーフィック方法
膨張性
スカラは、実際には、特定の応用分野を開発することは、多くの場合、拡張機能の分野における特定の言語を必要とするという事実を支持するように設計されています。 Scalaは、言語のメカニズムのユニークな組み合わせがシームレスに簡単にライブラリの形であっても新たな言語構造を追加することができます提供しています。
- 任意の方法は、接頭辞または接尾辞演算子として使用することができます
- それは自動的に閉鎖の意図された種類に応じて設定することができます。
同時並行性
Scalaのメッセージを送受信するメールを介し俳優、俳優エンティティ同様のスレッドを使用して、その同時実行モデルとして。 俳優がスレッドを再利用することができ、それはプログラムで何百万人の俳優を使用するが、唯一のスレッドの数千を作成することができます。 デフォルトの俳優が達成としてアッカを使用した後のバージョン2.10で。
誰がスカラを使用しています
- 2009年4月には、Twitterのは、彼らはルビーからスカラ座に移行するバックエンドプログラムのほとんどを過ごしたことを発表し、残りは移行しようとしています。
- また、Wattzonは公にプラットフォーム全体がすでに準備Scalaのインフラストラクチャに基づいている、と述べています。
- 一般的な製品のためのScala UBS。
- Scalaの言語を使用してサーバとしてコーセラ。
ScalaのWebフレームワーク
ここではScalaの2以上の一般的なWebアプリケーションフレームワークです: