■テンプレートScala(スカラ(SKAH-lah[1])はオブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語である。language」に由来するものである。外部リンクプラットフォーム[編集]ScalaはJavaプラットフォーム(Java仮想マシン)上で動作し、既存のJavaのプログラムと容易に連携させることができる。過去には下記のプラットフォームもサポートしていたが、現在は開発が中断している。マーティン・オーダスキー教授によって設計された。マーティン・オーダスキー教授はFunnelという関数型言語のペトリネットを合わせた言語の開発に携わっていた。Javaとjavacの開発に携わった事があった。Scalaは2003年の暮れに内部で公開された後、2004年の始めにJavaのプラットフォームにリリースされ、2004年の6月に.NETのプラットフォームに公開された。Ver2.0は2006年3月にリリースされたが、.NETのサポートは2012年に中止になった。特徴[編集]主に以下のような特徴がある。Framework上で実行する場合、.NETのライブラリが使える)全てがオブジェクトとして扱われるオブジェクト指向言語である。静的型付けを行う関数型言語である。静的型付けのため、コンパイル時点でのエラー(特に型関連の)検出が得意である。型(クラス)をJavaなどと比べてより容易に作ることができ、また、型を使った条件分岐をはじめとして、型に関する機能が豊富なため、メソッドやメンバ変数を束ねるだけのクラスではなく、型に積極的な意味を持たせてのプログラミングが可能である。標準ライブラリとして、Actorと呼ばれるErlangライクな文法の軽量プロセスが提供されている遅延評価のある関数型言語であるため、無限リストを扱え、標準ライブラリにそのためのクラスが提供されている構文解析のための、パーサーコンビネータ(英語版)が標準ライブラリに入っている例[編集]「文字列の中から'a'という文字が存在するか判定する」という例を挙げる。手続き型言語的なコードを書くと以下のようになる。}上のコードは、添え字を使わずに、次のように書くことができる。}上のコードは、部分関数(Scala)(英語版)を使って、次のように書くことができる。'a')典型的な関数型言語では再帰をよく使う。再帰に置き換えると以下のようになる。Oderskyによると、Scala開発の動機は2つの仮説による。汎用言語はスケーラブルでなくてはならない。同じ概念で、小さいプログラムも大きなプログラムも記述できるべきである。スケーラビリティは関数型言語とオブジェクト指向言語の2つのプログラミングの概念を統合し、一般化することにより実現できる。利用例[編集]TwitterがバックエンドをRubyからScalaに2009年に移行した[3]のを初め、大型のソフトウェアでの利用例がいくつか存在する。FoursquareはScalaとLiftフレームワークを利用している[4]。Rails類似の機能を持つScala上のフレームワーク)イギリスの大手新聞ガーディアンは2011年4月ウェブサイトの運用をJavaからScalaに移行すると発表した。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。開発者Cookieに関する声明モバイルビュ。