題名はやたらとセンセーショナルですが、
内容はそうでもありません。

題名を見ると、Windowsの時代が終わってLinuxやらiOSやらChrome OSの時代が来る、
と読めて、アンチマイクロソフト派が買いそうですが、
実際の内容を読むと、OSの時代は終わった、と言っているだけです。

つまり、OSが第一級の商品となり、
新機能がどんどん報道され話題になり、
新OSが高額でどんどん売れる、
という時代はそろそろ終わるんじゃないかということ。

クラウドやWebアプリの発展により、OSがどうでもいいという雰囲気は確かに増加してますしね。
パソコンの普及により、OSを意識して弄り回すようなユーザーの割合は激減してますし。

まあ当たり前といえば当たり前のことですな。
そんなにセンセーショナルな話ではありません。
しかもその結論は最後に出てくるだけです。


内容としてはそれよりも、Windowsを中心としたOSの歴史が、
丁寧にまとめてある本として価値があると思います。
内容の大部分はそっちですし。

しかし、これをアンチマイクロソフト派に買わせてどうするつもりなんだろう。

基本的な流れが説明してあるだけで、濃い内容でもないですが、
きっちり一冊分の分量があるものですね。
このくらいは覚えておかねば。

長年OSをいじり倒してきたという人なら全部知っていて当たり前の内容なのかもしれませんが、
普通にアプリケーションを使っているだけだと、OSが裏側でやってくれている機能はそんなに意識しませんからね。
出た時は記事を読んだとしても、そんなに記憶に残っているものでもありません。
体系立てて説明してくれる本は、大変役に立ちますね。
マイクロソフトで、Windows95などの開発で活躍し、
その後IT関連の起業家となって成功している中島聡さんのブログ集。

技術者として当たり前だが、実際に実行できている人はあまりいない。
そういうことがたんまりと書かれています。
大変ためになります。

ブログ形式で読みやすくもあるので、
一度原点を確認しなおしたい時には読むとよいでしょう。
高度な基本というのは、実践に移すことが難しいのでなかなか定着しないものですし。
何度でも読んでおくべき。

ただ、若くしてアメリカにわたり現在は起業家やっている人なので、
日本のプログラマーが鵜呑みをしたらだめなことも多いと思います。
確かに世界の第一線で活躍するにはこれが必要だろうが、
それより前に努力することがあるだろう、って話もありますので。
私のような平凡なプログラマーが読む場合は、その辺の調整は必要ですね。
最近実に勉強が足りない。

毎日ブログに書くことがあるくらい、勉強するべきだとは思うのですが。
いやはやなかなか。
Windowsタブレットを購入し、
いきなりWindows8に入れ替える。

Windows8はタブレットを相当意識したつくりになっているようですし、
タブレットとして使いこなしてみねば評価できませんしね。

まあ、ハードウェアとか環境設定とかはそんなに得意じゃないので、
無謀な道を歩んでいるような気もしますが。
一応無難に使えてます。
最近のベータ版は優秀ですな。
いや、ベータより前なんですが。

一応Bluetoothキーボードも導入し、家ではノートっぽい使い方をしています。
この使い方だとマウスはいるかもしれません。
ちゃんと作業すると手がつかれる。

ノートPCよりかなり持ち歩きが便利です。
キーボードはちゃんと姿勢を正さないと体のあちこちが痛くなりますし。
やっぱり、これからはタブレットの時代ですかね。
ちょっと私には難しすぎたのか、大変苦労して読みました。

結局理解したとはとても言えませんが、
何が理解できず、何を勉強しなくてはいけないのかは何となくわかった気がします。

現在のコンピュータビジョンのプログラムは、
数学を通じて説明せずに、
日本語だけで説明できる状況にはなってないみたいですね。

だから一つ一つの命令について、
数学的な理解が必ず必要になる。
その素養がないと一つとしてプログラムの理解はできないようです。

理解しなくてもコピペなどでプログラムを組むことはできますが。
それだと面白くないですしね。

なので、もう少しこの分野について数学的な素養を身に着けてからでないと、
理解はできないなと思いました。

読む前は、C言語のライブラリということで、
その辺が難しいのではないかと心配していましたが。
その辺は大丈夫でした。

Cとはいっても、
関数の粒度はかなり高レベルなものになっていますし。
むしろこの粒度でCにする必要があるのだろうかと思えましたが。

逆に、C++にする必要がないのですかね。
高レベルな用途に使うならPythonを使えばよい、ということなのでしょうか。

また、日本語版で追加されたらしい、
付録はかなり高度で興味深いことが書いてあり、ためになりました。
ここの高度は数学とは関係ないので私にもある程度理解できましたし。

iOSへの移植に伴うパフォーマンスチューニングのテクニックとか、
マルチタッチスクリーンの作り方(ソフトだけじゃなくハードも)とかが書いてあります。

ソフトウェア的な工夫で、新しいハードウェアが工夫できるというのは、
コンピュータービジョンの分野は本当に発展性があるものですね。
最近パタパタと、
日本語によるUnityの本が出てますが。
現在発売されている4冊の中では、一番内容が高度な本。
と言っても難しいことが書いてあるわけではないですが。

3Dモデルとテクスチャ以外は、
全部自分で作る方法が書いてあります。

ツールの操作にしても、スクリプトを書くにしても、
説明をはしょることなく、全部解説が書いてあります。
ほかの本と違って、ここはコピペして、とかで済ませている部分がない。

トゥーンシェーディングとか、自機やカメラを動かすアルゴリズムとかも含め、
ちゃんとしたゲームを一本作る過程が全部説明してあります。

その分、写真とかは少なくなってますが。
文字ばかりでもいいからきちんとスクリプトまで書けるようになる説明がほしい人は多いはず。
現時点では非常に必要とされている本ではないでしょうか。
というかなぜほかの本はあんなに初心者向けなのでしょうか。
ゲーム作りたい人ってプログラム未経験者が多い?

あと、付録ではありますが、バンダイナムコで、この本の英語版の社内勉強会で使われたらしい資料が同梱されているのも良いです。
内容はあくまで本文を補足するものではありますが、
ピンポイントでわかりやすいところとか必要になるところとかが補足されていて、
本文を読んだ後で読むと大変ためになります。

実際にゲームを作った体験談まで書いてある。
苦労したところや簡単にできたところとやら。工数まで。
実際にどれだけ本格的なものができるか大変わかりやすく書いてあります。

総合的に、非常に役に立つ本ですね。
A5で300ページくらいなのにもかかわらず、
プログラム言語を7つも解説した本。

プログラム言語を使えるようになりたい人には向きません。
いくらなんでも説明が足りなさすぎる。

しかし、大変良い本です。
なぜかというと。
いろいろな思想によって作られた、いろいろな言語を知ることができるから。
まさに、世界を7つ俯瞰するような体験が得られます。

世の中には星の数ほどのプログラミング言語がありますが、
これ一つ覚えておけばほかはみんないらない、という言語はありません。

C++なんかはその辺を目指して割といい線は言っていると思うのですが、
それでも全く達成には程遠い。
多くのの機能を詰め込めばすべての機能が使いにくくなります。
主要言語にしては、学習コストとか可読性はかなりひどくなってしまっています。

すべてを手に入れることができないなら、
厳選したものを詰め込むしかありません。
厳選された少ない要素で、多くのことができる便利な言語を作るにはどうしたらいいか考える。
簡潔な記述の組み合わせて、いかに多彩なことが実現できるか考える。
それには相当なセンスがいります。

そして、そのセンスによって作り上げられた言語は、
公理系のように一つの世界を持つことになります。
センスの良い美しい世界を。

ただし、その言語の中だけを見ていては、
その世界の形はなかなかわかりません。

ほかの世界と比べてみて初めて、
その世界がどういう特徴を持っているか知ることができる。
どういう美しさをもっているかを知ることができる。

そのような美しさが、7つ紹介されています。
大変良い本ですね。
第1章は、C#4.0の新機能が解説されています。
新機能を網羅し、それなりに詳しい説明になっており、
ここだけ見れば大変すばらしい本です。

で、2章3章は動的なコードの例として、
たくさんのコードが載っているのですが。
今一つ。

あとがきを見ると、昔実用コードが丸々載っている本があって、
感動したのでそれを再現したそうですが。

今ではオープンソースとかで実用に使えるコードは見たければいくらでも見ることができますし。

書籍でもDVDつきとかネットと連動とかで、きちんと説明用のコードをつけているのは多いです。
説明用のコードは、実用に耐えるだけではなくきっちり説明用にわかりやすくもなっている。

この本に載っているコードは実際に公開して使っているものらしいですが、
それだけに古いバージョンの記述が残っていたりとか、説明用のコードとしては今一つ。
今から自分で書くコードで、これを真似していいのかどうかも良くわからない。
真似するべきとではないときちんと書いてある部分もあって、そこについてはわかりやすいのですが、
だったら載せるなと言いたくならなくもない。

そもそもC#4.0でdynamicが言語の売りとなっていて、
ダイナミックなサンプルプログラムと言ってそれとは無関係なリフレクションを多用した動的コードを乗せるのは、
なんか詐欺っぽい気もします。

1章だけなら読む価値は大きいです。
それ以降はちょっと人を選ぶんじゃないですかね。
Unityは、初心者でも簡単にゲームが作れるようになるツール、ライブラリ群です。
その説明として、初心者が簡単にゲームが作れるように、丁寧にまとめてあります。

大学の授業でUnityを教えた経験に基づいているらしく、
単なる解説にとどまらず、実践的になっています。
例えばこまめにセーブするよう、しつこく注意しているあたりは、
実際に学習する初心者にとっては大変役に立つことでしょう。
そういう実際に教えてみないとわからないような工夫があちこちにみられるように思えます。

ほんの構成としては、最初は付属のDVDに入っているデータなども使って、
簡単な手順で実際にゲームらしきものを仕上げていき、
作る楽しさを体感できるようになっている。

その後ちょっと高度な説明もついているようですね。
高度と言ってもそんなに大したものでもないですが。
ツールの使い方が中心で、スクリプトもあまり出てきませんし。

一応スクリプトの言語にC#が選ばれていることなどから、
ちゃんとしたプログラムを組む方向にステップアップすることも考えてはいるようですが。

非常に簡単にゲームが作れるようになる、よい本です。
Unityでゲーム開発を始める、初心者向けの本。

オライリーの本だから多少は高度なことが書いてあるかと思って買ったのですが、それは先入観だったようです。
大きな写真で操作説明が詳しく書いてあり、手順をなぞっていくとやり方が覚えられるという、そういう本です。
スクリプトも一応出てきますが、ほとんどないです。

基本的にはそれがUnityの本質なのでしょう。
monoを使った高度なライブラリですから、プログラム的にも高度なことはできるでしょうし。
そういう方面を目指して、私みたいにプログラマーが始めることもある。

しかし基本は、初心者でも簡単にゲームが作れるツールであるのでしょう。
プログラムはスクリプト程度で、それもほとんど書かなくてよい。
少なくともそういう使い方ができるように設計されている。

それを忘れると足元をすくわれそうですね。
プログラムで高度なことをやるのはあくまで二の次以下であることを忘れてはいけません。

そういうものの解説本として、適切な記述になっているのだと思います。
できることは一通り丁寧に解説してありますし、
この本で勉強すれば簡単にゲームが作れるようになる。

そういう意味ではよい本ですね。