2015/7/5

えっ~、申し訳ありませんが、
今日、「JavaForKids」を、訳している途中、
	メモリー
という言葉に引っかかって、
	このままでいいのか!
	コンピューターの基本知識に対して!
と思いました。

というのは、Javaでも、
	オブジェクトが、変数に保存される時、
	そのデータが、保存されるのではなく、
	データのあるアドレスが、保存される
などという話があります。

勿論、これは、そのまま覚えてしまえばよいといえば、
よいとも言えますが、
Java は、C++や多分Cも のように、
そこまで考える必要はないのかもしれませんので、
でも、
	単なる第6感ではありますが、
	絶対基本的な、コンピュータの仕組みが分かっていた方がいい!
という気持ちが強くなりました。

そこで、当分の間は、
この本
	Charles Petzold /(チャールズ・ペッツオールド)氏による
	Code(何かに関連付けられたコトバが、コード!)
という本を、主に使って、
基本的なコンピュータ知識について、アップロードしていこうと思っています。

タイトルは、
	Code、学習日記
などにするつもりです。あくまで、翻訳ではなく、学習日記です。

JavaForKidsは、これが終わってから再開します。

どんな内容になるかは、最初の前書きの部分だけ、
えっと、翻訳ではなく、日記を書いてみましたので、
読んでみてください。

これを、読んで、面白そうだなと思われた方は、
ぜひ来週からの続きも読んでみてください。


最初の部分はこんな内容です:


私はその本(Code)について、よく考え、それから書いていた。でも、その本が出版された後、
みんなが聞いてきた、「その本は何について書かれているのですか?」。
私はいつもその質問にはうんざりしていましたが。

コンピュータテクノロジーにおける素晴らしく独特の「進化の歴史」が、現代の
テクノロジーを作り上げたのだ!
そして、そのことを書くことによって、コンピュータサイエンスを学ぶことに対しても、
十分な役割を果たすことが出来るのでは!、と思っています。

でも、ついに私は認めなければなりませんでした。
''Code'' は、コンピューターの仕組みについての本であると。

私が懸念したように、リアクションは、好意的ではありませんでした。
これを読んで、「こんな感じな本はもう持っているよ」と、おっしゃる人もいますが、
私にしてみれば、「いや絶対持ってないはずです!」と、言いたい。
私は今でも、自分のこの考えは正しいと思っています。
この本には、データが、ディスクドライブに流れ込んでいくような様子を矢印などを使って、
きれいな色で描かれたイラストなどは、ありません。
この本には、「0」と「1」という荷物を、列車が運んでいるようなイメージ図は、
ありません。

確かに、イメージ図などは、素敵なやり方の一つですが、
本当の、テクノロジーの美しさを、隠してしまうこととも言えます。
また、「人々は、コンピュータの仕組みには興味がないよ」という意見もありますね。
それは認めます。
そして、わたしは、たまたまそんなことが好きなのです。
でも、私も、みなと同様、学びたいことは、特定のことに決めています。
例えば、私の冷蔵庫の仕組みについて聞かれても、困ってしまいます。

でも、いろんな質問をみんなから受けている時に、
こんな質問をするのは、パソコンつまり、コンピュータの仕組みを知っていないからなんだ、
とよく思います。
こんな質問のよくある例として、「ストレージとメモリの違いは何ですか?」
がありますね。
これは、確かに、重要なことです。

そして、パソコンメーカーのマーケティングとしては、次のようなことでしょう。
パソコン初心者でも、自分が使いたいアプリは、どのぐらいの空き容量が、必要なのか?
また、「ファイル」の意味、、ストレージから、メモリにロードして、視覚化する方法、、
そして、「ファイル」を保存する方法(メモリからストレージへ)、、
こんなことは、きっと知りたがっているだろうと。

では、先ほどの、「メモリとストレージの違い」については、どんな風に説明されているでしょうか?
たいていは、メモリ は、ファイル立て のような、机や書庫 から見て、
表に出ている部分 を、例にとって、説明されていることでしょう。
まあ、とりあえずは、悪い答だとは思いません。
でも、私にとっては、とても満足できる答ではないです。
それでは、まるでコンピューターが、オフィスのつくりを真似て設計されたみたいです。

その答は、メモリ も、ストレージ も、仮想的なものではなく、実際に存在するものであり、
別個のものであるということです。
何故なら、電源を切っても、データが保存され、かつ、早くアクションでき、容量も大きな、
ストレージなど存在しないからです。
「フォン・ノイマン・アーキテクチャ」として知られている、50年以上も、
最も有力なコンピューターの設計コンセプトが、
2つの物理的部品を、必要としているわけです。

また、こんな質問を受けたことがあります、
「どうして、Windowsでは動くプログラムが、Macでは動かせないのですか?」。
私は、この質問を、さらっと、答えるのは、不可能で、
とても多くの、コンピューター技術について知らなければ、理解できない、
と思いながら、応え始めました。

私は、この本(Code)で、これらの疑問から開放されることを望んでいます。
そして、比ゆ的な説明ではなく、事実を語り、
電気技師やプログラマーの技術力に対しても、劣らない深い技術知識を、
提供できるものであってほしいと思っています。
私はまた、あなたが、コンピューター技術は、20世紀の技術のうちの、
最高のものの一つであり、その理解のために、
いろいろな たとえ(メタファーや直喩)を、使わなくても、
コンピューター自体が、クールだということに気づいてほしいと思っています。

コンピューターは、階層構造になっています。半導体でできたトランジスタ が、
ボトムで、情報を表示するためのディスプレイが、トップであると言えます。
各階層のそれぞれの部分に、焦点を当てて理解すれば、
多くの人が思っているほど、コンピュータの仕組みは、難しいことではありません。
確かに、今のコンピュータには、たくさんのものが詰め込まれていますが、
それは、とても普通でシンプルなたくさんのものなのです。
確かに、今のコンピューターは、25年または50年前のコンピューターと比べると、
複雑になっていますが、基本的な仕組みは同じなのです。

コンピュータ技術の歴史を学ぶことは、何が素晴らしいのか? 
それは、コンピュータの初期の時代に戻れば戻るほど、
よりシンプルな仕組みのコンピューターに出会えるという事を意味しています。
それ故、ずっと簡単に、コンピューターの仕組みの核心に迫ることができるのです。
この本では、私が出来る限りにおいて、昔までさかのぼります。
何と私は、19世紀までさかのぼり、初期の電報装置を学ぶことによって、
コンピューターの仕組みが明らかにされることを発見しました。

少なくとも、17章までは、今から100年前までの間を散歩して、
シンプルな、電気装置を使って、説明していきます。
こんなアンティークな技術のおかげで、この本は、ノスタルジックな気分をかもし出すでしょう。
この本には、「より早い技術!」または「最前線の技術を使ったビジネス」なんて、
タイトルは、ありえません。
「ビット」に関しては、60ページまで登場しません。
「バイト」は、180ページまで登場しません。
「トランジスタ」も、142ページになるまでは、出て来ないのです。
でも、勿論、その流れでいいからなのです。

この本は、コンピュータの仕組みについて、かなり深いところまで迫っていきますが、… 
例えば、プロセッサの本当のアクションについて説明している本は、
ほとんどないでしょう … 
とてもリラックスできるペースで説明していきます。
コンピューターについて深いところまで言及している本ですが、
できるだけ皆さんに楽しんでいただけるように書いたつもりです。
でも、「0」や「1」を積んだ電車は出てきませんから。

Charles Petzold
(チャールズ・ペッツオールド)
2000/8/16


 Code / アメリカAmazonで、#1 Best Seller(243 customer reviews、★4つ半)


日本で買うには:
Code(Amazon・洋書)

今日本語版も見つけました。やや噛み砕いていない部分もありますが、
翻訳を文法的に見ると、非常に正確だと思います。
私のちょっとした?思い違いもいくつか見つけました。
なので、この本の助けを借りながら、原書を読もうと思います。
そして、学習日記を書いていきたいです。
CODE コードから見たコンピュータのからくり