マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Scala

【OSS情報アーカイブ】Scala

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Scala」とは

基本情報

概要

Scala(スカラ)とは、オブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムプログラミング言語です。Java仮想マシン(JVM)上で動作し、Javaの後継を担う言語として注目されています。

基本説明

Scalaは、Javaの良さを最大限継承しつつ、さらに、スクリプト言語や関数型言語のメリットを吸収し、先進的な機能/文法を取り入れている言語です。Javaの後継を担うものとして注目されています。

Scalaは、Javaプラットフォーム(Java仮想マシン)上で動作し、豊富なJavaクラスライブラリをそのまま利用できます。Javaよりも簡潔な記述でプログラミングできます。

Scalaで書かれたプログラムソースは、コンパイルするとJavaのclassファイルと同等のものになります。ScalaでJavaプログラムを使用でき、逆に、JavaでScalaプログラムを使用できます。

スケーラビリティが高く、シンプルなバッチプログラム、Webアプリケーション、エンタープライズアプリケーションまで高い生産性を発揮できます。

経緯

「Scala」は英語の「Scalable Language(拡張性のある言語)」に由来するとされています。

Scalaの開発動機は、「汎用言語はスケーラブルでなくてはならない。同じ概念で、小さいプログラムも大きなプログラムも記述できるべきである」「スケーラビリティは関数型言語とオブジェクト指向言語の2つのプログラミングの概念を統合し、一般化することにより実現できる」とされています。

2001年、Scalaは、スイス・ローザンヌにあるスイス連邦工科大学のMartin Odersky氏によって設計されました。

2004年、Javaプラットフォームにリリースされました。

主な特徴

オブジェクト指向

Javaよりもオブジェクト指向機能が強化されていて、すべてがオブジェクトとして扱われます。

関数型機能

Scalaは関数型機能も持っています。関数型プログラミングの手法を使うことで変数を使わずに処理を記述できます。

型ライブラリ

Javaに比べて、型(クラス)をより容易に作ることができます。

型推論

型推論機能により、動的言語のように型を省略できます。型の明記もできます。

パターンマッチ

非常に柔軟で高機能なパターンマッチが導入されています。

簡易に記述できる

Javaの1/2程度のコード量で、同様処理の記述が可能とされています。

静的型付けのコンパイル言語

JavaやC++などと同様にコンパイル時にエラーを検出できます。

並列処理

Scalaでは、マルチコアを意識して効率良く並列処理を行うための「Actor」と呼ばれるライブラリを利用できます。

その他ポイント

・既存のクラスを部分的に拡張できる
・Mix-in機能(traitクラスを利用)
・クロージャ機能
・XMLをソースコード中に記述可能
・構文解析「パーサーコンビネータ(英語版)」が標準ライブラリとして提供
・実行速度はJavaと同等
・簡易に扱えるコレクションクラス(List、Map、Arrayなど)が標準搭載
・多重継承と同等の仕組みがある
・ユニットテスト用ライブラリが標準搭載
・オールインワンWebフレームワーク「Liftweb」が存在し、高機能なWebアプリを作成可能
・コンパイルしなくても対話型で実行できる環境(REPL)もある
・1つのファイルに複数のクラスを置ける

同様製品(概要情報)

同様な機能を提供する製品として、次のようなものがあります。

「Java」など。

導入事例

2009年、「Twitter」がバックエンドをRubyからScalaに移行しました。

2011年、イギリスの大手新聞「ガーディアン」は、Webサイトの運用をJavaからScalaに移行しました。

「LinkedIn」「スイス銀行」などでも採用されており、企業の情報システムなどでの採用事例も増えています。

ライセンス情報

Scalaのライセンスは、「BSDライセンス」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

ダウンロードページ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】 米司法省、Google社に対して「 Chrome の売却 」を要求🌐

デジタル寺田の3分用語解説

2024.12.16

【デジタル寺田の3分用語解説】 米司法省、Google社に対して「 Chrome の売却 」を要求🌐

米司法省は、Googleに対してWebブラウザ「 Chrome 」の売却を要求しています。これは、Googleの市場独占行動が競争を排除していると問題視したものです。Googleはこれに反論し「セキュリティや経済への悪影響」を警告しています。今後の裁判の行方に注目が集っています。

【デジタル寺田の3分用語解説】 生成AIを悪用した「 サイバー攻撃 」とは?🕷️

デジタル寺田の3分用語解説

2024.12.16

【デジタル寺田の3分用語解説】 生成AIを悪用した「 サイバー攻撃 」とは?🕷️

生成AIの進化により、フィッシング詐欺やマルウェア作成が高度化・自動化しており、「 サイバー攻撃 」が進化しています。詐欺メールの信憑性が高まり、ターゲットに合わせた攻撃も可能です。また、無害な画像にマルウェアを隠す技術や、脆弱性を自動で攻撃するシステムも登場しているため、企業は最新のセキュリティ対策が不可欠です。

【デジタル寺田の3分用語解説】「 ダイバーシティ 」&「 インクルージョン 」(D&I)とは?🤝

デジタル寺田の3分用語解説

2024.12.16

【デジタル寺田の3分用語解説】「 ダイバーシティ 」&「 インクルージョン 」(D&I)とは?🤝

「 ダイバーシティ 」(多様性)と「 インクルージョン 」(包括性)は、性別や年齢、国籍、価値観、経験など、人々の持つ様々な違いを認識し、それを尊重しながら誰もが能力を最大限に発揮できる環境を作る考え方です。単に違いを受け入れるだけではなく、それを活かして共に成長していくことを目的としています。