00:04
こんにちは、ながおかのプログラミングチャンネルです。
今回は、プログラミングの歴史ってどうやって学ぶといいんですか?という質問をいただいたので、そのについてちょっとお答えしたいと思います。
このプログラミングの歴史なんですが、プログラミングの歴史というとちょっと曖昧かなというか、なかなかこの質問自体だと答えるのが難しいなと思うので、
少し分解したいと、答えやすい質問に分解していきたいと思います。
今回、まず一つ目、分解する一つ目として、コンピューターの歴史ですね、というのがまずあります。
このコンピューターの歴史自体はいろいろ本もありますし、ただ本でやるとちょっと歴史の授業っぽい話にどうしてもなってしまうんですね。
なので、あまり少し面白くないという可能性はあります。
ただ、1950年代からそういう研究が始まって、最初真空管で回路が作られて、そこからトランジスタに変わっていってみたいな話があります。
次に二つ目の話として、コンピューターの原理という話があります。
で、これなんで歴史の次に原理の話をするかというと、コンピューターの歴史を勉強して、一番最初のコンピューターって本当にもう手でパチパチスイッチを入れるような話で、
それって要するに手動でオンオフの回路をしてたわけですね。
で、そういったものってすごくコンピューターの原理に近いところで、その原理を理解するのに便利、便利というか理解しやすい。
というような、今のコンピューターって、CPUと呼ばれる中央演算装置というところに何十億個っていうトランジスタという半導体が入っていて、
その半導体が、半導体っていうのはその半分導体、だから電気が通ったり通らなかったりするんですね。
その通ったり通らなかったり通ったり通らなかったりでオンオフをしてるんですが、もうそれが何十億個入っていて、
さらに何百万回入って1秒間にやってるので、もう具体的なイメージがなかなか人間だとしにくい。
ただ、そういうできた当初のコンピューターっていうのは本当に手でパチパチ一個一個回路オンオフとかやって、
それで0101とかやっていたので、例えばAND回路とかOVER回路とか色々あるんですが、
そういう回路一個一個まで遡って理解できる、しかもそれが50年前とかもっとか70年ぐらい前は実際に使われていたというのがあります。
それぐらい昔のものって、原理から一から理解するのにはすごく理解しやすい話になっているので、
次にコンピューターの歴史の後にコンピューターの原理というものを理解できるといいのかなと思います。
この原理というものですが、いい本がいくつかあって、一つ目がコードから見たコンピューターのからくりという本があります。
03:05
この本はチャールズ・ペゾルドさんという人が書いてきた本でものすごく名著。
個人的にはもうすごく何回も読み直しているんですが、
この人もともとWindows95のAPI、Windowsプログラミングという本でものすごく有名な人で、
すごい素晴らしい技術者であり、かつコードから見たコンピューターのからくりという本で、
すごく実際にコンピューターがどういうふうに動いているのかという原理を、
本当に二進数とは何かというところから解説して、さらに歴史的な背景も説明して、
時にはモールス信号の話とかも生まれたりしながらいろいろ話してくれているので、
すごく興味深く、なんていうのかな、面白く読めるんですね。
ただその勉強のためにやらないといけないというのではなくて、
引き込まれてストーリーもあるし、すごく最後まで一気に読まされてしまうような本なのでおすすめです。
もう一つそのコンピューターの原理の話の本では、
プログラムはなぜ動くのかという矢沢さんの本もおすすめです。
これはだいたいわかるんだけど、ちょっとここのところがいまいちわからないなというかゆいところにすごく手が届く本で、
本当にコアのところ、要するにプログラムを書いたのがコンパイルされて、
どういうふうに機械語、CPUAの実際の命令までなっているのかというところを一個一個たどって説明してくれる本なので、
これもすごくおすすめです。
この2つは本としておすすめな本ですね。
次にコンピューターの歴史を見て、次に原理を見たときに、
その後じゃあ何があるかというと、次に言語、プログラミング言語の歴史というのがあると思います。
プログラミング言語って一個一個たくさん言語がある中で、
それぞれって独立しているわけではなくて、かなり関連があるんですね。
というかもう子供、親子の関係のような言語もありますし、
より実態に即して言うと、
言語デザイナーっていうのはほぼ大体の場合プログラミング言語オタクでもあるので、
いろんな言語を見ていて、この言語のこのアイディアいいなとか、
このアイディアちょっと俺の言語に入れようとか、そういうことをずっと繰り返していることが多いんですね。
なので、この言語はこの言語のこのアイディアを取ったんだなというのがよくわかるということはあります。
なので、そういった言語の歴史とかツリー構造のようなものがあります。
それを勉強するのはどういった本がいいのかというと、
個人的にお勧めなのは松本幸寛さんという、
ルビー、プログラミング言語、ルビーの作者、開発者の書いている本がいろいろあるので、
その中から一冊選ぶといいんじゃないかなと思います。
06:02
コードの未来とかコードの世界といった本が個人的にはすごく面白かったです。
最後に4つ目。
そしてOS、オペレーティングシステムの歴史というものがあります。
これはどういうことかというと、
もともと今一番メジャーなもので古いのはUNIXとかだと思うんですけども、
そういうアメリカのところでベル研究所でUNIXが開発されて、
それが今こういってLinuxというふうに続いていて、
さらにそこからLinuxとは別に枝分かれしてMacOSにもなって、
それとはまた独立でWindowsのMicrosoftがあってというような歴史もあります。
これについての本は今いいのがあったら紹介したいと思うんですが、
今のところないのでいろいろなんだろうな、
エッセイとか読むといろんなところに出てくるんですね。
自分が例えばWindowsを開発したときの話とか、
そういうところでだんだんバラバラになっていたピースが
組み合わさってくるようにわかってくるという面もあると思います。
という感じでこのプログラミングの歴史というのは、
今回話したような問題というか、
今回話したような質問に分解されるのかなというふうに思うので、
もし興味があったらいろいろ読んでみてください。
また質問のレターやいいねコメントもぜひお願いします。
ありがとうございました。