Scala スケーラブルプログラミング 第 4 版
- 著者:
- 不明
- 出版社:
- インプレス
- 出版日:
- 2021年06月16日頃
- ISBN:
- 9784295011552
- シリーズ:
- impress top gear impress top gear
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
技書の森解説
Scala の言語設計者 Martin Odersky が Lex Spoon、Bill Venners とともに書いた『Programming in Scala』の原著第 4 版を、長尾高弘 訳、麻植泰輔 / 立野靖博 / 田所駿佑 / 水島宏太 監訳で日本語化したのが『Scala スケーラブルプログラミング 第 4 版』 (インプレス、impress top gear シリーズ、2021 年 6 月刊) です。版元は本書を「言語設計者による Scala のバイブル」と紹介し、対応バージョンは Scala 2.13 と明記しています。オブジェクト指向と 関数型プログラミング の両方を実践できる言語である Scala について、言語機能、プログラミングスタイル、その背景にある考え方まで理解を深めることを狙った、全 35 章の包括的なチュートリアルです。
全 35 章の包括的チュートリアル、2.13 対応の第 4 版で見直された範囲
版元の紹介文によれば、第 4 版では一新されたコレクションライブラリーなど、バージョン 2.13 に合わせて内容が見直されています。Scala 2.13 のコレクション再設計は、標準ライブラリーの利用者にとって書き方が変わる規模の変更だったため、旧版の記述を前提にコードを書くとずれが生じる箇所であり、この見直しが第 4 版の実務上の意味です。紹介文は Scala が並行処理やパーサー・コンビネーターなどのライブラリーも提供する言語であることに触れており、言語機能の解説にとどまらず、標準的なライブラリーの考え方まで含めて言語の全体像を描く姿勢が読み取れます。なお、目次は版元の登録情報に無いため、個々の章の内容には本稿では踏み込みません。文献と索引が付いていることは書誌で確認できます。
オブジェクト指向と関数型を一つの型システムで統合する設計思想
Scala の難しさと魅力は同じ場所にあります。クラスとトレイトによるオブジェクト指向の構成と、イミュータブルなデータ を高階関数で組み合わせていく関数型の作法を、静的な型システムの上で同時に成り立たせている点です。型パラメータ と型推論、ケースクラスとパターンマッチ、暗黙の変換や引数といった要素はそれぞれ単独でも学べますが、Scala ではそれらが「小さなスクリプトから大規模なシステムまで同じ言語で書ける」というスケーラビリティの思想のもとに配置されており、個々の機能の説明を読むだけでは配置の理由が見えません。言語設計者自身が書いた本の価値はここにあり、機能の一覧ではなく、なぜその機能がその形で存在するのかという設計側の視点から言語を説明します。並行処理を扱う際にイミュータブルなデータと関数型の作法が効く理由も、この思想の延長で理解できます。
Java などの経験者に向く前提知識と、対応バージョンの注意
本書は初学者向けの薄い入門書ではありません。Java などの静的型付け言語でオブジェクト指向の基礎を身につけ、コードを日常的に書いている人が、Scala の言語全体を設計思想から把握するために腰を据えて読む本です。プログラミング自体が初めての人や、まず短いコードを動かして雰囲気をつかみたい人には、分量と密度の両面で重く感じられます。また購入前に確認しておきたいのが対応バージョンです。版元が明記するとおり本書は Scala 2.13 に対応した版であり、それより後のメジャーバージョンである Scala 3 を前提に学びたい人が手に取る本ではありません。2.13 系のコードベースを保守 / 拡張する立場か、Scala 3 に進む前に言語の土台となる考え方を固めたい人に適した位置づけです。
一方、Java や他の言語での経験があり、オブジェクト指向と関数型の統合を「機能の寄せ集め」ではなく一貫した設計として理解したい開発者、Scala 2.13 系の業務コードを読み書きする開発者にとっては、言語設計者の視点で全体像を一冊で押さえられる本書は、投じる時間に十分見合う選択です。言語の使い方だけでなく考え方まで身につけたい人にとって、設計者自身の言葉で書かれた本書は Scala 学習の基準点になります。