00:04
にゃおのリテラシーを考えるラジオ、読書と編集の千葉直樹です。
このチャンネルでは、読書とIT時代の読み書きソロ版を中心に、様々な話をしています。
今回のタイトルは、「プログラミング。コンピューターができることはこれだけです。」というものです。
これから話すことは、わかりやすくするために正確さに欠けるものがあると思いますが、
プログラミングを学ぶ前に知っておくと良いと思われるレベルにコンピューターの中身の知識を増やすことを目的としていますので、そんなものだと思って聞いてください。
コンピューターといった時、イメージするものは人によって違うと思います。
今ならパソコンをイメージすることが多いでしょう。
ディスプレイがあって、キーボードがあって、マウスとかタッチパッドがある、という感じですかね。
これらはコンピューターの世界では入出力装置と呼ばれていて、実はコンピューターの中心となる部分は含まれていません。
キーボードはキーを押したら何か起きると思われるかもしれませんが、押しただけでは何も起きません。
何か起きるように思うのはキーボードがコンピューターに繋がっているからです。
ディスプレイも同じです。
ディスプレイに色々な画像を表示しているのはコンピューターなので、コンピューターを繋がないと絵は出ません。
キーボードを押すとディスプレイに字が出るというのは間にコンピューターがあるからです。
コンピューターが何かやっているというのをイメージできたでしょうか。
この感じはノートパソコンじゃなくてデスクトップパソコンを見たことがある人は、
ああ、あの謎の黒い箱かって感じでイメージできるかもしれませんね。
ではその黒い箱に意識を移しましょう。
黒い箱はコンピューターの本体ですが、キーボードやディスプレイが繋がっている部分は実はコンピューターの本当の本体ではありません。
何を言っているのかわからないかもしれませんが、黒い箱の中にはさらに中心となるCPUというコンピューターのコンピューターとある神聖な場所があります。
CPUがなければコンピューターではないのです。
黒い箱の中にはこのCPUに使える仕組みが入っています。
キーボードからの入力をCPUに伝えるとか、CPUがこう表示しなさいといったことをディスプレイに表示するみたいな仕事をする部分です。
キーボードというのはスイッチがたくさん付いた機械です。
キーが押されたというのはスイッチがカチカチっとオンオフになるということですが、
これを感知するためにはCPUがそのスイッチを監視している必要があることになります。
03:02
CPUにしてみたらこれをチェックするのは難しくありません。
1秒間に何千万回とかチェックすることもできてしまいますから。
ただキーを監視するだけの機械ってあまり役に立ちそうにないですよね。
それにこれを100個を超えるスイッチに対してやり続けるのはまあまあ大変そうじゃないですか。
というわけで黒い箱の中にはキーボードの入力だけをチェックして
Aというキーが押されたよというレベルでCPUに伝えるみたいな処理をする部分が入っていたりするわけです。
ではいよいよCPUの立場に移ってみましょう。
CPUの立場になるとこれがまた不思議というかちょっと恐ろしい世界です。
Aというキーが押されたのをCPUから見るとこんな感じです。
自分がCPUになったと思いましょう。
あなたは薄暗い部屋に一人でいます。
見えるものは東西南北の窓のようなものと前にある机、その上の分厚い本のようなものとメモ帳、
次と書いてあるボタン、そして頭の上にある鐘だけです。
そうそう、あなたは何かやったら次ボタンを押すように訓練されています。
突然鐘が鳴りました。
分厚い本を開いて鐘が鳴ったらというページを見ます。
そのページには北の窓を見て指示に従えと書いてあります。
なので北の窓を見ると東の窓を見て見えるものをメモしろと書いてあるので、
東の窓を見ると01100001が見えたので手元にメモをし反射的に次というボタンを押します。
東の窓にメモを西の窓に投げろと書いてあるので西の窓にメモを投げ込んで反射的に次ボタンを押します。
以上という感じです。
なんじゃそりゃと思いましたよね。
CPUがやっているのってこんなこと?って思いましたか?
そうです。こんなことしかできません。
そうだ、ここにはありませんでしたが、四足演算もできますが微分析分はできません。
これだけです。
もっとすごいことができるはずだ、と思うでしょう。
そうです。できます。
このようなことを1秒間に何十億回もできます。
頭にハテナがいくつも浮かんでいるのが見えますよ。
目の前にあるパソコンや、実はスマホもそういうことをむっちゃ早くたくさんやっているだけです。
嘘だ、パソコンはあんなことやこんなこともできるじゃないか、と思うでしょう。
そうなんです。できます。
それは東の窓に次々に出てくるものがすごいからなのです。
06:04
この窓に出てくるものをソフトウェアと言います。
そして、このソフトウェアを作ることをプログラミングと言います。
CPUができることとパソコンができていることの間には随分差があるように見えると思います。
その通りです。
この間には膨大なソフトウェアがあります。
そのほとんどは先人の知恵です。
初心者がプログラミングと言っている部分は、実はこれらのソフトウェアの表面のほんの少しの薄い部分です。
この薄い部分を作るだけでも結構難しいということは、コンピューターにできることはまだまだ少ないということでもあるわけです。
全てを知る必要はありませんが、コンピューターに対してこのくらいの解像度で知っておくと、プログラミングでできることとできないことがわかりやすくなり、
なぜこんなに融通が効かないのか、ということが想像できると思います。
コンピューターって大変なんだなぁ。コンピューターが動きやすいようにちゃんと考えよう、と思うようになったら、あなたはエンジニアの素質がありますよ。
読書と編集では、ITを特別なものではなく、常識的なリテラシーとして広める活動をしています。
詳しい内容については、概要欄のリンクから、または、読書と編集と検索して、猫がトップページに出てくるホームページをご覧ください。
この配信の書き起こしをノートで連載しています。 概要欄にリンクがありますので、フォローいただけると嬉しいです。
今日もワクワクする日でありますように。 千葉直樹でした。ではまた。