見出し画像

【プログラミング言語】Scalaの勉強記録

Scalaはオブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語である。「Scala」とは、関数型とオブジェクト指向型の両方を扱えるプログラミング言語。関数型とは、関数をメインに使用し、プログラムを成形するプログラミングスタイルのことを指します。関数は、計算など何らかの処理を行う部品のようなもので、関数を使い、定義・呼び出しをすることで、処理後の値を得ることができる。

一方、オブジェクト指向型とは、特定の処理を行うプログラムをひとつにまとめて、オブジェクトとして扱う考え方のこと。オブジェクト指向を採用することで、それぞれの役割にわけてプログラムが作れるため、メンテナンスがしやすいなどのメリットがある。名前の「Scala」は英語の「scalable language」に由来するものである。

主にJavaプラットフォーム(Java仮想マシン)上で動作し、既存のJavaのプログラムと容易に連携させることができる。

対応プラットフォーム
-Scala - Javaプラットフォーム
-Scala.js - Scala から JavaScript へとトランスパイルする。
-Scala Native - LLVM を使用し、マシンネイティブの実行ファイルを出力

Scalaは2001年にスイス・ローザンヌにあるスイス連邦工科大学 (EPFL) 教授のマーティン・オーダスキー(英語版)によって設計された。マーティン・オーダスキーはFunnelという、関数型プログラミングとペトリネットとを合わせたプログラミング言語の開発に携わっていた。オーダスキーは過去にJavaの総称型(ジェネリクス)とjavacの開発に携わった事があった。

Scalaは2003年の暮れに内部で公開された後、2004年の始めにJavaのプラットフォームにリリースされ、2004年の6月に.NETのプラットフォームに公開された。Ver2.0は2006年3月にリリースされたが、.NETのサポートは2012年に中止になった。2021年5月12日、コードネームdottyと呼ばれていたコンパイラを抜本的に再設計して作られたScala 3がリリースされ、多くの機能が追加された。

Scalaのメリットは主に以下の5点。
-Javaとの互換性が高い
-使用するコード量が少ない
-スピーディーな開発が可能
-エラーの可能性を抑えられる
-柔軟な開発が可能

ScalaはJVM上で動作します。JVMはJava Virtual Machineの略で、Java仮想マシンのことです。これにより、ほかの言語との連携が容易に行えるので、柔軟性の高いスムーズな開発を実現できる。

まとめ

Scala は 旧Twitter で使われている主要なアプリケーションプログラミング言語の一つである。

コードの書式の細かい話は(それが実践的である限りは)重要ではない。当然だが、スタイルに本質的な良し悪しはないし、個人的な好みはほぼ人によって異なる。しかし、同じ整形ルールを一貫して適用すれば、ほとんどの場合で可読性が高まる。特定のスタイルに馴染んだ読み手は、さらに別のローカルな慣習を把握したり、言語の文法の隅を解読したりする必要がない。

これは、重複度の高い文法を持つ Scala においては特に重要だ。メソッド呼び出しは分かりやすい例だ: メソッドは “.” を付けても、ホワイトスペースで空けても呼び出せる。同様に、ゼロまたは一つ引数を取るメソッドでは、丸カッコを付けても良いし付けなくても良い、といった様に。さらに、メソッド呼び出しの様々なスタイルは、文法上の様々な曖昧さをさらけ出す! 注意深く選ばれた整形ルールを一貫して適用することで、人間と機械の両方にとっての多くの曖昧さを解決できるのは間違いない。

【Scala】
―ホワイトスペース
―命名
―インポート
―中カッコ
―パターンマッチ
―コメント

【Scalaの作用・反作用・相互作用】
―型とジェネリクス
―戻り型アノテーション
―変位
―型エイリアス
―暗黙
―コレクション
―階層
―使う
―スタイル
―性能
―Java コレクション
―並行性
―Future
―制御構造
―再帰
―Return
―forループと内包
―require と assert
など。

この記事が気に入ったらサポートをしてみませんか?