独習C# 3日間で体系的にC#の全体像を把握する
約20年前鳴り物入りで登場した .NET の代表言語、C#。
当時.NETじゃないVBプログラマーだった自分は、オブジェクト指向?UML?フレームワーク?と悩みながら勉強を重ねて主にサーバーサイドのJavaプログラマーに転身していった。
オブジェクト指向が定着した後、軽量言語だとか設定より規約だとか関数型言語だとかさまざまなはやりの中、Javaが言語の拡張に対し慎重であるのに対し、C#は貪欲にそれら新しい概念を取り入れてきたように感じる。
そういう経緯もあり、こちらとしては何年もかけて常識として理解していることを、ゼロから学ぶ必要があるという意味において、C#という言語は初学者にとって「複雑」すぎるのではないか?かつてVBプログラマーだった自分がC++に感じたように迷宮のような言語になっているのではないか?と。やはり、後発のKotlinなどを見るとそう思う。
が、言語の適用範囲、シェアを考えると、JavaやC#は今後も重要な位置を占めていくに違いない。本書はC#が持つ歴史的な経緯による複雑さを、絶妙なレベルで体系的だてて説明することに成功しており、独習をうたうだけあり初学者にもお勧めすることができる。本書の著者の書籍を本書以外にも数冊読んだが、概念を体系立てて説明する著者の能力には感服する。どの書籍においても説明の分量が多すぎず、少なすぎず、冗長さはそぎ落とされており教科書的でもあるが、けっして無機質な文章ではなく読みやすい。
また、本書はかなり厚い本となっているが、都度バックグラウンドの説明、例えば「オブジェクト指向」とはそもそもどんな考え方なのか、ある実装について複数の方法がある場合、現在はどちらを採用するのが主流かなど著者の主観が入りそうなところは「エキスパートに聞く」として、また、正規表現や、日付の取り扱い、ファイル操作、サロゲートペアを含んだユニコードの説明など、著者は実務で何が必要で、はまりどころはどこかをわかっているなと感じさせる記述などが丁寧に説明される点などを見ると、逆にこの厚さによくこれだけの情報を無駄なく詰め込めるものだと感心する。
ちなみに、プログラミングC# 第7版 と比較すると、プログラミング言語C# 第7版が741ページに対して、本書 は606ページと若干薄いが、前者がXAML、ASP.NETなどの周辺技術の記述に100ページ程度割いている違いがある。本書は基本的に言語仕様の説明に焦点を絞っているが、その点については両者ともほぼ同じ範囲をカバーしているように見える。
初学者が利用、リファレンスとして手元に置くには本書が適していると思う。逆に言えば、ある程度実務でC#を利用している人には、すでに知っている知識も多いだろうと想定されるので、プログラミングC# 第7版 のほうがマニアックな掘り下げ方物語などから楽しんで読めると思う。
WINGSプロジェクト様より本書(独習C#)を献本いただき、レビューさせていただきました。