2016年11月03日

プログラミングはできるけど、電子回路の仕組みとかはわからないけど、

車の運転はしていても、車がどうやって動いているか、その詳細を事細かに知っている人は少数派かと思います。

特にアメリカだと、都市部と都市部を繋ぐ、何も無い道路だけの区間が多く、自力で修理できる能力を持っていなければならないことが多いのに対し、日本ではそういった事情がないため、自力で修理する方法を知らない人も多いと聞きます。
ちなみに僕は、運転免許は持っていますが、ここ10年ほど運転すらしていません。車の修理なんてもっての外ですね。

話が逸れましたけど、それと同じように、コンピュータを使うことはできるけど、コンピュータがどうやって動いているのかは知らない人も多いと思います。

この話は階層化できる話でして、例えばブラウザ上でゲームを楽しむ場合ですと、

@人間が見ている表層部分 (ゲームのアイディア、プレイヤーのテクニック)
AHTML5+JavaScript (スクリプト)
B機械語に翻訳されたプログラム (プログラム)
C電子回路
D古典物理の世界
E量子の世界

@人間が見ている表層部分は軽視して良いのかというと、これはこれで非常に大事なところです。
何せ、プレイヤーは表層の部分を見てお金を払うわけですからね。
ゲームを企画する人、プロデュースする人が、ゲーム制作陣の中で最も多くのお金をもらうケースが多いことからも分かるとおり、非常に重要な要素です。

また、ゲームのプレイもまた重要な要素であり、プレイする人があってこそのゲームだし、この人がお金を払ってくれないと or 課金してくれないと、話が始まりません。

ところで、これとは別のところに、ゲームの宣伝・営業とか、ゲームの販売チャネルいう、ゲームを成り立たせるための重要な分野も他にありますが、話がややこしくなるため、今回は除外しました。

Aスクリプトの部分。ゲームのアイディアを直接実現している部分とも言えます。Aで書かれた文字列を、B機械翻訳されたプログラム(HTML5+JavaScriptならブラウザのエンジンでしょうか)が実行することで動いています。プログラミングの知識が必要になってくるのは、このあたりでしょうね。

私がプログラマとして名乗っているのは、このAとかBの部分が好きだからでして、@CDについては興味が無かったり、苦手だったりします。Aができる人が@ができるとは限りませんし、@ができる人がAができるとは限りません。ABができる人がCもできるとは限りません。

ちなみにAの超人は、プログラミングのコンテスト等で、ある与えられた課題を、非常に短いステップ数で解ける仕組みを考えたりしているそうです。素人目に見てもすごいと思えるのは、例えば、489バイトのテトリスでしょうかね。読めなくても(読む必要はない)、すごいことは通じやすいかと。

Cは、最近、動画文化の普及で、よく目にするようになった部分のような気がします。
マリオメーカーで加算機を実現してみたり、プラレールで半加算器を設計してみたり、動画文化の普及があるから、見ている側の人間も楽しく見られるようになったと思います。

通常、こういうのは、CPUの小さな回路の中に大量に詰め込むものです。電子の粒が、マイクロメートルとかナノメートル級の小さな回路の中を進み、演算・読み出し・書き込みを実現します。C・・・つまり、先ほど見た、マリオメーカーによる加算機や、プラレールによる半加算器のような知識をたくさんの種類・たくさんの回数繰り返すことで、Bが成り立っているというのは知識としては知っているものの、直感ではなかなか理解しにくいものです。

この世界の話を聞いていると、「信号はせいぜい光の速さでしか伝わらない」という話も聞こえてきます。
1秒で地球を7周半する光ですら、この世界では「遅いモノ」扱いなんですね。
遅い信号を早く伝えるには、電子が通る経路(スタートからゴールの距離)を短くしてやる必要があるんでしょうけど、回路設計を小さくするにも限界があるとのこと。電気の通る線の幅を小さくすれば電圧を高めなければならないとか、発熱が激しくなるとか、電子が通ると磁力が漏れるとか、かつて科学の授業で聞いた知識が、だんだんと大きくなってきます。

CPU 1つ1つの速度に限界があるならば…と、空いた回路を効率的に使おうとするマルチスレッドのテクニックとか、あるいはCPUコアそのものを複数搭載して並列処理させてしまおうというマルチコアのテクニックとか、CPUの世界は、アイディアを詰め込むことで、まだまだ上を目指せそうです。
プロセッサの技術者の皆さんは、日々こうした、一つ上のアイディアを盛り込んでいくことで、がんばっているんだと思います。

Cを実現しているのがDの世界ですが、さっき出てきた電圧とか発熱とか磁力の発生とか、物理世界のルール(自然法則。仕組みや限界)そのものになってくるかと思います。プロセッサ技術者の皆さんががんばれるのも、電気を通すための新しい素子を科学者が作っているからでしょうね。

ところで、電子1粒の世界になってくると、古典物理的な効果よりは、むしろ量子物理的な効果の方が大きく出てくることもあると聞きます。たぶん、Eの世界が関わってくるのかと思いますが、まぁ、私にはよく分からないですね。ここら辺は。もしかしたら、全世界的にも、よく分からないけど使っている技術…なのかもしれません。

量子物理的な効果に期待した「量子コンピュータ」なるものもあると聞きますが、その原理は難しすぎてよくわかりません。


posted by ayacy at 08:20 | Comment(0) | TrackBack(0) | プログラミング
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/177518950
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック